A ship in harbor is safe, but that is not what ships are built for.

개발일지/AI 캠프

내일배움캠프 AI - 6일차 TIL, 2022.09.05

플리피나리 2022. 9. 6. 09:03
반응형

스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 3회차

2022.09.05. 6일차 - TIL

 

 

1. 파이썬 특강

  • 파이썬은 인터프리터 언어 -> 실행파일을 명시적으로 생성하지 않고 소스파일 직접 실행 가능
  • 파이썬 프로그램이 개발/디버그 주기가 더 짧지만, 다른 프로그램보다 더 느리게 실행
  • import하는 모듈의 속도 향상을 위해 *.pvc 확장자로 컴파일 -> 가상환경인 PVM에서 동작
  • 동적 타입 언어로 변수 할당 시 자료형 지정 불필요
  • 문법이 쉽고 간결, 가독성 좋음
  • 코드 컨벤션 : 협업을 위해 코드 스타일을 통일하자는 "약속" -> 언어에 따라 다름
  • 파이썬의 코드 컨벤션(변수/함수 네이밍 방법)
    - Pascal : 각 단어를 대문자로 구별
    - Camel : Pascal과 동일하지만 첫 문자는 소문자로 시작
    - Snake : 각 단어를 언더바로 구분
  • 변수 선언 시 두 개 이상의 변수를 한번에 선언 가능 ex) a, b = [2, 3] -> 각 요소 2와 3
  • 변수 유효 범위(variable scope)
    - 지역 변수(local variable) : 함수 내부에서 선언, 다른 함수에 영향을 끼치지 않음
    - 전역 변수(global variable) : 함수 밖에서 선언, 어디서든 접근 가능
  • 함수 내부에서 전역 변수와 동일한 이름으로 지역 변수 할당 시 함수에서는 해당 변수를 지역 변수로 간주
  • 따라서 함수 내에서 전역 변수의 값을 바꾸고 싶다면 global 키워드를 사용해 전역 변수 값을 다시 할당
number = 10

def func():
	# 전역 변수의 값이 바뀌는 것이 아닌, 지역 변수로 다시 선언
	number = 5
    print(number)

func()  # 5출력

# 함수 내에서 재할당 된 지역 변수는 전역 변수에 영향을 끼치지 않습니다.
print(number)  # 10출력

############################################################################

number = 10

def func():
    global number # 함수에서 number 변수를 다시 할당할 수 있도록 해줍니다.
    number = 5 # global 키워드를 사용했기 때문에 전역 변수의 값이 변경됩니다.
    
func()

print(number) # 5
  • 코드가 길어질수록 전역 변수로 선언된 값은 어디서 값이 변했는지 추적하기 어렵고, 문제가 생겼을 때 디버깅을 하기 어려워 지기 때문에 전역 변수를 남용하는 것은 권장하지 않음

 

 

2. 백준 알고리즘

다른 문제보다 시간이 다소 걸린 문제는 다음과 같다.

import sys

n = int(input())

if n < 1 or n > 1000:
    print("입력값 오류")
    sys.exit(0)

for i in range(n):
    print(" "*(n-i-1), end="")
    for j in range(i+1):
        print('*', end='')
    print()

 

import sys

arr = []
while True:
    try:
        test = list(map(int, input().split()))
        if test[0] <= 0 or test[0] >= 10 or test[1] <= 0 or test[1] >= 10:
            print("입력 오류")
            sys.exit(0)
        arr.append(test)
    except:
        break

for num in arr:
    print(num[0]+num[1])

* 파이썬에서 EOF는 어떻게 처리하나? => try-except 문으로 처리

반응형