인덴트 (Indent)
- 코드 첫 번째 줄에 파라미터 있는 경우
foo = long_function_name(var_one, var_two,
var_three, var_four)
- 첫 번째 줄에 파라미터가 없는 경우
def long_function_name(
var_one, var_two,
var_three, var_four):
print(var_one)
네이밍 컨벤션 (Naming Convention)
# Python : Snake case
snake_case: int = 1
# Java : Camel case
camelCase: int = 1
타입 힌트 (Type Hind)
# 타입 힌트 사용 X
def fn(a):
...
# 타입 힌트 사용 O
def fn(a: int) -> bool:
...
타입 힌트 사용 시 fn() 함수의 파라미터 a는 정수형이고 리턴 값으로 True나 False를 리턴할 것이라는 점을 명확히 알 수 있다.
리스트 컴프리헨션 (List Comprehension)
# 홀수인 경우 2를 곱해 출력
[n * 2 for n in range(1, 11) if n % 2 == 1]
제너레이터 (Generator)
- yield 구문 사용
- 중간값을 리턴한 다음 함수는 종료되지 않고 계속 실행
def get_natural_number():
n = 0
while True:
n += 1
yield n
- next()로 다음 값 추출
g = get_natural_number()
for _ in range(0, 100):
print(next(g))
range
# 숫자 100만 개 생성
a = [n for n in range(1000000)]
b = range(1000000)
-
메모리 점유율 : a > b
- a : 이미 생성된 값이 담겨 있다.
- b : 생성해야 한다는 조건만 존재한다.
enumerate
- 인덱스를 자동으로 부여
# a = ['a1', 'b2', 'c3'] 리스트의 인덱스와 값을 함께 출력
for i in range(len(a)):
print(i, a[i])
# enumerate 이용
for i, v in enumerate(a):
print(i, v)
// 나눗셈 연산자
- divmod() : 몫과 나머지 동시에 구하기
divmod(5, 3)
# A1 B2
print('A1', 'B2')
# A1,B2
print('A1', 'B2', setp=',')
# aa bb (줄바꿈 무시)
print('aa', end=' ')
print('bb')
# 리스트 출력
a = ['A', 'B']
print(' '.join(a))
# f-string(formated string literal)
idx = 1
fruit = 'Apple'
print(f'{idx + 1}: {fruit}')
pass
-
아무것도 하지 않는 기능
- 인덴트 오류 같은 불필요한 오류 방지
참고 : 「파이썬 알고리즘 인터뷰」