파이썬 코딩 팁 작성중
'파이썬 코딩의 기술' 참고
코드 규칙
- 탭 대신 space 4개
- 한 줄의 문자 길이 < 80
- 변수, 함수는 lowercase_underscore
- protected는 _leading_underscore
- private는 __double_leading_underscore
- 클래스명은 CapitalizedWord
- 상수는 ALL_CAPS
- if len(somelist)==0 대신 if not somelist
리스트
# 리스트 컴프리헨션 이용하기
# map과 filter를 사용하는 방법
a = [1,2,3,4,5,6]
alt = map(lambda x: x**2, filter(lambda x : x%2==0, a))
# 리스트 컴프리헨션을 사용하는 방법
chile_ranks = {'ghost':1, 'habanero':2}
rank_dict {rank: name for name, rank in chile_ranks.items()}
# 컴프리헨션이 클 때는 제너레이터 사용하기
컴프리헨션은 새 리스트를 통째로 생성함 => 메모리 많이 필요
따라서 크기가 클 때는 이터레이터를 사용하는 제너레이터를 사용하자.
# 제너레이터 이용
it = (len(x) for x in open('/tmp/my_file.txt'))
# range보다 enumerate 이용
# range 사용하는 방법
for i in range(len(flavor_list)):
flavor = flavor_list[i]
print('%d %s' % (i+1, flavor))
# enumerate 사용하는 방법
for i, flavor in enumerate(flavor_list, 1): #1부터 enum 시작
print('%d: %s' % (i, flavor))
# 동시에 여러 리스트에 접근하여 처리할땐 zip 이용. 단 리스트들의 길이가 같을 때!
names = ['str', 'kim', 'leon']
letters = [len(n) for n in names]
for name, count in zip(names, letters):
if count > max_letters:
longest_name = name
max_letters = count
함수
# return None보다는 예외 발생시키기
return None하지말고 그냥 except 에러 발생시키기.
함수를 호출하는 쪽에서 에러 처리하게 만들자.
'Study > Tips' 카테고리의 다른 글
DHCP,DNS,MAC주소 (0) | 2020.03.11 |
---|---|
IP주소, 서브넷 마스크, 게이트웨이 (0) | 2020.03.11 |
파이썬과 C++ 차이점 정리 (7) | 2020.02.08 |
비트디펜더 사용시 Permission denied 뜨는 문제 & 컴파일 안 되는 문제 (0) | 2019.08.08 |
[티스토리 스킨 편집] 1. 스크롤바 수정하기 (0) | 2019.04.30 |