[파이썬 코딩의 기술] 04~07

토즐라·2022년 7월 4일
0
post-thumbnail

4. f-string을 통한 인터폴레이션을 사용하라 ⭐⭐

🐸 개인적으로 안 쓸 이유가 없는, 매우 간편하고 유용한 옵션이라고 생각한다.

형식화(formatting)이란 미리 정의된 문자열에 데이터 값을 끼워 넣어서 사람이 보기 좋은 문자열로 저장하는 과정이다.
파이썬에서 이를 할 때, f-string을 이용한 방법 외에는 전부 치명적인 단점이 있다.

또, f-string을 이용한 방법은 C스타일의 형식화 문자열에 %연산자를 활용하는 경우나, str.format메서드를 사용하는 경우보다 항상 더 간결하고 짧다.

따라서, 제공하는 표현력, 간결성, 명확성을 고려할 때, f-string은 파이썬 프로그래머가 사용할 수 있는 최고의 형식화 옵션이다.


5. 복잡한 식을 쓰는 대신 도우미 함수를 작성하라

식이 복잡해지기 시작하면, 바로 식을 더 작은 조각으로 나누어 로직을 도우미 함수로 옮길지 고려해야 한다.

코드를 짧게 쓰는 것보다 더 가치있는 것은 코드를 가독성있게 쓰는 것이다.


6. 인덱스를 사용하는 대신 대입을 사용해 데이터를 언패킹하라⭐

🐸 파이썬이 다른 언어에 비해 간편한 주요한 이유 중 하나인 것 같다.

파이썬에는 언패킹 구문이 있다. 이를 사용하면 한 문장 안에서 여러 값을 대입할 수 있다.

  1. 변수에 언패킹을 사용하면 임시 변수를 정의하지 않고도 값을 맞바꿀 수 있다!
def bubble_sort(a):
	for _ in range(len(a)):
    	for i in range(1, len(a)):
        	if a[i] < a[i-1]:
            	# LIKE THIS
            	a[i-1], a[i] = a[i], a[i-1]
  1. 언패킹을 현명하게 사용하면 인덱스 사용을 피하고 루프를 만들 수 있다.
snacks = [('베이컨', 350), ('도넛', 240), ('머핀', 190)]

for rank, (name, calories) in enumerate(snacks, 1):
	print(f"#{rank}: {name} 은 {calories} 칼로리입니다.

7. range 보다는 enumerate를 사용하라

range함수를 이용해 list의 원소를 탐색하려면, list의 길이를 알아야 하고, 인덱스를 사용해 배열의 원소에 접근해야 함으로 코드를 읽기 다소 어렵다.

flavor_list = ['바닐라', '초코', '딸기', '포도']

for i in range(len(flavor_list)):
	print(f'{i+1}: {flavor_list[i]})

이 때, enumerate 함수를 이용하면 된다.
enumerate 함수는 이터레이터를 지연 계산 제너레이터(lazy generator) 로 감싼다.
enumerate는 루프 인덱스와 이터레이터의 다음 값으로 이루어진 쌍을 넘겨준다.

for i, flavor in enumerate(flavor_list, 1):
	print(f'{i}: {flavor})
profile
Work Hard, Play Hard 🔥🔥🔥

0개의 댓글