- if-else 문
if 조건식 :
문장 1
else :
문장 2
문장 3
조건식이 True이면 문장 1을, False이면 문장 2를 실행
- else문이 없는 if문의 경우, if문의 조건식이 True이면 if문 블럭 내의 문장을 실행, 아니면 if문 블럭 다음의 문장(문장 3)을 실행
- 중첩 if 문 (if문 안에 if문)
- 연속 if 문 (if문 다음에 if문)
- elif 문 (else if)
- 조건 연산자
max_value = (x if x > y else y) #if 뒤의 조건문이 참이면 x를, 아니면 else 뒤의 y를 max_value로 정의
간단한 조건문의 경우 조건 연산자를 사용하여 표현할 수 있음
- for 문 (횟수 제어 반복)
for 변수 in 리스트 :
문장 1
문장 2
변수에 리스트의 원소를 순서대로 할당하면서 문장 1을 실행 ▶ 리스트의 길이에 해당하는 횟수만큼 문장 1을 반복
- for문이 종료되면 문장 2를 실행
for _ in range(종료값) :
for _ in range(시작값, 종료값, 증가량) :
range() 함수를 이용하여 정수 시퀀스를 생성 (0부터 시작하여 종료값-1 까지 1씩 증가 (인덱스), 종료값과 일치하는 길이의 시퀀스 생성)
- range() 자체가 리스트를 반환하지는 않음
- 문자열 또한 시퀀스이므로, range() 대신 문자열을 입력할 수 있음.
- while 문 (조건 제어 반복)
while 조건식 :
문장 1
else :
문장 2
문장 3
조건식이 True이면 문장 1을, False이면 문장 2를 무한히 반복
- else문이 없는 while문의 경우, while문의 조건식이 True이면 while문 블럭 내의 문장을 무한히 반복, 아니면 while문 블럭 다음의 문장(문장 3)을 실행
- 조건식 대신 부울 변수인 True를 입력하면, 문장 1을 무한히 반복하는 무한 반복문
- 중첩 for 문 (for문 안에 for문)
- 중첩 while 문 (while문 안에 while문)
- break 문
가장 가까운 반복문 블럭 내의 break문 이하의 모든 문장을 무시하고 해당 반복문 블럭을 탈출
- 예시 (중첩 반복문, for-else문, if문)
for n in range(2, 20+1) : #for_1
for x in range(1+1, n) : #for_2
if n % x == 0 :
break
else :
print(n, end=" ")
# 출력 : 2 3 5 7 11 13 17 19
2에서 20까지의 소수(1과 자기자신만이 약수인 수)를 찾는 코드
- for_1문에 의해서 for_2문 블럭을 2에서 20까지 반복
- for_2문 블럭의 if문이 False이면(1과 n(자기자신) 이외의 약수가 있는 경우) break문 발동
- break문이 발동하면 for_2문 블럭을 탈출, for_2문의 else문은 무시
- for_2문 블럭의 반복이 break 발동 없이 종료되면(if문이 모두 True) else문 블럭의 문장 실행
- break문이 작동하는 경우
: for_1 (n = 4) ▶ for_2 ▶ if문 (x = 2 ▶ True) ▶ break ▶ for_1 (n = 5) ▶ for_2 ▶ ...
- break문이 작동하지 않는 경우
: for_1 (n = 5) ▶ for_2 ▶ if문 (break 발동 X) ▶ else문 ▶ print(n) ▶ for_1 (n = 6) ▶ for_2 ▶ ...
for n in range(2, 20+1) : #for_1
for x in range(1+1, n) : #for_2
if n % x == 0 :
break
print(n, end=" ")
# 출력 : 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
이 코드에서 print문은 for_2문 블럭 밖인 for_1문 블럭에 있기 때문에, break문이 발동하더라도 print문이 실행됨 (for_2문이 종료될 때마다 print문이 실행됨)
for n in range(2, 20+1) : #for_1
for x in range(1+1, n) : #for_2
if n % x == 0 :
break
print(n, end=" ")
# 출력 : 3 5 5 5 7 7 7 7 7 9 11 11 11 11 11 11 11 11 11 13 13 13 13 13 13 13 13 13 13 13 15 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19
이 코드에서 print문은 for_2문 블럭 안에 있지만, else문 블럭 안에 있지 않기 때문에 for_2문의 반복으로 if문이 False일 때마다 print문이 실행됨 (break문이 발동되지 않을 때마다 그때의 n값이 print됨)
- continue 문
가장 가까운 반복문 블럭 내의 continue문 이하의 모든 문장을 무시하고 해당 반복문의 다음 반복을 실행
- 예시
n = 20
for x in range(1, n+1) :
if n % x != 0 :
continue
print(x, end=" ")
# 출력 : 1 2 4 5 10 20
n의 약수를 찾는 코드
- for문에 의해서 해당 블럭을 n번 반복
- if문이 True이면(약수가 아닌 경우) continue문 발동
- continue문이 발동하면 print문 무시, for문의 다음 반복을 실행
'Coding > Python' 카테고리의 다른 글
| Ch 7. 리스트 (0) | 2025.07.02 |
|---|---|
| Ch 6. 함수 (0) | 2025.04.21 |
| Ch 3. 수식과 연산자 (0) | 2025.04.20 |
| Ch 2. 변수와 자료형 (0) | 2025.04.20 |
| Ch 1. 파이썬 소개 (0) | 2025.04.20 |