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은 틀렸고 2가 올바르다. (계절 == '봄') or (계절 == '가을')과 같이 or 양변의 비교식을 괄호로 둘러싸 표현하면 실수를 줄일 수 있다.
in, not in
x in 리스트
x in 튜플
x in 문자열
x not in 리스트
x not in 튜플
x not in 문자열
if 조건문에 조건식만 작성하고 pass를 넣어 코드를 생략할 수 있다. 주로, pass만 넣고 나중에 할 일은 주석으로 남겨놓는 방식으로 사용한다.
if x == 10:
pass # TODO: x가 10일 때 처리가 필요함
1) 값을 비교할 때는 =을 두 개 붙여서 ==로 사용해야 한다. 자주 틀리는 부분이니 if 안에서 ==을 사용했는지 반드시 확인하자.
2) 항상 참인 조건 또는 항상 거짓인 조건을 작성하지 말아야 한다.
선택은 여러 가능성이 열려 있어야 의미가 있다. 조건이 언제나 똑같이 평가되거나, 선택지가 하나 뿐이라면 선택을 할 필요가 없다. 다음 경우를 생각해보자.
else는 if의 조건식이 만족하지 않을 때 코드를 실행한다. else는 if 조건문 뒤에 오며 단독으로 사용할 수 없다.
if 조건:
본문1 # 조건이 참일 때 실행할 코드
else:
본문2 # 조건이 거짓일 때 실행할 코드
>>> x = 5
>>> if x == 10:
... print('10입니다.')
... else:
... print('10이 아닙니다.')
...
10이 아닙니다.
프로그램을 만들다 보면 선택지로 두 개보다 더 많을 때도 있다. 이 때 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