List
- 파이썬의 제어문
- 조건문 if
- 반복문 while
- 반복문 for
- 연습 문제
파이썬의 제어문_반복문 while
while문의 기본 구조
기본구조
- 반복해서 문장을 수행할 때 사용한다
- while문 은 조건문이 참인 동안 아래 문장이 반복 수행된다.
while <조건문>:
<수행할 문장1>
<수행할 문장2>
<수행할 문장3>
...
>>> treeHit = 0
>>> while treeHit < 10:
... treeHit = treeHit +1 # treeHit 의 값이 계속 1씩 증가한다
... print("나무를 %d번 찍었습니다." % treeHit) # 그리고 나무 찍었다고 계속 출력
... if treeHit == 10: # treeHit이 10이되면 넘어간다 출력. 10 이후 숫자는 조건문에 거짓이 되므로 빠져나간다.
... print("나무 넘어갑니다.")
...
나무를 1번 찍었습니다.
나무를 2번 찍었습니다.
나무를 3번 찍었습니다.
나무를 4번 찍었습니다.
나무를 5번 찍었습니다.
나무를 6번 찍었습니다.
나무를 7번 찍었습니다.
나무를 8번 찍었습니다.
나무를 9번 찍었습니다.
나무를 10번 찍었습니다.
나무 넘어갑니다.
while문 만들기
input()
:여러가지 선택지 중 하나를 선택해서 입력받는 while 문
>> prompt = """ # 여러 줄 짜리 문자열 입력
1. Add
2. Del
3. List
4. Quit
Enter number: """
>> number = 0 # 0을 먼저 대입 하지 않으면 다음 조건문에서 변수가 존재하지 않는 다는 오류가 발생
>> while number != 4: # 입력하는 number가 4만 아니면 계속 고고한다 (5해도됨 ; ;)
print(prompt) # prompt 를 출력하고
number = int(input()) # 사용자로부터 번호를 입력 받는다
1. Add
2. Del
3. List
4. Quit
Enter number:
1
1. Add
2. Del
3. List
4. Quit
Enter number:
2
1. Add
2. Del
3. List
4. Quit
Enter number:
3
1. Add
2. Del
3. List
4. Quit
Enter number:
4
Break
: while문
에서는 조건이 맞으면 while문
안의 내용을 계속 반복적으로 수행한다. 이때 일정 조건이 충족 되었을 때 강제로 while 문
을 빠져나가게 할 때 사용한다
>> coffee = 10
>> money = 300
>> while money: # money는 0이 아니기 때문에 항상 참이며, 무한히 반복되는 무한 루프
print('u got a cup of coffee')
coffee -= 1 # coffee의 개수가 1개씩 줄어
print('we just have %d left.' % coffee)
if coffee == 0 # coffee가 0이 되면 참이 되어 'no more coffee'를 추력하고, break가 수행 되어 while 문이 끝남
print('no more coffee')
break
u got a cup of coffee
we just have 9 left.
u got a cup of coffee
we just have 8 left.
u got a cup of coffee
we just have 7 left.
u got a cup of coffee
we just have 6 left.
u got a cup of coffee
we just have 5 left.
u got a cup of coffee
we just have 4 left.
u got a cup of coffee
we just have 3 left.
u got a cup of coffee
we just have 2 left.
u got a cup of coffee
we just have 1 left.
u got a cup of coffee
we just have 0 left.
no more coffee
countinue
: while문
에서는 조건이 맞으면 while문
안의 내용을 계속 반복적으로 수행한다. 이때 일정 조건이 충족 되었을 때 강제로
while문
의 맨 처음 조건문으로 다시 돌아가게 하고 싶을 때 사용한다.
>> a = 0
>> while a < 10:
... a = a + 1 # a는 계속 1씩 증가
... if a % 2 == 0: continue # a가 2로 나누어서 0과 같으면, 다시말해 짝 수면 continue 수행, 즉 다시 첫 수행문인 a < 10 으로 올라감/ 그러므로 홀 수 일때 a 를 프린트 한다
... print(a)
...
1
3
5
7
9
무한 루프
무한루프의 기본구조
while True
:while문의 조건문이 True이므로 항상 참이 된다. 따라서 while문 안에 있는 문장들은 무한하게 수행될 것
while True:
수행할 문장1
수행할 문장2
...
coffee = 10
while True:
money = int(input('give me money: '))
coc = int(input('how many coffee: '))
if money == 300:
print('give u a cup of coffee')
coffee = coffee - coc
print('we just have %d' % coffee)
elif money > 300:
print('give u a cup of coffee and there"s change {} won.'.format(money-(300*coc)))
coffee = coffee - coc
print('we just have %d' % coffee)
else:
print('not enough money')
print('take ur money')
if coffee == 0:
print('no more coffee, thank u')
break
give me money: 600
how many coffee: 2
give u a cup of coffee and there"s change 0 won.
we just have 8
give me money: 600
how many coffee: 2
give u a cup of coffee and there"s change 0 won.
we just have 6
give me money: 3000
how many coffee: 3
give u a cup of coffee and there"s change 2100 won.
we just have 3
give me money: 900
how many coffee: 3
give u a cup of coffee and there"s change 0 won.
we just have 0
no more coffee, thank u