조건문, 반복문

1. 조건문

조건문은 프로그램의 흐름을 제어하는 핵심 요소이다.

파이썬의 조건문도 다른 프로그래밍 언어와 유사하지만, 문법적 특징에서 차이가 있다.

 

1.1. if 문의 기본 구조

if 문은 조건이 참(True)일 때 코드 블록을 실행한다.

파이썬에서는 if 다음에 조건을 넣고 끝에 콜론(:)을 반드시 붙인다.

조건 다음 줄부터는 들여쓰기로 코드 블록을 구분한다.

 

ex)

age = 25

if age >= 18:
    print("성인입니다.")  # 들여쓰기로 코드 블록을 표시
    print("입장이 가능합니다.")

print("이 문장은 항상 실행됩니다.")  # 들여쓰기가 없으므로 if문과 무관

 

1.2. else와 elif

조건이 거짓(False)일 때 실행할 코드는 else 문을 사용한다.

여러 조건을 순차적으로 검사할 때는 elif를 사용한다.

 

ex)

score = 85

if score >= 90:
    print("A 등급")
elif score >= 80:  # 다른 언어의 else if와 동일한 역할
    print("B 등급")
elif score >= 70:
    print("C 등급")
else:
    print("D 등급")

 

파이썬에서는 다른 언어의 'else if' 대신 줄임말인 'elif'를 사용하여 코드를 더 간결하게 작성할 수 있다.

 

1.3. 조건식의 다양한 표현

파이썬에서는 조건식에 다양한 방식의 비교와 논리 연산을 사용할 수 있다.

 

ex)

# 숫자 비교
if 10 <= age < 20:  # 다른 언어와 달리 연속 비교 가능
    print("10대입니다.")

# 문자열 비교
name = "Python"
if name == "Python":
    print("파이썬입니다.")

# in 연산자
fruits = ["apple", "banana", "cherry"]
if "apple" in fruits:
    print("사과가 있습니다.")

# not 연산자
if not is_done:
    print("아직 완료되지 않았습니다.")

 

파이썬의 조건식은 직관적이고 가독성이 높은 특징이 있다.

 

1.4. 조건부 표현식 (삼항 연산자)

파이썬은 간단한 if-else 문을 한 줄로 작성할 수 있는 조건부 표현식을 제공한다.

 

ex)

# 일반적인 if-else 문
if age >= 18:
    status = "성인"
else:
    status = "미성년자"

# 조건부 표현식 (삼항 연산자)
status = "성인" if age >= 18 else "미성년자"

조건부 표현식은 '값1 if 조건 else 값2' 형태로 사용한다.

 

2. 반복문

파이썬은 반복 작업을 위한 for문과 while문을 제공한다.

다른 언어의 반복문과 개념은 유사하지만, 특히 for문의 구문은 독특한 특징이 있다.

 

2.1. for문 기본 구조

파이썬의 for문은 시퀀스(리스트, 튜플, 문자열 등)나 반복 가능한 객체의 요소를 순회한다.

for와 in 사이에 변수를 넣고, in 뒤에 반복 대상을 지정한다.

 

ex)

# 리스트 순회
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

# 문자열 순회
for char in "Python":
    print(char)

 

파이썬의 for문은 다른 언어의 foreach문과 유사한 역할을 한다.

 

2.2. range() 함수 활용

일반적으로 for문에서는 range() 함수를 사용하여 숫자 시퀀스를 생성한다.

 

ex)

# 0부터 4까지 (5개) 반복
for i in range(5):
    print(i)  # 0, 1, 2, 3, 4 출력

# 1부터 5까지 (5개) 반복
for i in range(1, 6):
    print(i)  # 1, 2, 3, 4, 5 출력

# 0부터 10까지 2씩 증가 (홀수 건너뛰기)
for i in range(0, 11, 2):
    print(i)  # 0, 2, 4, 6, 8, 10 출력

 

range() 함수는 range(시작, 끝, 간격) 형태로 사용하며, 끝 숫자는 포함되지 않는다.

 

2.3. while문

특정 조건이 참인 동안 코드 블록을 반복 실행할 때는 while문을 사용한다.

while 키워드 다음에 조건과 콜론(:)을 붙인다.

 

ex)

# 5부터 1까지 카운트다운
count = 5
while count > 0:
    print(count)
    count -= 1  # count = count - 1과 동일

# 사용자 입력을 받아 'q'를 입력하면 종료
while True:
    user_input = input("명령을 입력하세요 (종료: q): ")
    if user_input == 'q':
        break
    print(f"입력한 명령: {user_input}")

 

조건이 항상 참이면 무한 루프가 발생하므로, 루프 내에서 조건을 변경하거나 break를 사용해 종료해야 한다.

 

2.4. break와 continue

파이썬에서도 다른 언어와 같이 반복문의 흐름을 제어하는 break와 continue 키워드를 사용할 수 있다.

  • break: 반복문을 즉시 종료
  • continue: 현재 반복을 건너뛰고 다음 반복으로 진행

ex)

# break 예제
for num in range(1, 11):
    if num == 5:
        break  # 5에서 반복문 탈출
    print(num)  # 1, 2, 3, 4 출력

# continue 예제
for num in range(1, 11):
    if num % 2 == 0:
        continue  # 짝수는 건너뜀
    print(num)  # 1, 3, 5, 7, 9 출력

 

 

2.5. else절과 함께 사용

파이썬의 독특한 특징 중 하나는 반복문에 else절을 추가할 수 있다는 점이다.

반복문이 break 없이 정상적으로 완료되면 else 블록이 실행된다.

 

ex)

# break 없이 완료될 때 else 실행
for num in range(1, 6):
    print(num)
else:
    print("반복문이 정상적으로 완료되었습니다.")

# break로 종료될 때는 else 실행 안 됨
for num in range(1, 6):
    if num == 3:
        break
    print(num)
else:
    print("이 메시지는 출력되지 않습니다.")

 

이 기능은 검색 작업에서 아이템을 찾지 못했을 때 특정 작업을 수행하는 데 유용하다.

'학습 > Python' 카테고리의 다른 글

파일 입출력  (0) 2025.04.30
표준 입출력 및 문자열 포맷팅  (0) 2025.04.29
자료구조  (0) 2025.04.19
파이썬의 특징과 철학  (0) 2025.04.18
문자열(String)  (0) 2025.04.14