오늘은 파이썬 비교문 작성에 대해서 이야기 해보려고 한다. 본인은 C를 프로그래밍 언어 중 가장 먼저 배웠다. 한 list(C에서는 array)에서 최댓값 최솟값을 추출하기 위해 아래와 같은 코드를 사용하였다. (코드는 파이썬 코드 사용)
# list a의 원소는 [-9999,9999] 사이의 정수값을 가진다.
max_num = -9999
min_num = 9999
for i in range(i):
if a[i] > max_num:
max_num = a[i]
elif a[i] < min_num:
min_num = a[i]
이 때 위의 코드에서 보는 것과 같이 max_num, min_num에는 본인이 생각하는 큰 수나 주어진 조건에 따라서 정의하게 되는데 만약 주어진 조건이 없다면 어떻게 하겟는가? min_num = 999999로 정의해도 어떤 입력에서는 999999 + 1이 가장 작은 수일도 있다. 이 때 python의 'inf'를 사용하면 편리하다. python inf는 어떤 수와 비교해도 무조건 크다고 판정되고, -inf는 어떤 수와 비교해도 무조건 작다고 비교된다.
min_val = float('inf')
max_val = float('-inf')
위의 코드에서 비교문의 경우 조건문 + 할당의 두 줄의 코드로 정의된다.
이를 python에서는 줄일 수 있는 기능이 있는데 max, min이다. 아래와 같이 사용함으로써 코드의 양을 줄이고, 직관성을 좋게 코드를 짤 수 있다.
max_num = max(a,b)
min_num = min(a,b)
python기능을 이용하여 아래와 같이 더 정확하고 직관성 높은 코드를 작성할 수 있다.
max_num = float('-inf')
min_num = float('inf')
for i in range(i):
max_num = max(max_num, a[i])
min_num = min(min_num, a[i]