3.5 while
""" 코드 """ 하면 코드(특히 여러줄)가 해쉬태그 되어 무시가 된다
ctrl + / 과 같다. 이전에 써놧던 코드를 주석처리할때 사용
while 은 if 와 같다, 멈추지 않는다는 부분만 빼면
while True:
print("Hi Im True")
Hi Im True 가 무한 출력되는 것을 알 수 있다.
ctrl + c 를 눌러서 멈추자
user가 달려서 20 km 에 도달 하면 멈추는 코드를 작성해본다.
distance = 0
while distance < 20:
print("I'm running:", distance, "km")
distance = distance + 1
distance 라는 변수에 distance + 1 을 계속 넣어준다
처음에 distance 는 0 이었지만 1씩 추가하면서 20까지 도달하게 된다
distance = 0+1 → 1
distance = 1+1 → 2
distance = 2+1 → 3
distance = 3+1 → 4
distance = 4+1 → 5
.
.
.
.
distance = 19+1 → 20
while 은 if 처럼 조건문이 true 라면 안쪽 코드가 실행된다.
if 와의 차이점이라면 while 은 조건문이 false 가 될 때까지 코드를 계속 실행한다
만약 if 를 쓰면 조건문을 한번 반복하고 멈춘다.
while 을 사용하면 조건이 false 가 될 때가지 코드가 계속 실행된다.
distance = 21
if distance <= 20:
print("I'm running:", distance, "km")
else:
print('Running complete')
distance 에 21 을 넣으면
출력값으로 else 값
Running complete 가 출력된다.
distance 에 20 이하의 값을 넣으면
출력값으로 if 값
I'm running 20km (혹은 넣은 숫자의 값) 이 출력된다
3.6 Python Casino
기존에 사용했던 코드는 user_choice 가 코드상 먼저 있고, 반복된 코드가 아니라
user 가 숫자를 입력할 때 마다 pc_choice 가 1-50 사이의 숫자가 랜덤으로 나온다.
매번 코드를 돌릴때 마다 맞춰야하는 숫자가 매번 달라지는 불편함이 있었다.
from random import randint
user_choice = int(input("choose number: "))
pc_choice = randint(1,50)
if user_choice == pc_choice:
print("You won!")
elif user_choice > pc_choice:
print("Lower! Computer chose", pc_choice)
elif user_choice < pc_choice:
print("Higher! Computer chose", pc_choice)
이전에 했던 randint 에서 랜덤 숫자 고르기 코드를 가져와서 약간의 구성을 바꿔준다
user_choice 를 while 문 안에 넣어 코드 실행 시 매번 pc_choice 가 변하지 않게 해준다.
이번에는 while 을 사용해서 user 가 이길 때까지 반복하는 코드를 작성할 것이다.
user 가 이기면 끝나는 코드를 작성해야 한다.
from random import randint
print('Welcome to Python Casino')
pc_choice = randint(1,50)
user_choice = int(input("choose number: "))
if user_choice == pc_choice:
print("You won!")
elif user_choice > pc_choice:
print("Lower!")
elif user_choice < pc_choice:
print("Higher!")
while은 아래 조건문 부분(playing)이 True 일 때만 동작한다.
만약 user 가 숫자를 맞춰서 while 문이 멈춰야할 때
조건문 부분(playing) 을 False 로 바꾸면 멈춘다.
user_choice 를 while 문 안에 넣어줘야 숫자를 입력해도 무한 반복하지 않고
숫자를 맞출때 까지 choose number (1-100) 이 출력된다.
user_choice = int(input("choose number (1-100): ")) 이 구문을 while 문에서 제외하고
pc_choice = randint(1,100) 밑에다가 붙여보자
숫자 한번 입력시 영원히 while 문이 반복하게 된다
user 가 숫자를 맞출때까지 반복하는 코드가 나왔다.
from random import randint
print('Welcome to Python Casino')
pc_choice = randint(1,100)
playing = True
while playing:
user_choice = int(input("choose number (1-100): "))
if user_choice == pc_choice:
print("You won!", pc_choice)
playing = False
elif user_choice > pc_choice:
print("Lower!",pc_choice)
elif user_choice < pc_choice:
print("Higher!",pc_choice)
pc_choice 가 고른 숫자를 알고 싶지 않다면 아래와 같이 pc_choice 를 while 문에서 제외한 코드를 사용한다.
from random import randint
print('Welcome to Python Casino')
pc_choice = randint(1,100)
playing = True
while playing:
user_choice = int(input("choose number (1-100): "))
if user_choice == pc_choice:
print("You won!")
playing = False
elif user_choice > pc_choice:
print("Lower!")
elif user_choice < pc_choice:
print("Higher!")
'Programming > Python 웹 스크래퍼 만들기' 카테고리의 다른 글
Python List (0) | 2022.11.08 |
---|---|
Python Method (0) | 2022.11.07 |
Python 랜덤 숫자 맞추기 (0) | 2022.11.03 |
Python if, elif, else 조건문 (0) | 2022.11.02 |
Python return 키워드 (0) | 2022.11.01 |