본문 바로가기
DEV/파이썬 이론

파이썬 코딩 :: 파이썬 for, while 반복문 문법, 예제

by 올커 2022. 8. 15.

파이썬 반복문 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)
반응형

댓글