이미지 출처: https://wikidocs.net/192339
드디어 파이썬 자료형을 끝내고 이제 제어문을 배워보겠습니다. 제어문은 프로그래밍을 완성하는데 1순위로 꼽힙니다. 오늘은 프로그램의 흐름을 어떻게 제어하는지에 초점을 맞추면서 보시면 좋습니다. if 구문이 능숙해지면 자신이 의도한 방향대로 프로그램을 제어할 수 있습니다.
if 구문 실습
먼저 기본형식을 알아야합니다.
전에 배웠듯이 True는 숫자 1이고, False는 숫자 0이라고 했습니다.
true를 나타내는 거는 여러 가지가 있습니다. 문자들, 리스트, 튜플 안에 데이터가 있다면 모두 true입니다. False는 빈 리스트, 튜플, 집합과 같은 것이 있습니다.
print(type(True)) # 0이 아닌 수, "abc", [1, 2, 3..], (1, 2, 3...)... >>> <class 'bool'> print(type(False)) # 0, "", [], (), {}... >>> <class 'bool'>
예1
if True: print('Good') >>> Good
if 'a': print('Good!') >>> Good!
if False: print('Bad')
예2
if False: print('Bad') else: print('Good!') >>> Good!
파이썬에서 관계 연산자(또는 비교 연산자)는 값을 비교하고, 두 값의 관계를 평가하는 데 사용됩니다. 이러한 연산자는 조건문에서 자주 활용되며, 다음과 같이 다양한 연산자가 있습니다.
위의 연산자들을 코드로 직접 확인해보겠습니다.
x = 15 y = 10 print(x == y) >>> False print(x != y) >>> True print(x > y) >>> True print(x >= y) >>> True print(x < y) >>> False print(x <= y) >>> False
예3
city = '' # 만약 문자열안에 값이 있다면 else문이 실행되겠죠!ㅎㅎ if city: print('You are in:', city) else: print('Please eneter your city') >>> Please eneter your city
예3
city2 = 'seoul' if city2: print('You are in:', city2) else: print('Please eneter your city') >>> You are in: seoul
조건을 풍부하게 체크할 수 있도록 도와주는 논리연사자를 알아봅시다.
and (논리 곱): and 연산자는 두 개 이상의 조건이 모두 참일 때만 참을 반환합니다. 예를 들어, A and B는 A와 B가 둘 다 참일 때만 참을 반환합니다.
or (논리 합): or 연산자는 두 개 이상의 조건 중 하나라도 참이면 참을 반환합니다. 예를 들어, A or B는 A 또는 B 중 하나라도 참이면 참을 반환합니다.
not (논리 부정): not 연산자는 주어진 조건을 반전시킵니다. 예를 들어, not A는 A가 거짓이면 참을 반환하고, A가 참이면 거짓을 반환합니다. 반대로 출력한다고 생각하시면 됩니다.
a = 75 b = 40 c = 10 # a > b > c , # a > b > c , and는 모두 만족해야 True가 나온다. print('and:', a > b and b > c) >>> and : True # or은 하나만 만족해도 True가 나온다. print('or :', a > b or b > c) >>> or : True # a > b 인것은 True이지만 not이기에 False가 나온다. print('not :', not a > b) >>> not : False # 반대로 출력해준다고 생각하면 쉽다. print('not :', not b > c) >>> not : False print(not True) >>> False print(not False) >>> True
산술 > 관계 > 논리
위와 우선순위가 높은 순서대로 규칙을 적용해서 계산하시면 됩니다.
print('e1 : ', 3+12 > 7+3) >>> e1 : True print('e2 : ', 5 + 10 *3 > 7 + 3 * 20) >>> e2 : False print('e3 : ', 5 + 10 > 3 and 7 + 3 ==10) >>> e3 : True print('e4 : ', 5 + 10 > 0 and not 7 + 3 == 10) >>> e4 : False
다음에는 여러개의 조건이 있는 if 구문을 살펴보겠습니다.
예5
score = 90 score2 = 'A' if score >= 90 and score2 == 'A': print('Pass') # 들여쓰기(indent) 중요!! else: print('Fail') >>> Pass
예6
id1 = 'vip' id2 = 'admin' grade = 'gold' if id1 == 'vip' or id2 == 'admin': print('관리자 입장') >>> 관리자 입장 if id2 == 'admin' and grade == 'gold': print('최상위 관리자') >>> 최상위 관리자
다중 조건문은 하나 이상의 if, elif (else if의 줄임말), 그리고 else 절을 사용하여 여러 조건을 연달아 검사할 때 유용합니다. 위에서 아래로 순서대로 조건을 검사하며 처음으로 참인 조건을 만나면 코드를 실행하고 다중 조건문을 빠져나갑니다. 조건문을 좀더 세밀하게 만들 수 있겠죠.
num = 90 if num >= 90: print('Grade : A') elif num >= 80: # else는 모아니면 도, elif는 조건문을 계속 붙일 수 있다. print('Grade : B') elif num >= 70: print('Grade : C') else: print('과학') >>> Grade : A
grade = 'A' total = 95 if grade == 'A': if total >= 90: print('장학금 100%') # grade가 A인 사람중에 total 90이상인 사람은 장학금 100% elif total >= 80 : # else if = elif print('장학금 80%') else: print('장학금 50%') else: print('장학금 없음') >>> 장학금 100%
in은 알고계시겠지만 not in과 함께 한번더 보겠습니다.
q = [10, 20, 30] w = [70, 80, 90, 100] e = {'name' : 'Lee', 'City' : 'Seoul', 'grade' : 'A'} r = (18, 12, 14) print(15 in q) # q안에 15가 있으면 True를 반환 없다면 False반환 >>> False print(90 in w) >>> True print(12 not in r) >>> False print('name' in e) >>> True print('Seoul' in e) >>> False # Seoul은 키가 아니라 값이라 .valuse를 해준다. # e.values() - 키는 버리고 값만 가져온다 print('Seoul' in e.values()) >>> True
오늘은 True로 판단하는 것들 False로 판단하는 것들, if else구문, 다양한 연산자들과 다중 조건문 등을 배워보았습니다. 기초 문법을 모르고 복잡한 조건문을 맞닥뜨리면 당황할 수 있습니다. 반복 학습을 통해 공부합시다. 😎