Python

[2025.02.24] while 문

polibo 2025. 2. 24. 17:35
while for
- 범위가 지정되어 있지 않은
- 가변 길이에 따른 반복을 수행할 때 사용
- (종료 시점을 모를 때)
- 길이가 고정된 반복을 수행할 때 사용
- (언제 끝날지 알고 있을 때)

 

[복합 대입 연산자]

  • += , -= , *=, /= , %= , **= , //=

 

[while 문]

  • while 문을 사용할 때에는 종료가 되는 조건을 꼭! 넣어줘야 함.
  • while 조건문:
  •     수행할_문장
  • while의 조건문이 참(True)인 경우 실행됨.

 

[while 문 예시]

  • 1부터 10까지 출력
  • count가 10보다 작을 때까지 계속 실행됨.
count = 0

while count < 10:
    count += 1 # count = count + 1 , += : 복합대입연산자
    print(count)

 

 

  • while의 조건문이 거짓(False)인 경우 실행되지 않음.
  • 따라서, while문 안의 코드에 도달할 수 없다는 경고창이 뜨는 것을 볼 수 있음.
while False:
    count += 1
    print(count)

 

 

  • while문의 조건이 항상 True이기 때문에 다음 코드로 넘어가지 않고 계속 실행됨.
count = 0
while True: # 정지를 정해놓지 않으면 다음 코드로 넘어갈 수 X, 계속 실행됨
    count += 1
    print(count)
print(count) # 이 코드에 도달할 수 없습니다.

 

 

  • 0부터 99까지 출력하기
  • count가 100보다 작은 경우로 조건을 제한함.
# 0부터 99까지 출력하기
count = 0
while count < 100:
    print(count)
    count += 1

 

 

  • 1부터 100까지의 숫자 중 짝수 출력하기
  • 이 코드는 내가 작성한 코드
  • count가 1부터 100까지 2와 나눈 나머지가 0인 경우 count를 출력하고, +1을 해줌.
# 1부터 100까지 짝수만 출력
count = 1
while count < 101:
    if count % 2 == 0:
        print(count)
    count += 1

 

 

  • 교수님께서 작성해주신 코드
count = 0
while count < 100:
    count += 1
    if count % 2 == 0:
        print(count)

 

 

  • 1부터 100까지 홀수 출력하기
# 1부터 100까지 홀수만 출력
count = 0
while count < 100:
    count += 1
    if count % 2 == 1:
        print(count)

 

 

 

[while문 예제 만들어보기]

  • 교수님께 저번 시간에 진행했던 자판기 만드는 코드를 수정하여 계속 실행되게 해보라고 하셨음.
  • while 문을 사용하여 코드가 계속 실행되게 하였음.
  • 사용자가 선택한 메뉴가 메뉴 리스트에 없으면 continue를 통해서 while 문의 제일 처음으로 돌아가게 되어 금액과 메뉴를 다시 선택하게 됨.
# 2025.02.24.
# 자판기 계속 실행되게 만들기

menus = ["펩시콜라", "코카콜라", "포카리", "물"]
price = [800, 900, 700, 500]
while True:
    user_money = input("돈을 넣어주세요 : ")
    user_money = int(user_money)
    user_menu = input("음료를 골라주세요 : ")
    if user_menu not in menus:
        print("선택하신 메뉴가 없습니다. 다시 선택해주세요!")
        continue
    elif user_money >= price[0] and user_menu == menus[0]:
        print(f"선택하신 음료는 [{menus[0]}] 입니다.")
        user_money = user_money - price[0]
    elif user_money >= price[1] and user_menu == menus[1]:
        print(f"선택하신 음료는 [{menus[1]}] 입니다.")
        user_money = user_money - price[1]
    elif user_money >= price[2] and user_menu == menus[2]:
        print(f"선택하신 음료는 [{menus[2]}] 입니다.")
        user_money = user_money - price[2]
    elif user_money >= price[3] and user_menu == menus[3]:
        print(f"선택하신 음료는 [{menus[3]}] 입니다.")
        user_money = user_money - price[3]
    else:
        print("돈이 부족합니다. 돈을 더 넣어주세요!")

    print(f"거스름돈은 [{user_money} (원)] 입니다.")
    print("감사합니다. 다음에 또 오세요^^!!")
    print("===================================")