Python/Chapter04. for, while, turtle

lullaby ·2025년 10월 1일

Python

목록 보기
4/13
post-thumbnail

1. For 반복문 (For Loops)

주요 개념

  • 시퀀스(문자열, 리스트 등)를 순회할 때 사용
  • range() 함수를 활용한 반복
  • 다양한 반복 패턴 구현 가능

예제 코드

# 기본 for 반복문 예시
for i in range(5):
    print(i)  # 0, 1, 2, 3, 4 출력

# 문자열 순회
for char in "python":
    print(char)  # p, y, t, h, o, n 각각 출력

# 1부터 10까지의 합 계산
sum = 0
for i in range(1, 11):
    sum += i
print(f"1부터 10까지의 합: {sum}")  # 55

주요 range() 함수 사용법

  • range(stop): 0부터 stop-1까지
  • range(start, stop): start부터 stop-1까지
  • range(start, stop, step): start부터 stop-1까지 step 간격으로

2. While 반복문 (While Loops)

주요 개념

  • 조건이 참인 동안 반복 수행
  • 반복 횟수를 미리 알 수 없는 경우 유용
  • 무한 루프 주의

예제 코드

# 기본 while 반복문
i = 0
while i < 5:
    print(i)
    i += 1  # 0, 1, 2, 3, 4 출력

# 팩토리얼 계산
factorial = 1
n = 10
i = 1
while i <= n:
    factorial *= i
    i += 1
print(f"{n}! = {factorial}")  # 3,628,800

3. 반복문 활용 예시 - Turtle 그래픽

다각형 그리기

import turtle

# 육각형 그리기
polygon = turtle.Turtle()
num_sides = 6
side_length = 70
angle = 360.0 / num_sides

for i in range(num_sides):
    polygon.forward(side_length)
    polygon.right(angle)

Sin 곡선 그리기

import math
import turtle

t = turtle.Turtle()
t.speed('fastest')

for degree in range(360):
    y = math.sin(math.radians(degree))
    scaledX = degree
    scaledY = y * 100
    t.goto(scaledX, scaledY)

4. 중간고사 예상 문제

이론 문제

  1. forwhile 반복문의 차이점은 무엇인가?
    • for 반복문

      • 미리 정해진 시퀀스나 횟수를 반복할 때 사용

      • 반복 횟수를 알고 있는 경우에 적합

      • 주로 리스트, 문자열, range() 등과 함께 사용

      • 반복 횟수가 명확하고 정해진 범위 내에서 반복할 때 효율적

        while 반복문

      • 조건이 참인 동안 계속 반복

      • 반복 횟수를 미리 알 수 없는 경우에 적합

      • 특정 조건이 만족될 때까지 반복

      • 조건 검사를 먼저 수행하고 반복 여부 결정

      • 무한 루프 가능성이 있어 주의 필요

        주요 차이점

      • 반복 제어 방식:

        • for: 정해진 범위나 시퀀스 순회
        • while: 조건 기반 반복
      • 사용 상황:

        • for: 알려진 반복 횟수나 시퀀스 순회
        • while
  2. range(5, 10, 2)는 어떤 값을 생성하는가?
    • 정답

      • [5, 7, 9]를 생성

      • 시작값: 5

      • 끝값: 10 이전까지 (10 제외)

      • 증가 간격: 2

        상세 설명

      • 첫 번째 인자 5: 시작값

      • 두 번째 인자 10: 종료값 (이 값은 포함되지 않음)

      • 세 번째 인자 2: 각 단계별 증가값

      • 5부터 시작해서 2씩 증가하며 10 미만까지 생성

  3. 반복문에서 breakcontinue의 역할은 무엇인가?
    • break

      • 반복문을 즉시 종료하고 반복문 밖으로 탈출

      • 특정 조건에서 반복을 완전히 중단할 때 사용

      • 반복문의 모든 후속 반복을 건너뜀

        예시

        python
        복사
        for i in range(10):
            if i == 5:
                break  # 5에서 반복문 완전 종료
            print(i)  # 0, 1, 2, 3, 4만 출력
        

        continue

      • 현재 반복의 나머지 코드를 건너뛰고 다음 반복으로 진행

      • 특정 조건에서 해당 반복만 건너뛰고 싶을 때 사용

      • 반복문 자체는 계속 진행

        예시

        python
        복사
        for i in range(10):
            if i % 2 == 0:
                continue  # 짝수일 경우 건너뜀
            print(i)  # 1, 3, 5, 7, 9만 출력
        

        주요 차이점

      • break: 반복문 전체 종료

      • continue: 현재 반복만 건너뛰고 다음 반복 진행

코딩 문제

  1. 1부터 100까지의 짝수의 합을 계산하는 프로그램을 작성하시오.
  2. 사용자로부터 입력받은 정수의 팩토리얼을 계산하는 프로그램을 작성하시오.
  3. Turtle 그래픽을 사용하여 8개의 원을 그리는 프로그램을 작성하시오.

예시 솔루션

# 1. 1부터 100까지 짝수의 합
even_sum = 0
for i in range(2, 101, 2):
    even_sum += i
print(f"짝수의 합: {even_sum}")

# 2. 사용자 입력 팩토리얼 계산
n = int(input("정수를 입력하세요: "))
factorial = 1
for i in range(1, n+1):
    factorial *= i
print(f"{n}! = {factorial}")

# 3. 8개의 원 그리기
import turtle
t = turtle.Turtle()
for i in range(8):
    t.circle(100)
    t.right(360/8)

0개의 댓글