off the beaten path

취미생활, 공부/빅데이터

Python_Iteration Statement(while)

sangchuw 2022. 2. 6. 16:19

##Control Statement : Iteration Statement(While, For) 반복문

  • 파이썬에서는 while, for 2가지의 statement를 제공한다.

## While statement

  • while문은 조건을 만족할 때 까지 반복한다.
  • while(조건):

    <statement1>

    <statement2>

    <statement3>

  • 조건이 만족하는 동안(while) statement 1,2,3을 반복한다.

구구단을 통해 연습해봅시다!

# 2단을 while문으로 구현해봅시다.
# while 반복을 멈추는 조건:

number=1

while number < 10:
  print("2 x %d = %d" %(number, 2*number)) #number가 1부터 9까지 반복
  number=number+1 #number =+ 1
  
#  2 x 1 = 2
#  2 x 2 = 4
#  2 x 3 = 6
#  ...
#  2 x 9 = 18
 
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18

 

실제 자판기 기계는 돈을 한번 넣고 종료되지 않는다. 자판기 기계(프로그램)이 종료되는 경우는 커피가 다 떨어졌을 때이다.

Q. 커피가 다 질때까지 자판기 프로그램을 반복하면서 실행한 뒤, 돈을 입력받아서 커피를 주는 프로그램을 작성해보자.

 
# 자판기의 커피 수량
coffee = 5

# 커피가 남아있는 동안 작동!
while coffee > 0:

    # 실제로는 자판기를 통해서 넣은 금액.
    money = int(input("금액을 입력해주세요 : "))
    
    if money == 300:
        # 실제로 이 파트는 자판기에서 커피를 뽑는 명령으로 대체된다.
        print("coffee")
        # 이제 커피를 하나씩 줄인다.
        coffee=coffee-1 #coffee-=1


    elif money < 300:
        # 실제로 이 파트는 돈을 반환한다.
        print("%d원을 돌려줍니다." % (money))
        
     
    else: # or elif money > 300:

        # 커피를 뽑아주고
        print("coffee")

        # 이제 커피를 하나씩 줄인다.
        coffee=coffee-1

        # 거스름돈을 돌려준다.
        print("%d원을 돌려줍니다." %(money-300))
        
# 커피가 다 떨어진 경우 알려야한다.
print("커피가 모두 소진되었으니, 관리자에게 문의해주세요.") #while 종료된 후 작동
 
금액을 입력해주세요 : 500
coffee
200원을 돌려줍니다.
금액을 입력해주세요 : 300
coffee
금액을 입력해주세요 : 200
200원을 돌려줍니다.
금액을 입력해주세요 : 1000
coffee
700원을 돌려줍니다.
금액을 입력해주세요 : 150
150원을 돌려줍니다.
금액을 입력해주세요 : 300
coffee
금액을 입력해주세요 : 500
coffee
200원을 돌려줍니다.
커피가 모두 소진되었으니, 관리자에게 문의해주세요.
 
 

 

RE : 실제 자판기 기계는 돈을 한번 넣고 종료되지 않는다. 자판기 기계(프로그램)이 종료되는 경우는 커피가 다 떨어졌을 때이다.

Q. 커피가 다 떨어질 때 까지 자판기 프로그램을 반복하면서 실행한 뒤, 돈을 입력받아서 커피를 주는 프로그램을 작성해보자.

 
# 자판기의 커피 수량
coffee = 5

# 일단 작동! #infinite loop #무한루프
while True:

    # 실제로는 자판기를 통해서 넣은 금액.
    money = int(input("금액을 입력하세요."))
    if money == -1 :
      print("운영을 종료합니다")
      break
    
    if money == 300:
        # 실제로 이 파트는 자판기에서 커피를 뽑는 명령으로 대체된다.
        print("Coffee")
        # 이제 커피를 하나씩 줄인다.
        coffee = coffee - 1

    elif money < 300:
        # 실제로 이 파트는 돈을 반환한다.
        print("%d원을 반환합니다." % money)
     
    else: # or elif money > 300:
        print("Coffee")
        # 커피를 뽑아주고
        coffee = coffee - 1
        # 이제 커피를 하나씩 줄인다.
        print("%d원을 반환합니다." % (money-300))
        # 거스름돈을 돌려준다.
    if coffee == 0 :
      print("운영을 종료합니다")
      break
        
    # 커피가 다 떨어진 경우 알려야한다.
print("커피가 모두 소진되었으니, 관리자에게 문의해주세요.")
 
금액을 입력하세요.-1
운영을 종료합니다
커피가 모두 소진되었으니, 관리자에게 문의해주세요.
 
 

RE : 실제 자판기 기계는 돈을 한번 넣고 종료되지 않는다. 자판기 기계(프로그램)이 종료되는 경우는 커피가 다 떨어졌을 때이다.

Q. 커피가 다 떨어질 때 까지 자판기 프로그램을 반복하면서 실행한 뒤, 돈을 입력받아서 커피를 주는 프로그램을 작성해보자.

이번에는 돈이 모자랄 때는, 추가로 돈을 입력받아 300원을 넘는 경우에 커피를 뽑아주는 프로그램을 작성해보자.

 
# 자판기의 커피 수량
coffee = 5
# 거스름돈 보관
extra_money = 0

# 일단 작동! 
while coffee > 0 :

    # 실제로는 자판기를 통해서 넣은 금액.
    money = int(input("금액을 입력해주세요 : "))
    # 매번 저장된 돈과 들어올 돈을 합산하여 생각합니다.
    money = money + extra_money

    if money == 300:
        # 실제로 이 파트는 자판기에서 커피를 뽑는 명령으로 대체된다.
        print("Coffee")
        # 이제 커피를 하나씩 줄인다.
        coffee = coffee - 1

    elif money < 300:
        # 돈을 더 받자.
        print("돈이 모자랍니다. 추가로 금액을 입력해주세요.")
        extra_money = money #money=extra_money (X)
        continue #정산에서 코드를 정리해줘야함

        
    else: # or elif money > 300:
        print("Coffee")
        # 커피를 뽑아주고
        coffee = coffee - 1
        # 이제 커피를 하나씩 줄인다.
        print("%d원을 반환합니다." % (money-300))
        # 거스름돈을 돌려준다.
    
    
    # 정산
    extra_money = 0
        
    # 커피가 다 떨어진 경우 알려야한다.
print("커피가 모두 소진되었으니, 관리자에게 문의해주세요.")
 
금액을 입력해주세요 : 300
Coffee
금액을 입력해주세요 : 500
Coffee
200원을 반환합니다.
금액을 입력해주세요 : 200
돈이 모자랍니다. 추가로 금액을 입력해주세요.
금액을 입력해주세요 : 200
Coffee
100원을 반환합니다.
금액을 입력해주세요 : 300
Coffee
금액을 입력해주세요 : 100
돈이 모자랍니다. 추가로 금액을 입력해주세요.
금액을 입력해주세요 : 250
Coffee
50원을 반환합니다.
커피가 모두 소진되었으니, 관리자에게 문의해주세요.

'취미생활, 공부 > 빅데이터' 카테고리의 다른 글

Python_Iteration Statement(for)  (0) 2022.02.06
Python_Conditional Statement(IF)  (0) 2022.02.06
Python_Programming Practice (Data Type)  (0) 2022.02.06