파이썬 기초 강좌: 5. 반복문 예제와 실습 (Python Basics – Loop Examples and Exercises)

안녕하세요, 파이썬 기초 강좌에 오신 것을 환영합니다! 오늘은 프로그래밍에서 매우 중요한 개념인 반복(iteration)에 대해 알아보겠습니다. 반복문은 코드를 더 효율적이고 간결하게 작성할 수 있게 해주는 강력한 도구입니다. 특히, 파이썬에서는 for문과 while문을 사용하여 다양한 방식으로 반복 작업을 수행할 수 있습니다. 이 강좌에서는 반복문의 기본 사용법부터 실전 예제까지 자세히 다루어 보겠습니다. 그럼, 손코딩을 통해 반복문의 매력을 직접 경험해 보세요!

파이썬 기초 강좌 - 반복문 예제와 실습

1. Updating variables

  • (실습) 대화식 모드에서 실습 해보세요.
>>> x = x + 1
NameError: name 'x' is not defined

# 변수를 업데이트하기 전에 초기화 해야 합니다.
>>> x = 0
>>> x = x + 1

2. The while statement

  • (실습) main.py에 작성 후 실행 해 보세요.
n = 5
while n > 0:
    print(n)
    n = n - 1
print('Blastoff!')

# 1. 조건을 평가해서 True 또는 False를 반환한다
# 2. 조건이 False로 평가되면 while문이 종료 된다
# 3. 조건이 True이면 while문 블럭을 실행 한다

3. Infinite loops

  • (실습#1)
# 무한 루프 예1
# infinite_loops_test1.py

n = 10
while True:
    print(n, end=' ')
    n = n - 1

print('Done!')
  • (실습#2)
# 무한 루프 예2
# infinite_loops_test2.py

while True:
    line = input('> ')
    if line == 'done':
        break
    print(line)

print('Done!')

4. Finishing iterations with continue

  • (실습)
# continue_test.py

while True:
    line = input('> ')
    if line[0] == '#':
        continue
    if line == 'done':
        break
    print(line)

print('Done!')
if line.startswith("#"):

5. Definite loops using for

  • (실습) main.py에 작성 후 실행 해 보세요.
friends = ['Michael', 'Emma', 'Olivia']

for friend in friends:
    print('Have a great day:', friend)

print('Done!')

6. Loop patterns

반복문의 여러 패턴에 대해서 배워봅시다.

  • (실습#1) main.py에 작성 후 실행 해 보세요.
# Counting loop
count = 0

for itervar in [3, 41, 12, 9, 74, 15]:
    count = count + 1

print('Count: ', count)
# Summing loop
total = 0

for itervar in [3, 41, 12, 9, 74, 15]:
    total = total + itervar

print('Total: ', total)
  • (실습#2)
# Maximum loop
largest = None
print('Before:', largest)

for itervar in [3, 41, 12, 9, 74, 15]:
    if largest is None or itervar > largest :
        largest = itervar
    print('Loop:', itervar, largest)

print('Largest:', largest)
# Minimum loop
smallest = None
print('Before:', smallest)

for itervar in [3, 41, 12, 9, 74, 15]:
    if smallest is None or itervar < smallest:
        smallest = itervar
    print('Loop:', itervar, smallest)

print('Smallest:', smallest)

Exercises

(1) 연습문제#1

  • 사용자가 “done”을 입력할 때까지 정수를 반복해서 읽는 프로그램을 작성하세요.
  • “done”을 입력하면 정수의 총합, 개수, 평균을 출력합니다.
  • 사용자가 정수 이외의 값을 입력하면 try 및 Except를 사용하여 실수를 감지하고 오류 메시지를 인쇄하고 다음 정수로 건너뜁니다.
Enter a number: 4
Enter a number: 5
Enter a number: bad dataaaa
Invalid input
Enter a number: 7
Enter a number: done
16 3 5.333333333333333
  • (source)
total = 0
count = 0

_____ True:
    _____:
        number = input("Enter a number: ")
        if number == "done":
            break
        number = int(number)
        total = _____ + number
        count = _____ + 1
    _____ ValueError:
        print("Invalid input")

if count > 0:
    average = total / count
    print(total, count, average)
else:
    print("No valid numbers were entered.")
  • (정답)
total = 0
count = 0

while True:
    try:
        number = input("Enter a number: ")
        if number == "done":
            break
        number = int(number)
        total = total + number
        count = count + 1
    except ValueError:
        print("Invalid input")

if count > 0:
    average = total / count
    print(total, count, average)
else:
    print("No valid numbers were entered.")

(2) 연습문제#2

  • 위 문제 코드와 같이 숫자 목록을 요청하고 마지막에 평균 대신 숫자의 최대값과 최소값을 모두 인쇄하는 또 다른 프로그램을 작성하세요.
  • (source)
def max(values):
    largest = None
    for value in values:
        if largest is None or value > largest:
        largest = value
    return largest

def min(values):
    smallest = None
    for value in values:
        if smallest is None or value < smallest:
        smallest = value
    return smallest


numbers = []
_____ True:
    _____:
        number = input("Enter a number: ")
        if number == "done":
            break
        number = int(number)
        numbers.append(_____)
    _____ ValueError:
        print("Invalid input")

if numbers:
    print("Maximum:", max(numbers))
    print("Minimum:", min(numbers))
else:
    print("No valid numbers were entered.")
  • (정답)
def max(values):
    largest = None
    for value in values:
        if largest is None or value > largest:
            largest = value
    return largest

def min(values):
    smallest = None
    for value in values:
        if smallest is None or value < smallest:
            smallest = value
    return smallest

numbers = []
while True:
    try:
        number = input("Enter a number: ")
        if number == "done":
            break
        number = int(number)
        numbers.append(number)
    except ValueError:
        print("Invalid input")

if numbers:
    print("Maximum:", max(numbers))
    print("Minimum:", min(numbers))
else:
    print("No valid numbers were entered.")

파이썬 기초 강좌: 6. 문자열 예제와 실습 (Python Basics – String Examples and Exercises)

Leave a Comment