파이썬 반복문 for, while
파이썬에서 사용하는 반복문에 대해서 정리한다
1. while문
- while문은 조건문이 '참'인 동안에는 반복적으로 코드를 수행하는 문법이다.
while 조건 부분:
수행 부분1
수행 부분2
...
if 조건문 : continue # 반복문 맨 처음으로 돌아가기
if 조건문 : break # 반복문 빠져나가기
※ 예시 : 10번 때리면 쓰러지는 Enemy
# 10번 때리면 쓰러지는 Enemy
HitNo = 0 # 때린 횟수
while HitNo < 10:
HitNo += 1
print(f"Enemy가 {HitNo}번 맞았습니다.")
if HitNo == 10:
print("Enemy가 쓰러졌습니다.")
▶ 결과
2. for 문
for 문 역시 조건이 부합할 동안 수행문을 반복적으로 돌릴 때 사용하는 문법이다
for 변수 in 리스트(or 튜플, 문자열, range(시작, 끝):
수행 부분1
수행 부분2
...
if 조건문 : continue # 반복문의 처음으로 돌아간다
※ 예시 - 구구단 만들기
for i in range(2, 10):
for j in range(1, 10):
print(i*j, end=" ")
print("")
▶ 결과
enumerate와 break 사용하기
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
for i, person in enumerate(people):
name = person['name']
age = person['age']
print(i, name, age)
if i > 3 :
break
※ range 함수
# range 적용 예시 -1
for i in rage(stop):
수행문(i)
0부터 stop-1까지의 범위, 간격 1
# range 적용 예시 -2
for i in rage(start, stop):
수행문(i)
start부터 stop-1까지의 범위, 간격 1
# range 적용 예시 -3
for i in range(start, stop, step):
수행문(i)
start부터 stop-1까지의 범위, 간격 step
3. 예제 - 피타고라스의 정리
문제) 피타고라스의 정리 (a^2 + b^2 = c^2)을 만족하는 세 자연수 쌍 (a, b, c)는 피타고라스 삼조이다.
a<b<c라고 가정할 때, a + b + c = 400을 만족하는 세 수의 곱(a * b * c)은 얼마인가?
## 풀이 (1)
a = 1
b = 1
for a in range(1, 401):
for b in range(1, 401):
if (400 - a - b)**2 - (a**2 + b**2) != 0 :
b += 1
else:
c = 400 - a - b
print(a*b*c)
break
a += 1
## 풀이 (2)
for a in range(1, 400):
for b in range(1, 400):
for c in range(1, 400):
if a * a + b * b == c * c and a < b < c and a + b + c == 400:
print(a * b * c)
반응형
'DEV > 파이썬 이론' 카테고리의 다른 글
파이썬 코딩 :: 파이썬 반응형 모드와 파워쉘(PowerShell) (0) | 2022.08.15 |
---|---|
파이썬 코딩 :: 파이썬 if 조건문 문법, 예제 (0) | 2022.08.15 |
파이썬 코딩 :: 파이썬 함수, 매개변수, 복수 파라미터(*args, **kwargs) (0) | 2022.08.15 |
파이썬 코딩 :: 파이썬 문자열 formatting(f-string, format, %) (0) | 2022.08.15 |
파이썬 코딩 :: 파이썬 Pygame, 게임 만들기_공 피하기 (0) | 2022.08.13 |
댓글