[python] 반복분 while 과 for
반복문
반복적인 작업을 가능하게 해주는 도구
while - 특정 조건을 만족하는 경우 수행, 반복을 멈추게 하는 장치가 필요
for - 리스트, 문자열, 튜플 등 컬렉션 타입의 아이템을 하나씩 순회하면서 사용 가능
while
while 조건문:
코드 블록
while 조건문:
코드 블록
while 뒤의 조건이 True일 경우, while 코드 블록을 계속 수행
조건이 False가 되면 블록 수행을 멈추고 이후 코드를 실행
a = [1, 10, 9, 24]
i = 0 # 인덱스
while i < len(a):
print('value: ', a[i], ', index: ', i)
i += 1
조건문과 함께 사용하기
a = [1, 10, 9, 24, 25, 26]
i = 0 # 인덱스
while i < len(a):
if a[i] > 20:
print(a[i])
i += 1
a = [1, 10, 9, 24, 25, 26]
i = 0 # 인덱스
while i < len(a):
if a[i] > 20:
print(a[i])
i += 1
a = [1, 10, 9, 24, 25, 26]
i = 0 # 인덱스
while i < len(a):
if a[i] % 2: # 홀수인 경우만 출력하기
print(a[i])
else:
print(a[i]/2)
i += 1
무한루프
while의 경우 종료가 되지 않도록 코드를 작성하면 블록에서 빠져나올 수 없다
while True:
print('while')
break
loop를 중단할 때 사용
보통 조건문 안에서 수행되며, 조건을 만족하는 경우 loop를 탈출하기 위해 사용
loop를 중단하는 경우, while 이후의 코드를 수행
a = [1, 10, 9, 24, 25, 26]
i = 0
while i < len(a):
if a[i] > 20:
break
print(a[i])
i += 1
print('haha')
continue
break처럼 반복을 중단하지 않고, 다시 while 조건으로 점프
특정한 경우에는 코드를 수행하지 않고 다음으로 건너 뛰기 위해 사용
a = 7
while a > 0:
a -= 1
if a == 5:
continue
print(a)
문제) 번호맞추기
랜덤한 숫자 하나를 지정...random.randrange()..44
키보드로 특정한 숫자를 입력받아서 ...int(input())...17. 47
- 입력된 값이 더 작으면 작습니다...
- 입력된 값이 더 크면 큽니다...
- 정답입니다..
- 총 3번만에 정답을 맞췄습니다.
continue, break 키워드 사용..
import random
count = 0
while True:
com = random.randrange(1, 21) # 1~20까지의 임의의 정수가 리턴
num = int(input('1부터 20 사이의 숫자 하나를 입력하세요...'))
count = count + 1
if num > com:
print('{} 숫자가 {}보다 큽니다'.format(num, com))
elif num < com:
print('{} 숫자가 {}보다 작습니다'.format(num, com))
else:
print('정답 {}! {}번 만에 성공'.format(num, count))
break
랜덤한 숫자 하나를 지정...random.randrange()..44
키보드로 특정한 숫자를 입력받아서 ...int(input())...17. 47
- 입력된 값이 더 작으면 작습니다...
- 입력된 값이 더 크면 큽니다...
- 정답입니다..
- 총 3번만에 정답을 맞췄습니다.
continue, break 키워드 사용..
import random
count = 0
while True:
com = random.randrange(1, 21) # 1~20까지의 임의의 정수가 리턴
num = int(input('1부터 20 사이의 숫자 하나를 입력하세요...'))
count = count + 1
if num > com:
print('{} 숫자가 {}보다 큽니다'.format(num, com))
elif num < com:
print('{} 숫자가 {}보다 작습니다'.format(num, com))
else:
print('정답 {}! {}번 만에 성공'.format(num, count))
break
for
for 반복 변수 in 반복 범위:
코드 블록
for 반복 변수 in 반복 범위:
코드 블록
리스트, 문자열 등등 순회 가능한 객체를 순회하면서 값을 처리할 때 사용
i는 매번 수행될 때마다 a의 아이템으로 순차적으로 변경
모든 아이템이 순회되면 for 블록 종료
a = [1, 2, 4, 3, 5]
for i in a:
print(i, i*2)
조건문과 함께 사용하기
a = [1, 10, 3, 4, 5]
for num in a:
if num % 2 == 0:
print(num/2)
else:
print(num+1)
a = [1, 10, 3, 4, 5]
for num in a:
if num % 2 == 0:
print(num/2)
else:
print(num+1)
dict의 아이템 출력
dictionary의 경우 기본적으로 순회하게 되면 key 값을 참조
keys() 함수를 이용하여 key 값만 순회 가능
values() 함수를 이용하여 value 값만 순회 가능
items() 함수를 이용하여 tuple 형태로 key, value 순회 가능
a = {'korea': 'seoul', 'japan': 'tokyo', 'canada': 'ottawa'}
for key in a:
print(key, a[key])
for value in a.values():
print(value)
for key, value in a.items():
print(key, value)
for에서 index 사용
기본적으로 for에 리스트를 순회하는 경우, 값만 추출
enumerate 함수를 이용하면 인덱스와 값 모두 사용 가능
a = [1, 2, 3, 4, 5]
for index, num in enumerate(a):
if index > 2:
print(index, num)
break
for의 경우에도 특정 조건일 때, loop 종료가 가능
a = [100, 90, 80, 70, 60, 50]
for num in a:
if num < 80:
break
print(num)
continue
해당 아이템을 건너 뛰고 싶을 때 사용
a = [100, 90, 80, 70, 60, 50]
for num in a:
if num >= 60 and num <= 70:
continue
print(num)
Author And Source
이 문제에 관하여([python] 반복분 while 과 for), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@et7352/python-반복분-while-과-for저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)