Python | if문

Sua·2020년 12월 24일
0

Python

목록 보기
14/28
post-thumbnail
post-custom-banner

if문

if문은 조건을 검사하여 조건이 참이면 본문의 코드(선택지)를 실행하고, 조건이 거짓이면 본문의 코드를 실행하지 않는다.

if 조건: 
    본문   # 조건이 참일 때(조건식을 만족할 때) 실행할 코드 블록

input()으로 입력받은 값에 if문을 사용할 수 있다.

x = int(input())          # 입력받은 값을 변수에 저장
 
if x == 10:               # x가 10이면
    print('10입니다.')    # '10입니다.'를 출력
 
if x == 20:               # x가 20이면
    print('20입니다.')    # '20입니다.'를 출력
10 (입력)
10입니다.

중첩 if문을 사용할 수 있다.

x = 15
 
if x >= 10:
     print('10 이상입니다.')
 
     if x == 15:
         print('15입니다.')
 
     if x == 20:
         print('20입니다.')
10 이상입니다.
15입니다.

조건을 판단하는 연산자

비교 연산자
x < y x가 y보다 작다
x > y x가 y보다 크다
x == y x와 y가 같다
x != y x와 y가 같지 않다
x >= y x가 y보다 크거나 같다
x <= y x가 y보다 작거나 같다

논리 연산자
x or y x와 y 둘중에 하나만 참이어도 참이다
x and y x와 y 모두 참이어야 참이다
not x x가 거짓이면 참이다

논리 연산을 잘못 작성하지 않도록 주의해야 한다.

  1. 계절 == '봄' or '가을'
  2. 계절 == '봄' or 계절 == '가을'

1은 틀렸고 2가 올바르다. (계절 == '봄') or (계절 == '가을')과 같이 or 양변의 비교식을 괄호로 둘러싸 표현하면 실수를 줄일 수 있다.

in, not in
x in 리스트
x in 튜플
x in 문자열

x not in 리스트
x not in 튜플
x not in 문자열

pass로 코드 실행 생략하기

if 조건문에 조건식만 작성하고 pass를 넣어 코드를 생략할 수 있다. 주로, pass만 넣고 나중에 할 일은 주석으로 남겨놓는 방식으로 사용한다.

if x == 10:
    pass    # TODO: x가 10일 때 처리가 필요함

if문 작성할 때 주의할 점

1) 값을 비교할 때는 =을 두 개 붙여서 ==로 사용해야 한다. 자주 틀리는 부분이니 if 안에서 ==을 사용했는지 반드시 확인하자.

2) 항상 참인 조건 또는 항상 거짓인 조건을 작성하지 말아야 한다.

선택은 여러 가능성이 열려 있어야 의미가 있다. 조건이 언제나 똑같이 평가되거나, 선택지가 하나 뿐이라면 선택을 할 필요가 없다. 다음 경우를 생각해보자.

  • 조건이 항상 참일 때: if 문의 본문이 항상 실행된다. if 문 없이 코드 본문을 작성하면 된다.
  • 조건이 항상 거짓일 때: if 문의 본문이 절대 실행되지 않는다. 코드를 작성할 필요가 없다.
  • 선택지가 하나뿐일 때: 조건을 따지지 않고 실행해야 할 코드다. if 문 없이 코드 본문을 작성하면 된다.

else

else는 if의 조건식이 만족하지 않을 때 코드를 실행한다. else는 if 조건문 뒤에 오며 단독으로 사용할 수 없다.

if 조건:
     본문1   # 조건이 참일 때 실행할 코드
else:
     본문2   # 조건이 거짓일 때 실행할 코드
>>> x = 5
>>> if x == 10:
...      print('10입니다.')
... else:
...      print('10이 아닙니다.')
... 
10이 아닙니다.

elif

프로그램을 만들다 보면 선택지로 두 개보다 더 많을 때도 있다. 이 때 if문과 else 사이에 elif를 추가하면 된다. elif를 이용하면 조건과 선택지를 원하는 만큼 추가할 수 있고, 여러 개의 선택지를 하나의 if문으로 묶을 수 있다.

if 조건 1:
    본문 1        # 조건 1이 참일 때 실행할 코드

elif 조건 2:
    본문 2        # 조건 2가 참일 때 실행할 코드

elif 조건 3:
    본문 3        # 조건 3이 참일 때 실행할 코드

...

else:
    마지막 본문   # 모든 조건이 거짓일 때 실행할 코드

elif절은 자신의 앞에 나오는 조건이 거짓일 때만 자기 조건을 검사한다. 중간에 하나라도 조건이 참인 선택지가 있다면 그 이후에 나오는 선택지는 고려하지 않는다.

button = int(input())
 
if button == 1:
    print('콜라')
elif button == 2:
    print('사이다')
elif button == 3:
    print('환타')
else:
    print('제공하지 않는 메뉴')
1 (입력)
콜라

elif절과 else절을 이용하면 여러 선택지를 묶어 그 중에서 한 번만 선택하도록 한다. 반대로 각 선택지를 별도의 if문으로 작성하면 작성한 if문의 개수만큼 선택이 일어난다.

조건부 표현식

조건부 표현식(conditional expression)은 조건에 따라 값을 구하는 식이다.

변수 = 참값 if 조건문 else 거짓값

조건부 식은 조건에 따라 달라지는 값을 구해 다른 문에서 사용하고자할 때 유용하다. 보통 람다 표현식에서 자주 사용한다. if 문으로도 비슷한 작업을 수행할 수 있지만, if 문은 식이 아니라 명령문이기 때문에 평가 결과를 직접 변수에 대입하는 것이 불가능하다.

예를 들어, 요일에 따라 음료 가격을 구하려면 다음과 같이 if문을 작성해야 한다.

if 요일 == '월요일':
    가격 = 1000  # if 문의 본문에 대입문이 하나 필요하고...
else:
    가격 = 2500  # else 절의 본문에도 대입문이 하나 필요하다

반면, 조건부 표현식을 사용하면 변수에 값을 쉽게 할당받을 수 있다.

가격 = 1000 if 요일 == '월요일' else 2500

본 포스팅은 아래의 사이트를 참고하여 작성되었습니다.
연오의 파이썬 https://python.bakyeono.net/chapter-6.html
코딩도장 https://dojang.io/
점프투파이썬 https://wikidocs.net/book/1

profile
Leave your comfort zone
post-custom-banner

0개의 댓글