python/기초

[파이썬 기초] if ~ else

끼발자 2021. 11. 23. 10:50
반응형

얼마 전부터 지식인 답변을 다는 취미가 생겼다.

대놓고 이런 기능 짜달라부터 코드 에러잡아달라는 것 까지.

 

조건문을 한번 다뤄보자.

 

if

만약~ 이라는 뜻이다.

뒤에 오는 값이 True or False인지를 판별해서

참이면 아래에 있는 코드를 실행, 거짓이라면 다음으로 진행되는 함수이다.

거짓일 때만 실행시킬 코드는 다음과같이 만든다.

 

else

참이면 if아래 구문을 실행시키고 거짓이면 else아래 구문을실행시킨다.

if ~ else만 사용하면 너무 이분법적인 사고같다.

그럴 때 사용하는

 

elif

처음 if문은 거짓이지만 새로운 조건을 만들 때 사용한다.

 

예시로 성적을 가지고 등급을 나누는 코드를 짜보자.

90~100 : A

70~89 : B

50 ~ 69 : C

~49 : D

def grade_calc(x):
    if x < 50:
        return 'D'
    elif x < 70:
        return 'C'
    elif x < 90:
        return 'B'
    else:
        return 'A'

위에서 아래로 실행되고, 조건문에 걸리면 바로 값을 return하기 때문에 한쪽만 정해주면 된다.

def grade_calc(x):
    if x >= 90:
        return 'A'
    elif x >= 70:
        return 'B'
    elif x >= 50:
        return 'C'
    else:
        return 'D'

물론 이렇게 짜도 상관없다.

 

사실 위의 구문은 조건 자체가 짧고 반환하는 값도 짧기 때문에, 한줄로 코딩해도 가독성이 나빠지지 않는다.

def grade_calc(x):
    return 'A' if x >=90 else 'B' if x >= 70 else 'C' if x >=50 else 'D'

 

if문의 조건에는 True or False만 와야하는것은 아니다.

파이썬은 0이 아닌 값들은 대부분 bool type이 True이다.

즉 조건절을 사용하는 여러분이 리스트의 길이가 0인지 궁금하다면, 

list_ = [1,2,3]

if len(list_) != 0:
    ...
else:
    ...

이것도 작동하지만,

 

if list_:
    ...
else:
    ...

이것도 동일한 기능을 수행한다.

 

반응형