sm 기술 블로그

9. 반복문 (for / while) 본문

Python

9. 반복문 (for / while)

sm_hope 2022. 5. 5. 13:02
for

기본구조

for 변수 in 반복조건 :
	실행할 명령문

변수를 쓰고 반복조건을 쓴다.

 

for waiting_no in [0, 1, 2, 3, 4] :
    print("대기번호 : {0}".format(waiting_no))
 
for waiting_no_2 in range(1, 6) : # 1, 2, 3, 4, 5
    print("대기번호 : {0}".format(waiting_no_2))

N = 6
for waiting_no_3 in range(1, N) : # 1, 2, 3, 4, 5
    print("대기번호 : {0}".format(waiting_no_3))


starbucks = ["아이언맨", "토르", "아이엠 그루트"]
for customer in starbucks :
    print("{0}, 커피가 준비되었습니다.".format(customer))

반복 조건은 반복할 횟수로 보면 된다.

세번째 같이 선언하고 반복도 가능하다(백준에서 많이 쓸것이다.)

 

#출력 결과

대기번호 : 0  # 1번
대기번호 : 1
대기번호 : 2
대기번호 : 3
대기번호 : 4
대기번호 : 1  # 2번
대기번호 : 2
대기번호 : 3
대기번호 : 4
대기번호 : 5
대기번호 : 1  # 3번
대기번호 : 2
대기번호 : 3
대기번호 : 4
대기번호 : 5
아이언맨, 커피가 준비되었습니다.  # 4번
토르, 커피가 준비되었습니다.
아이엠 그루트, 커피가 준비되었습니다.

while

기본구조

while 조건 :
	실행할 명령문

조건을 계속 true를 준다면 무한으로 실행하는 것도 가능하다.

 

고객을 5번 불렀음에도 답이 없으면 제품을 폐기처분함

customer = "토르"
index = 5
while index >= 1:
    print("{0}, 커피가 준비되었습니다. {1} 번 남았어요.".format(customer, index))
    index -=1
    if index ==0:
        print("커피가 폐기처분되었습니다.")

 

# 출력 결과
토르, 커피가 준비되었습니다. 5 번 남았어요.
토르, 커피가 준비되었습니다. 4 번 남았어요.
토르, 커피가 준비되었습니다. 3 번 남았어요.
토르, 커피가 준비되었습니다. 2 번 남았어요.
토르, 커피가 준비되었습니다. 1 번 남았어요.
커피가 폐기처분되었습니다.

 

고객이 올 때 까지 계속 부르고 횟수를 알려주는 코드

customer = "아이언맨"
index = 1
while True :
     print("{0}, 커피가 준비되었습니다. 호출 {1} 회 ".format(customer, index))
     index += 1

이 구문은 계속 조건이 true 이고 종료 조건이 없기 때문에 무한으로 반복된다

# 출력결과
아이언맨, 커피가 준비되었습니다. 호출 1 회 
아이언맨, 커피가 준비되었습니다. 호출 2 회 
아이언맨, 커피가 준비되었습니다. 호출 3 회 
아이언맨, 커피가 준비되었습니다. 호출 4 회 
아이언맨, 커피가 준비되었습니다. 호출 5 회 
아이언맨, 커피가 준비되었습니다. 호출 6 회 
				
                .
                .
                .

 

고객의 이름을 물어보고 이름이 일치하지 않으면 계속 부르는 코드

customer = "토르"
person = "Unknown"

while person != customer :
   print("{0}, 커피가 준비되었습니다.".format(customer))
   person = input("이름이 어떻게 되세요? ")

호명하는 고객의 이름이 같다면 프로그램 종료

# 출력 결과
토르, 커피가 준비되었습니다.
이름이 어떻게 되세요? 아이언맨
토르, 커피가 준비되었습니다.
이름이 어떻게 되세요? 그루트
토르, 커피가 준비되었습니다.
이름이 어떻게 되세요? 토르

반복문, 조건문 응용
absent = [2, 5] # 결석

no_book = [7] #책을 깜빡했음

for student in range(1, 11) : #1,2,3,4,5,6,7,8,9,10
    if student in  absent :
        continue
    elif student in no_book:
        print("오늘 수업 여기까지. {0}는 교무실로 따라와".format(student))
        break

    print("{0}, 책을 읽어보렴".format(student))

2번 5번은 결석을 했다.

7번은 책을 가지고 오지 않았다.

 

1~10번까지의 학생들을 호명하며 책을 읽으라고 시킨다.

만약 책을 가지고 오지 않은 학생이 있다면 수업을 종료하고 그 학생을 교무실로 부른다.

 

# 출력결과
1, 책을 읽어보렴
3, 책을 읽어보렴
4, 책을 읽어보렴
6, 책을 읽어보렴
오늘 수업 여기까지. 7는 교무실로 따라와

 

'Python' 카테고리의 다른 글

11. 함수 / 지역변수,전역변수  (0) 2022.05.05
10. 문자열 + 배열 + 반복문 예제  (0) 2022.05.05
8. 조건문(분기)  (0) 2022.05.05
7. 배열 (리스트/데이터 사전/튜플/set)  (0) 2022.05.03
6. 탈출문자  (0) 2022.05.03
Comments