Python

Python 문법 기초 9 - if 문

코딩탕탕 2022. 10. 22. 15:20

 

# 조건 판단문 if
# if 조건 : 실행문 elif() 조건 ~ else : ~

var = 10

if var >= 3: # java : {}, py : 들여 쓰기
    # print('크구나')
    # print('참일 때')
    pass
else:
    print('거짓일 때')
    
print('end1')


<console>
end1

자바에서는 if(var ≥ 3){} 로 시작하지만 파이썬에서는 위와 같다.

if문은 따로 실행을 하지 않아도 알아서 실행이 된다.

if 문 안에서는 무조건 들여쓰기를 사용해야 된다. 사용하지 않으면 에러 발생

조건이 거짓일때는 수행하지 않는다.

else 문으로 조건이 거짓일때도 수행 가능하다.

pass 를 부여하는 것으로 참일때는 아무것도 실행하지 않고 넘긴다는 의미이다.

 

money = 1000
age = 23

if money >= 500:
    item = '사과'
    if age <= 30:
        msg = '청춘이다'
    else:
        msg = '올드하다.'
else:
    item = '포도'
    if age >= 30:
        msg = '성인이다'
    else:
        msg = '애다.'

print(item, msg)


<console>
사과 청춘이다

if else 문으로 이렇게 표현 가능하다.

 

jumsu = 85

if jumsu >= 90:
    print('우수')
else:
    if jumsu >= 70:
        print('보통')
    else:
        print('저조')

if jumsu >= 90:
    print('우수')
elif jumsu >= 70:
    print('보통')
else:
    print('저조')


<console>
보통
보통

elif(조건)를 사용하지 않은 코드와 사용한 코드이다.

 

# jum = int(input('점수 입력:'))
jum = 80
print(jum, type(jum)) # 외부에서 값을 받을 때는 무조건 str 타입이다.
# if jum >= 90 and jum <= 100:
if 90 <= jum <= 100: # 파이썬에서는 이렇게 사용 가능
    grade = '우수함'
elif 70 <= jum < 90:
    grade = '보통임'
else:
    grade = '저조함'
    
print(grade)

names = ['홍길동', '신기해', '이기자']
# if '홍길동' not in names:
if '홍길동' in names:
    print('친구 이름')
else:
    print('누구니?')


<console>
10
55
80 <class 'int'>
보통임

친구 이름

jum = int(input('점수 입력:')) 이렇게 입력하면 따로 실행시키지 않아도 바로 console 창에서 입력 가능하다. 콘솔창에 점수를 입력하면 위의 if 문으로 등급을 나눌 수 있다.

in names를 사용하여 ‘홍길동’이라는 문자열이 들어있으면 친구 이름을, 없으면 누구니? 를 호출할 수 있다. not in names 를 사용할 수도 있다.

 

a = 'kbs'
b = 9 if a == 'kbs' else 11
print(b)

a = 11
b = 'mbc' if a == 9 else 'kbs'
print(b)


<console>
9
kbs

람다 함수를 사용하여 간단하게 사용 가능하다. 참이면 왼쪽의 값을, 불이면 오른쪽의 값을 가져온다.

 

a = 3
if a < 5:
    print(0)
elif a < 10:
    print(1)
else:
    print(2)

print(0 if a < 5 else 1 if a < 10 else 2)

print(a * 2 if a > 5 else a + 2)

print((a + 2, a * 2)[a > 5])


<console>
0
0
5
5

위의 if 문도 밑에처럼 한줄로 작성 가능하다. 그러나 위의 다중 if 문은 한줄 요약은 잘 안 한다.

조건이 참일때는 왼쪽의 코드를 실행하고 거짓일 때는 오른쪽을 실행한다.

13번째 줄은 tuple 방식으로 조건이 대관호 안에 들어있고 참이면 오른쪽, 거짓이면 왼쪽이다.