안녕하세요, 파이썬 기초 강좌에 오신 것을 환영합니다! 오늘은 프로그래밍에서 매우 중요한 개념인 반복(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)