-
11. else를 사용하여 두 방향으로 분기하기Python/Grammar 2023. 3. 9. 23:23
# 1. else 사용하기
1-1. if와 else의 기본 형태와 실행 흐름 알아보기
else의 코드는 if 조건식을 만족하지 않을 때 실행한다. 즉, if 조건식이 True이면 if 본문(if의 코드)이 실행되고 False이면 else 본문(else의 코드)이 실행된다. else 조건문은 단독으로 사용할 수 없으며, 조건식 뒤에 콜론을 붙이는 형식과 실행할 코드를 조건식 다음줄에 들여쓰기 후 작성하는 규칙은 if 조건문과 같다.
❗️ False로 취급하는 것들
- None
- False
- 0인 숫자들 -> 0, 0.0, 0j
- 비어있는 문자열 -> '', ""
- 비어있는 리스트 -> []
- 비어있는 튜플 -> ()
- 비어있는 딕셔너리 -> {}
- 비어있는 세트 -> set()
- 클래스 인스턴스의 __bool__(), __len__() 메서드가 0 또는 False를 반환할 때
False로 취급하는 것들을 제외한 모든 요소들은 True로 취급한다.1-2. 조건부 표현식(condition expression)으로 사용하기
if - else 조건문의 일반적인 형태는 아래와 같다.
a = 'True' if a: # 문자열은 True로 취급되므로 if의 코드가 실행된다. b = a else: b = True >>> b 'True'
하지만 아래와 같이 "조건부 표현식"을 사용하면 변수 = 값 if 조건식 else 값 형식으로 축약할 수 있다.
a = 'True' b = 'True' if a else True >>> b 'True'
cf. 조건부 표현식은 람다 표현식에서 자주 사용함
# 2. 조건식을 여러 개 지정하기
2-1. 중첩 if 조건문과 논리 연산자
조건식을 여러 개 지정하는 방법에는 중첩 if 조건문을 사용하거나 if 조건문에 논리 연산자를 활용하는 방법이 있다.
먼저 중첩 if 조건문을 사용한 예제는 아래와 같다.
x = 10 y = 30 if x == 10: if y == 20: print('a') else: print('b') # 실행결과 b
이를 논리 연산자를 활용해 표현하면 아래와 같다.
x = 10 y = 30 if x == 10 and y == 20: # x값이 10이고 y값이 20인 조건 모두를 만족하면 if 본문 실행 print('a') else: print('b') # 실행결과 b
위 식에서 논리 연산자 or을 사용하면 x값이 10인 조건은 만족하므로 결과값 'a'가 출력된다.
x = 10 y = 30 if x == 10 or y == 20: # x값이 10인 조건, y값이 20인 조건 둘 중 하나만 만족하면 if 본문 실행 print('a') else: print('b') # 실행결과 a
예제 1. 합격 여부 판단하기 1 (본문 14.6 연습문제)
A 기업의 입사 시험은 필기 시험 점수가 80점 이상이면서 코딩 시험을 통과해야 합격이라고 정했습니다(코딩 시험 통과 여부는 True, False로 구분). 다음 소스 코드를 완성하여 '합격', '불합격'이 출력되게 만드세요.
written_test = 75 coding_test = True if written_test >= 80 and coding_test: print('합격') else: print('불합격')
예제 2. 합격 여부 판단하기 2 (본문 14.7 심사문제)
표준 입력으로 국어, 영어, 수학, 과학 점수가 입력됩니다. 여기서 네 과목의 평균 점수가 80점 이상일 때 합격이라고 정했습니다. 평균 점수에 따라 '합격', '불합격'을 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 단, 점수는 0점부터 100점까지만 입력받을 수 있으며 범위를 벗어났다면 '잘못된 점수'를 출력하고 합격, 불합격 여부는 출력하지 않아야 합니다.
kor, eng, math, sci = map(int, input().split()) if not 0 <= kor <= 100 or not 0 <= eng <= 100 or not 0 <= math <= 100 or not 0 <= sci <= 100: print('잘못된 점수') else: if (kor + eng + math + sci) / 4 >= 80: print('합격') else: print('불합격')
'Python > Grammar' 카테고리의 다른 글
15. 제너레이터 사용하기 (0) 2023.03.11 12. elif를 사용하여 여러 방향으로 분기하기 (1) 2023.03.10 13. 반복문 제어하기 (0) 2022.12.08 10. if 조건문으로 특정 조건일 때 코드 실행하기 (0) 2022.12.02 9. 딕셔너리 만들기 (0) 2022.12.02