TIL 12. 파이썬 - 조건문 (if, else, elif)

문승준·2021년 8월 25일
0

Python

목록 보기
4/8

if 조건문 기본

  • 조건식 : 으로 코드와 구별

  • 코드는 들여쓰기 깊이가 같아야 한다.

  • pass로 코드 생략하기 (TODO 주석)

# 조건문을 그냥 넘어가기 -> 아무것도 적지 않으면 에러가 난다.

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

  • 중첩 if 조건문
# 코드가 어디에 속해있는지 들여쓰기로 표현한다.

x = 15
 
if x >= 10:
     print('10 이상입니다.')
 
     if x == 15:
         print('15입니다.')
 
     if x == 20:
         print('20입니다.')
         
         
  • 입력값에 if 조건문 사용하기
x = int(input())          # 입력받은 값을 변수에 저장
 
if x == 10:               # x가 10이면
    print('10입니다.')    # '10입니다.'를 출력
 
if x == 20:               # x가 20이면
    print('20입니다.')    # '20입니다.'를 출력
    
    

EX) 간단한 할인쿠폰 시스템 만들기

# 가격(정수)와 쿠폰 이름을 입력 받는다.

p = int(input())
c = input()

# 입력 27000
# 입력 Cash3000

if c == 'Cash3000':
    p -= 3000

if c == 'Cash5000':
    p -= 5000

print(p)

# 결과 24000

else 사용해 두 방향으로 나누기

  • else는 단독으로 사용할 수 없다.

  • else 뒤에도 :(콜론) 으로 코드를 구별한다.

조건부 표현식 (Conditional Expression)

변수 = 값 if 조건문 else 값

# 조건에 따라 y에 값을 할당하는 방법

>>> x = 5
>>> if x == 10:
...     y = x
... else:
...     y = 0
...
>>> y
0

# 축약해서 표현하기
# 변수 = 값 if 조건문 else 값

>>> x = 5
>>> y = x if x == 10 else 0
>>> y
0

# 람다 표현식에서 자주 사용한다.

False로 취급하는 것들

  • None (아무것도 없다는 뜻)
  • False (거짓)
  • 0 인 숫자들: 0, 0.0, 0j
  • 비어 있는 문자열, 리스트, 튜플, 딕셔너리, 세트
    '', "", [], (), {}, set()
  • 클래스 인스턴스의 __bool__(), __len__() 메서드가 0 또는 False를 반환할 때
  • 다른 값들은 모두 True로 취급한다.
  • not 0, not None, not ''True가 된다.
  • 내용이 있는 문자열, 리스트, 튜플, 딕셔너리, 세트

조건식에 논리연산자 사용하기

  • and, or
# 두가지 조건을 모두 만족해야할때

x = 10
y = 20
 
if x == 10 and y == 20:     # x가 10이면서 y가 20일 때
    print('참')
else:
    print('거짓')

# 중첩 if문으로 하면

if x > 0:
    if x < 20:
        print('20보다 작은 양수입니다.')

# and 논리연산자를 사용

if x > 0 and x < 20:
    print('20보다 작은 양수입니다.')

# 부등호를 사용

if 0 < x < 20:
    print('20보다 작은 양수입니다.')
    
    

EX) 네 과목의 평균 점수에 따른 결과 출력하기

  • 평균 80 이상이면 합격, 이하는 불합격, 점수 범위가 아니면 잘못된 점수라고 출력하기

    잘못된 값에 대한 처리는 꼭 해주는 것이 좋다.

# 네 과목의 점수를 입력 받는다.
a, b, c, d = map(int, input().split())

if 0<= a <= 100 and 0<= b <= 100 and 0<= c <= 100 and 0<= d <= 100:

    if (a+b+c+d)/4 >= 80:
        print('합격')

    else:
        print('불합격')

else:
    print('잘못된 점수')
    
    

elif 사용해 여러 방향으로 나누기

  • 조건식을 여러개 지정하여 각 조건마다 다른 코드를 실행한다.

  • elif는 여러번 쓸 수 있지만 ifelse는 한번만 사용 가능

# 번호에 따라 음료 출력하기

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

EX) 교통카드 시스템 만들기

  • 입력 값이 7살 이상의 나이(정수)일때,
    나이에 맞게 요금을 차감한 뒤 잔액을 출력하기
age = int(input())
balance = 9000

if 7 <= age <= 12:
    balance -= 650
elif 13 <= age <= 18:
    balance -= 1050
elif age <= 19:
    balance -= 1250

print(balance)

profile
개발자가 될 팔자

0개의 댓글