본문 바로가기
Python

python 알아두면 좋은 팁

by re-hwi 2022. 7. 1.

최근 시험기간이다 보니 블로그에 많이 소홀했었는데 종강 후 다시 예전처럼 더 열심히 포스팅을 하려한다. 이번에는 파이썬의 마지막 글이고 조금 더 좋은 코드를 만들기 위한 습관을 들이는 여러 내용을 포스팅 하려한다.

 

기초를 어느정도 이해한 후 이제는 실행이 목적이 아닌 시간 단축 혹은 데이터의 크기를 줄이는 방법 과 같은 부가적인 내용이기 때문에 파이썬을 처음 접한 사람과는 글의 목적이 다소 다를 수 있다.


들여쓰기 (인덴트)

파이썬은 다른 언어와 다르게 중괄호 {} 를 사용하지 않으며 SPACE 4번 또는 TAB 을 이용해서 글의 구조를 나타낸다. 

 

어느정도 복잡한 코드를 작성했을 때에 이 들여쓰기로 인해 예상치 못한 값이 나오거나 오류가 나온다면 파이참에서는 CTRL + ALT + L 을 이용하여 쉽게 들여쓰기를 맞출 수 있다.

 

네이밍 컨벤션

변수의 이름을 어느정도는 그 뜻과 일치하는 이름으로 지어야한다. 물론 이건 반드시 지켜야하는 것은 아니지만 코드의 가독성을 위해 혼자 코딩하지않는 이상 필수이기도 하다. 

 

파이썬에서는 스네이크 케이스를 따른다. 스네이크 케이스란 단어를 _ 로 구분하여 표기하는 형태인데 예를 들자면 "2학년_1학기" 와 같은 형태이다.

 

타입 힌트

파이썬의 특징중 하나인 변수의 타입을 지정해주지 않아도 알아서 타입의 변환이 가능하다는 점은 한편으로는 간편하기도 하지만 가독성이 떨어지며 버그 발생의 원인이 될 수도 있다. 

 

1. def abc_1(a):
	...
    
    		↓
    
2. def abc_2(a: int) -> bool:		# 매개변수 a는 정수형 반환값은 bool형
	...

이처럼 1번 abc 함수의 매개변수 a가 어떤 타입인지 반환값이 어떤 형태를 반환하는지 알 수 없을 때

 

2번처럼 시작지점에 매개변수는 어떤 형태인지 반환값은 무엇을 반환하는지 적어놓으면 한눈에 보기 쉽다.

 

제너레이터

하나의 함수는 실행을 하기 시작하고 결과가 나와야만 종료된다. 하지만 제너레이터 함수는 yield 를 만나면 일시정지된다. 그래서 게으른 반복자라고도 불리며 이터레이터를 반환한다.

 

언뜻보면 제너레이터의 사용 이유가 없다고 생각할 수도 있는데 컴퓨터는 다르다. 예를 들어 1부터 1억개의 수를 생성해야하는 상황에서 그냥 반복문을 이용해 돌린다면 1억개의 수를 모두 계산한 후 출력한다. 

 

하지만 제너레이터는 처음값 그다음의 줘야할 값 마지막값만을 저장하고있어서 출력 결과는 같을지라도 메모리의 양이 훨씬 줄어들 것이다.

 

제너레이터 함수가 yield를 만나면 그 즉시 함수를 일시정지하고 값을 내보낸 후 다시 함수를 돌 때에는 이전에 끝났었던 지점부터 시작한다. yield를 체크포인트로 활용한다는 것이다. 

 

따라서 속도의 차이는 미미하지만 메모리의 크기 차이가 매우 크기 때문에 제너레이터를 이용하는 것이다.

 

pass

pass는 우리가 일상생활에서 사용하는 것과 같은 뜻으로 이용된다. 예를들어 퀴즈를 풀고 있을 때 모르는 문제가 나오면 패스해버리는 것처럼 오류를 무시해버리는 것이다, 

 

pass는 큰 틀을 정해놓고 작업할때 코드가 완성되어있지않아 오류를 뜨는 경우를 없앨 수 있다. 

반응형

'Python' 카테고리의 다른 글

파이썬 Class (self , __init__)  (0) 2022.06.03
파이썬 파일  (0) 2022.05.27
(Python) def 를 이용한 함수 생성  (0) 2022.05.15
(Python) 숫자 up & down 게임  (0) 2022.05.07
(Python) 숫자 야구 만들기  (0) 2022.05.06

댓글