→ 조건 처리나 반복 처리를 통해 코드의 실행 흐름을 제어
→ 파이썬 제어문은 들여쓰기로 블럭을 지정하니 이에 ㅈ의
1. IF문
→ 가장 대표적인 제어문이 if문
→ 특정 조건에 맞는 경우에만 코드를 실행하고 싶을 때 사용
1) 단순 if문
- 조건이 참인 경우만 처리
- 조건이 거짓인 경우는 아무 처리도 하지 않는다

my_score = 73
if my_score >= 80:
my_score += 10
my_score # 73
2) if ~ else 문
- 조건이 참인 경우와 아닌 경우 각각 처리
- 처리할 구문이 없거나 이후에 작성할 목적으로 pass 사용 가능

my_score = 73
if my_score >= 80:
print('Pass')
else:
print('Fail') # Fail
3) if ~ elif ~ else 문
- 여러 조건 중에서 참인 경우 각각 처리, 그렇지 않은 경우 처리

my_score = 76
if my_score >= 90:
my_grade = 'A'
elif my_score >= 80:
my_grade = 'B'
elif my_score >= 70:
my_grade = 'C'
elif my_score >= 60:
my_grade = 'D'
else:
my_grade = 'F'
my_grade # 'C'
2. for문
→ 첫번째 값부터 마지막 값까지 하나씩 가져가면서 처리함
1) 리스트와 for문
→ 반복문과 가장 많이 사용되는 자료형이 리스트형
a. 기본 반복문
- 첫 번째 요소부터 마지막 요소까지를 대상으로 코드를 반복 처리
member = ['홍길동', '한사랑', '일지매', '박여인', '강우동']
i = 1
for m in member:
print(i, m)
i += 1
# 1 홍길동
# 2 한사랑
# 3 일지매
# 4 박여인
# 5 강우동
# enumerate -> index와 value를 튜플 형태로 반환해주는 함수
member = ['홍길동', '한사랑', '일지매', '박여인', '강우동']
for i, m in enumerate(member):
print(i + 1, m)
b. 반복문 확장
- 이 방법은 코드를 간결하게 하는 방법
nums = [0, 1, 2, 3, 4]
squares = []
for x in nums:
squares.append(x ** 2)
# 반복문 확장법을 사용하면
squares = [x ** 2 for x in nums]
2) 딕셔너리와 for문
a. 기본 반복문
score = {'홍길동': 85, '한사랑': 95, '일지매': 90}
# key와 value 조회
for k in score:
v = score[k]
print('{}: {}'.format(k, v))
# 홍길동: 85
# 한사랑: 95
# 일지매: 90
b. items() 메소드 사용
for k, v in score.items():
print(f'{k}: {v}')
c. 반복문 확장
score = {'홍길동': 85, '한사랑': 95, '일지매': 90}
score_over_90 = {k: v for k, v in score.items() if v > 90}
3) 집합과 for문
a. 기본 반복문 : 리스트와 같은 방법
3. while 문
→ 조건문이 True인 동안 문장이 반복해서 실행됨
→ 특정 상황에서 반복을 중지하게 while 문 안에서 조건을 제어
1) 일반 while문
fruits = ['apple', 'banana', 'cherry']
i = 0
while i < 3:
print(fruits[i])
i += 1
2) 무한루프 다루기
- break문 : 반복문 안에서 특정 조건이 되어 반복문을 빠져나올 때 사용
- continue문 : 다음 반복으로 넘어갈 때 사용
tot, i = 0, 0
while True:
i += 1
if i > 100:
break
if i % 2 == 0:
tot += i
else:
continue
print(i, tot)