본문 바로가기
Python/기초문법

12. 반복문 for, while

by 전자여우 2022. 6. 23.

for문은 특정 작업을 반복해준다.

#리스트 내에 있는 요소가 전부 출력될 때까지 반복
for waitingNo in [1, 2, 3 ,4, 5]: #1~5
    print(str(waitingNo)+'번 손님~')
    
#범위를 정하고 요소가 전부 출력될 때까지 반복
for waitingNo in range(1, 6): #마찬가지로 1~5. 죽어도 0번부터 시작하진 않겠다.
    print('{0}번 손님~'.format(waitingNo)) #이렇게도 표현 가능.
    
#카페로 나들이 온 동물들
animal = ['여우', '강아지', '고양이']
for customer in animal:
    print('{0}님, 주문하신 음료 나왔습니다.'. format(customer)) #format(animal)이 되어버리면 리스트내용 전체가 세 번 반복된다.
    
#한 줄 for문은 결괏값도 한 줄.
animal = ['fox', 'puppy', 'kitten']

animal = [len(i) for i in animal] #동물 이름의 영문 스펠링 개수를 세어주는 for문
animal = [i.upper() for i in animal]

 

while문은 원하는 값이 전달될 때까지 작업을 무한반복해준다.

animal = '여우'

#무한반복의 예시
while True:
    print('{}님, 주문하신 음료 나왔습니다.'.format(animal))
#으악 멈추고 싶으면 ctrl + c를 누르면 된다...

#원하는 값이 전달되기 전까지 반복하기
customer = 'Who'
while animal != customer #animal과 customer가 다를 시 반복.
    print('{}님, 주문하신 음료 나왔습니다.'.format(animal))
    customer = input('고객님, 성함이 어떻게 되세요? ') #원하는 값인 여우를 입력받기 전까지 반복

 

continue & break

continue는 예외사항을 지정해두고, 예외사항에 직면했을 경우 스킵하고 다음으로 넘어가게 한다.

break는 예외사항에 직면했을 경우 반복을 즉시 멈추게 한다.

#전쟁터에 총을 안 가지고 오면 어떡하냐는 말을 입에 달고 사는 선생님의 수업이다.
absent = [2, 5] #예외사항1. 결석
noBook = [7] #예외사항2. 교재 없음
for student in range(1, 11): #1번에서 10번까지의 학생들
    if student in absent:
        continue #결석했으니 나오지 않는 2와 5
    elif student in noBook:
        print('{}는 책이 없니?'.format(student)) #소름
        print('하... 오늘 수업 여기까지. {}는 교무실로 따라와'.format(student)) #히익
        break #반복문 탈출
    print('{}, 본문 읽어봐'.format(student))

 

반복문과 난수를 이용해서 적당히 만들어 본 50% 강화 시뮬레이터

from random import *

res = 0 #총 강화
for i in range(1,11): #10번 반복
    sf = randrange(0,2) #0과 1의 범위
    if sf == 1: #1이면 성공
        print('축하합니다! 강화에 성공하셨습니다.') #성공문구
        res += 1
    else: #다른 것(0)이 나오면 실패
        print('저런... 강화에 실패하셨습니다.') #실패 문구
print('얼음 스태프 +{}가 완성되었습니다.'.format(res)) #강화 결과

'Python > 기초문법' 카테고리의 다른 글

13. 함수  (0) 2022.06.29
11. if문  (0) 2022.06.22
10. 자료구조의 변경  (0) 2022.06.22
9. 세트  (0) 2022.06.22
8. 튜플  (0) 2022.06.22

댓글