제어문과 반복문
- 제어문 : 프로그램의 실행 흐름을 제어하는 명령문
특정 조건을 만족할 때만 특정 코드를 실행 or 여러 조건에 서로 다른 코드 실행
- 반복문 : 특정 코드 블록을 여러 번 반복 실행하는 구조
제어문과 반복문 결합 사용 가능
어떻게 구성할지는 개발자의 몫
제어문과 반복문의 프로그래밍에서의 중요성
1. 유연성 : 프로그램의 다양한 상황 대처
2. 코드 재사용 : 코드의 길이를 보다 간결하게 하고, 유지보수를 쉽게 만들 수 있음
3. 자동화 : 대량의 데이터 처리나 반복 작업을 자동화 가능
파이썬의 조건문 : 주어진 조건에 따라 특정 코드 블록을 실행하거나 건너뛰는 기능
※ 파이썬은 들여쓰기를 기준으로 코드 구조를 구분함
1. if문 : 해당 조건식이 참이면 해당 코드 블록 실행
age = 20
if age >= 20:
print("성인입니다.")
# 성인입니다.
2. else문 : if문의 조건이 거짓일 때 실행되는 코드 블록
age = 18
if age >= 20:
print("성인입니다.")
else:
print("미성년자입니다.")
# 미성년자입니다.
3. elif문 : 여러개의 조건을 순차적으로 검사하고 참인 조건의 해당 코드 블록 실행
age = 30
if age >= 30:
print("30세 이상 성인입니다.")
elif age >= 20:
print("성인입니다.")
else:
print("미성년자입니다.")
# 30세 이상 성인입니다.
4. 중첩 조건문 : 조건문 안에 또 다른 조건문을 사용
# 사용자로부터 나이와 학생 여부를 입력받아 상태를 출력하는 프로그램
age = int(input("나이를 입력하세요: "))
is_student = input("학생입니까? (yes/no): ")
if age >= 20:
if is_student.lower() == "yes":
print("성인이며, 학생입니다.")
else:
print("성인이며, 학생이 아닙니다.")
else:
if is_student.lower() == "yes":
print("미성년자이며, 학생입니다.")
else:
print("미성년자이며, 학생이 아닙니다.")
a = "yes"
a.upper() # "YES" / a를 대문자로
b = "YES"
b.lower() # "yes" / b를 소문자로
파이썬의 반복문 : 동일한 코드 블록을 여러 번 실행하도록 하는 구조
1. for문 : 컬렉션의 각 요소 순차적 순회하며 코드 블록 실행
# 숫자 리스트의 각 요소를 세제곱한 값을 출력하는 프로그램
list_samples = [1, 2, 3, 4, 5]
for numbers in list_samples:
cube = numbers ** 3
print(f"{numbers}의 세제곱은 {cube}입니다.")
# 1의 세제곱은 1입니다.
# 2의 세제곱은 8입니다.
# 3의 세제곱은 27입니다.
# 4의 세제곱은 64입니다.
# 5의 세제곱은 125입니다.
2. while문 : 조건식이 참인 동안 계속 반복
※ False가 되는 지점이 있어야 while문이 동작을 멈춤 / 무한 루프 구성 가능
number = 10
while number <= 13:
number += 1
print(number)
# 11
# 12
# 13
# 14
# while문으로 list를 순회하는 방법
list_samples = [1, 2, 3, 4, 5]
start_position = 0
while start_position < len(list_samples):
print(list_samples[start_position])
start_position += 1
# 1
# 2
# 3
# 4
# 5
3. break문 : 특정 조건 만족 시 반복문 즉시 종료
for i in range(50, 60):
if i == 55:
break # i가 55일 때, break문 실행되어 반복문 종료
print(i)
# 50
# 51
# 52
# 53
# 54
4. continue문 : 특정 조건의 반복문 건너뛰고 다음 반복으로 넘어감
list_samples = [1, 2, 3, 4, 5]
for i in list_samples:
if i == 3:
continue # i가 3일 때 건너뜀
print(i)
# 1
# 2
# 4
# 5
5. 반복문과 컬렉션 : range() 함수 활용
for i in range(0, 5, 2): # 0부터 5까지(해당 숫자는 포함 X) 2의 간격으로 코드 실행
print(i)
# 0
# 2
# 4
# list_samples의 각 요소가 몇 번째인지 확인하기
list_samples = [1, 2, 3, 4, 5]
for i in range(len(list_samples)):
print(list_samples[i])
print(i, "번째입니다.")
# 1
# 0번째입니다.
# 2
# 1번째입니다.
# 3
# 2번째입니다.
# 4
# 3번째입니다.
# 5
# 4번째입니다.
# enumerate 참고
list_samples = [1, 2, 3, 4, 5]
for i, j in enumerate(list_samples):
print(i, j)
# 0 1
# 1 2
# 2 3
# 3 4
# 4 5
6. 중첩 반복문 : 반복문안에 또 다른 반복문 사용 / 2차원 데이터나 복잡한 반복 작업 수행 시 사용
for i in range(1, 3):
for j in range(1, 3):
print(f"i={i}, j={j}")
# i=1, j=1
# i=1, j=2
# i=2, j=1
# i=2, j=2