ㅡ. 인덴트

공백을 추가합니다. (보통 4칸)

 

ㅡ. 네이밍 컨벤션

스네이크 케이스 e.g) hi_naming

PEP 8 철학에 따라 스네이크 코딩을 지향합니다. 

 

ㅡ. 타입 에러

타입 에러 발생시 Incompatible return value type 에러가 발생합니다. 

 

ㅡ. 리스트 컴프리헨션

map, filter, 람다를 지원합니다. 

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

#result

[3, 9, 15, 21, 27]

가독성이 좋아집니다. 

 

ㅡ. 제너레이터

return 은 함수가 종료되는데 비해 yield는 실행 중이던 값을 내보내게 됩니다. 

다음 값을 생성하기 위해서는 next를 사용합니다. 

#print([n*3 for n in range(1, 10+1) if n%2 == 1])

def generator():
    yield 11
    yield 'super'
    yield False

g= generator()
print(next(g))
print(next(g))
print(next(g))

  이런식의 코드를 작성하는것도 가능합니다. 

a = [ n for n in range(1000000)]
b = range(1000000)

print(a)
print(b)
print(a[999])
print(b[999])

b의 방식이 메모리 효율(점유율)에 좋습니다. 

 

ㅡ. enumerate 

인덱스를 포함한 enumerate 객체로 리턴합니다.

for k, a in enumerate([2,3,4,5,6]) :
    print(k, a)

index와 value 모두 한번에 출력할 수 있습니다. 

 

ㅡ. 나눗셈 연산자

/ -> 우리가 일반적으로 아는 나누기 연산

// -> 소수점 이하 나왔을때 버리고 정수형 타입으로 리턴 (=몫)

몫과 나머지를 동시에 구하기 위해서 divmod() 함수를 사용하면 됩니다.