티스토리 뷰
4.7 중첩 if 문과 다중 if-elif-else 문(Nested if and Multi-Way if-elif-else Statements)
- if 문 안에다가 또 다른 if 문을 선언하여 중첩 if 문을 만들 수 있다.
- 중첩 if 문의 횟수 제한은 없다.
if i > k:
if j > k:
print("i and j are greater than k")
else:
print("i is less than or equal to k")
- 중첩 if 문은 다양한 대안을 구현하는 데 사용 할 수 있다.
- 예를 들어, 점수에 따라 학점을 변수에 다르게 할당하는 프로그램을 짤 경우 이용을 할 수 있다.
* 학점 프로그램
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 |
score = eval(input("점수입력>>"))
if score >= 90.0:
grade = 'A'
else:
if score >= 80.0:
grade = 'B'
else:
if score >= 70.0:
grade = 'C'
else:
if score >= 60.0:
grade = 'D'
else:
grade = 'F'
printI(grade) |
cs |
* 학점프로그램 과정
- 위 처럼 if-else 문을 이용해 만들 수도 있지만, if-elif-else문을 이용해 더 깔끔한 형태로 만들 수 있다.
- 위와 아래의 두 학점 프로그램은 동등한 의미이다.
- 실제로 if-else 문을 이용하는거 보다 if-elif-else 문을 이용하는 것이 더 가독성이 좋고 편하다.
* if-elif-else문을 이용한 학점프로그램
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
score = eval(input("점수 입력>>"))
if score >= 90.0:
grade = 'A'
elif score >= 80.0:
grade = 'B'
elif score >= 70.0:
grade = 'C'
elif score >= 60.0:
grade = 'D'
else:
grade = 'F'
print(grade) |
cs |
- 이러한 스타일의 코딩 방식을 다중 if문(multi-way if)이라고 부른다.
- 다중 if문은 if-elif-else문(elif = else if의 준말)을 이용한다.
* 출생년도에 따른 띠 프로그램
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 |
year = eval(input("Enter a year: "))
zodiacYear = year%12
if zodiacYear == 0:
print("monkey")
elif zodiacYear == 1:
print("rooster")
elif zodiacYear == 2:
print("dog")
elif zodiacYear == 3:
print("pig")
elif zodiacYear == 4:
print("rat")
elif zodiacYear == 5:
print("ox")
elif zodiacYear == 6:
print("tiger")
elif zodiacYear == 7:
print("rabbit")
elif zodiacYear == 8:
print("dragon")
elif zodiacYear == 9:
print("snake")
elif zodiacYear == 10:
print("horse")
else :
print("sheep")
|
cs |
4.8 선택문에서 흔히 발생하는 오류들(Common Errors in Selection Statements)
- 선택문에서 발생하는 대부분의 오류는 들여쓰기(identation)에서 발생한다.
*예제 1
radius = -20
if radius >= 0:
area = radius * radius * math.pi
print("The area is", area)
*예제 2
radius = -20
if radius >= 0:
area = radius * radius * math.pi
print("The area is", area)
- 예제 1의 경우 print 문이 if문 블록(block)밖에 작성되어 있는 상태이고, 예제 2의 경우 if문 블록(block)안에 작성되어 있는 상태이다.
- 들여쓰기(identation) 하나로 코드의 의미가 완전히 달라지기 때문에 주의해서 작성하여야 한다.
- 부울 값(boolean value)를 담아야 하는 경우 아래와 같이 코드를 작성하면 더 간결하고 보기 좋다.
* 코드 작성 tip
if number % 2 == 0:
even = True
else:
even = False
↓ 동등한 의미이지만 아래의 코드가 더 간결하고 보기 좋다.
even = number % 2 == 0
- if문과 elif 문의 차이점을 확인할 수 있는 문제로 아래의 예제를 실행시켜보자.
- input으로는 14, 15, 30을 입력해보고 차이점을 확인해보면 이 두 명령문의 차이점을 알 수 있다.
*
1
2
3
4
5
6 |
number = eval(input("Enter the number: "))
if number % 2 == 0:
print(number, "is even")
elif number % 5 == 0:
print(number, "is multiple of 5") |
cs |
*
1
2
3
4
5
6 |
number = eval(input("Enter the number: "))
if number % 2 == 0:
print(number, "is even")
if number % 5 == 0:
print(number, "is multiple of 5") |
cs |
*
참고 문헌 : Introduction to Programming Using Python / Y.DANIEL LIANG
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
※
'파이썬 > 이론' 카테고리의 다른 글
[파이썬]조건식,연산자 우선순위와 결합법칙, 객체의 위치파악 (0) | 2017.07.18 |
---|---|
[파이썬]논리 연산자(or, and, not), 윤년 계산, 복권 프로그램 (0) | 2017.07.18 |
[파이썬]단일 if문, 이중 if-else 문, 생일 맞히기 (0) | 2017.07.15 |
[파이썬]선택문, 부울, 랜덤 모듈과 랜덤함수 (0) | 2017.07.15 |
[파이썬]터틀(turtle)을 이용한 모양그리기 (4) | 2017.07.12 |
- Total
- Today
- Yesterday
- 파이썬 터틀
- 자료구조
- css 그리드
- 파이썬 함수
- 웹
- 파이썬 문자열
- 파이썬 if문
- css
- 명품 c++ 실습
- 파이썬 단계적 개선
- 파이썬 while
- css 박스
- 백준 1874
- 파이썬 객체
- 파이썬 진수 변환
- 파이썬 연산자
- 파이썬 예제
- 파이썬
- 자바 에센셜 실습문제
- 백준 11501
- 버츄어박스
- 파이썬 클래스
- 자바스크립트 그래프
- 자바
- 자바스크립트 자료구조
- 백준 10451
- 파이썬 리스트
- 파이썬 선택문
- 백준
- 파이썬 for
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |