TIL#22 PYTHON 중요문법정리

Dasom·2020년 8월 4일
0

python

목록 보기
16/50
post-thumbnail

인덴트

인덴트(indent) : 들여쓰기. 공식 가이드인 PEP 8 에 따라 공백 4칸이 원칙

foo = function_name(var_one, var_two,
		    var_three, var_four)
# 첫줄에 파라미터가 있다면, 파라미터 시작부분에 맞춘다.

def function_name(
		var_one, var_two, var_three,
		var_four):
	print(var_one)
# 첫줄에 파라미터가 없다면, 공백4칸 인덴트를 한번 더 추가하여 
# 다른행과 구분되게 한다.

네이밍 컨벤션

파이썬의 변수명 네이밍 컨벤션은 각 단어를 밑줄(_)로 구분하여 표기하는 스네이크 케이스(snake case)를 따른다. 함수명도 마찬가지.
카멜 케이스(camel case)는 지양한다.

# 카멜 케이스 - 대소문자로 구분하여 섞어서 작명하는 방식
camelCase: int = 1
# 스네이크 케이스 - 각 단어를 언더스코어(_)로 구분
snake_case: int = 1

타입 힌트

a: str = '1'
b: int = 1

타입힌트를 사용하면 a가 정수형인지 문자형인지 분명하게 알 수 있다. 명시적으로 선언하게 되면 가독성이 좋아지고 버그 발생 확률을 줄일 수 있다.

def fn(a: int) -> bool:
# 이런식으로 타입힌트를 사용하면 a가 정수형이고 리턴값으로 
# True or False를 리턴한다는 것을 알 수 있다.

리스트 컴프리헨션

파이썬은 map, filter와 같은 함수형 기능을 지원. 람다 표현식도 지원한다.

list(map(lambda x: x + 10, [1, 2, 3]))
-> [11, 12, 13]

람다보다 파이썬의 훨씬 더 유용한 기능이 리스트 컴프리헨션(list comprehension)이다. 리스트 컴프리헨션은 기존 리스트를 기반으로 새로운 리스트를 만들어내는 구문. 람다표현식에 map, filter 를 섞어 쓰는 것보다 가독성이 훨씬 좋다.

a = []
for i in range(1, 10 + 1):
	if i % 2 == 1:
		a.append(i * 2)

# 홀수인 경우 2를 곱해 출력하는 코드이다.
# 리스트 컴프리헨션을 쓴다면 아래와 같다.

[i * 2 for i in range(1, 10 + 1) if i % 2 ==1]

한줄로 간결하게 작성할 수 있어서 가독성이 좋은 편. 무리하게 복잡하게 작성할 경우 가독성을 떨어뜨리므로 적절히 사용하는게 중요. 대체로 표현식은 2개를 넘지 않아야 함.





<참고문헌>
박상길, "파이썬 알고리즘 인터뷰", 책만, 2020

profile
개발자꿈나무🌲

0개의 댓글