Python 3

Python의 단점

1. Static typing을 할 수 없다.def f(x:int)->int: return x+1f("asdf")나한테 파이썬의 가장 큰 단점을 꼽으라고 한다면 단연 dynamic typing이다. 위 코드에서 함수 f는 정수 x를 입력으로 받아 x+1을 반환하는 함수이다. 그런데 여기에 문자열 asdf를 넣는 코드를 작성했다. 컴파일 언어라면 컴파일 자체가 안 되겠지만, Python은 인터프리터 언어다. 따라서, 소스 코드를 꼼꼼히 읽어보지 않는 이상 f("asdf")라는 얼토당토않은 코드를 작성해도 코드를 직접 실행해서 TypeError를 뿜는 것을 보기 전까지는 코드가 잘못되었다는 것을 알 수가 없다. 그리고 프로그램에 분기점이 많아지면, 단위 테스트를 작성하지 않는 이상 모든 코드를 다 실행..

Python 2024.10.03

while문에서 time.sleep의 필요성

아래 코드는 while문이 1초 동안 몇 번 반복되는지 알아보는 코드이다.import timea = time.time()b = 0while True: b += 1 if time.time() - a > 1: breakprint(b)3956691번 반복된다고 나온다.import timea = time.time()b = 0while True: b += 1 if time.time() - a > 1: break time.sleep(0.001)print(b)위 코드를 실행시켜보면 68번 반복된다.time.sleep(0.001)만 넣었을 뿐인데, 어마어마하게 반복 횟수가 줄어들었다. 이는 CPU 이용률을 줄일 수 있는 가장 쉬운 방법이다.

Python 2021.05.17