#11 흐름제어 (조건문, 반복문)
1. 조건문 (if, elif, else)
# score>90 : A | score>80 : B | other : C
# score가 90보다 큰 경우
if score > 90:
print('A')
# score가 90보다 크지는 않지만 80보다는 큰 경우
elif score > 80:
print('B')
# 위 두 조건을 모두 만족하지 않는 경우
else:
print('C')
파이썬의 조건문 또한 다른 언어에서의 if else문과 거의 유사한 형태를 가진다. else if 는 elif로 표기하며 이전
기본문법에도 설명했듯이 블록은 들여쓰기로 구분한다. 조건문 내의 명령문이 한 줄일 경우 : 뒤에 바로 명령문을
이어붙여 한줄로 처리하는 것도 가능하다. 조건문 자리에 숫자형 데이터가 올 경우 0은 False, 그 외에는 True로
처리하며 문자열이나 리스트 등이 올 경우 비어있으면 False, 비어있지 않으면 True로 처리한다.
파이썬에서 조건문 내부는 비워둘 수 없기 때문에 미구현 상태로 둘 경우 아무것도 하지 않고 넘어가는 pass 키워드나
의도적으로 예외를 발생시키는 raise 키워드를 사용 가능하다.(미구현 상태임을 나타내기 위해)
파이썬에는 switch문에 대응하는 문법은 존재하지 않기 때문에 조건문은 if문이 전부이며 굳이 switch문을 써야하는
상황일 경우 dictionary에 함수를 매핑하는 방식을 사용할 수는 있다.
2. 반복문 (while문, for문)
- while 문
num = 0
while num<11:
print(num)
num += 1
#실행결과
0
1
2
3
4
5
6
7
8
9
10
조건문이 참인 동안은 내부의 명령문을 반복수행한다. 다른 언어의 while문과 마찬가지로 break, continue 키워드를
사용 가능하며 do while문은 별도로 존재하지 않는다.
- for 문
# 일반적인 for문
nums = [1, 2, 3, 4, 5]
for num in nums:
print(num, end=' ') # 실행결과: 1 2 3 4 5
print()
# 언패킹을 활용한 for문
pairs = [(1, 5), (2, 4), (3, 3)]
for x, y in pairs:
print(f'({x}, {y})', end=' ') # 실행결과: (1, 5) (2, 4) (3, 3)
print()
# range를 활용한 for문
for i in range(10):
print(i, end=' ') # 실행결과: 0 1 2 3 4 5 6 7 8 9
파이썬의 for문은 기본적으로 Java의 enhanced for와 같은 구조로 돼어있다. for <var> in <iterable>의 형태로
iterable한 자료구조 내부의 데이터들을 순차적으로 참조하는 방식이다. 또한 참조할 데이터가 튜플이나 리스트 등의
형태일 경우 여러개의 변수에 언패킹하여 참조하는 것도 가능하다.
다른 언어에서 사용하던 인덱스 방식의 for문을 사용하고 싶을 경우 range와 함께 사용 가능하다. range는 유한한 구간 내의 정수들의 집합을 나타내는 자료구조이다. range에 대한 자세한 내용은 이후 별도로 포스팅하기로 한다.