简单的while循环Python

时间:2016-12-07 20:44:03

标签: python while-loop

我正在制作一个超市界面,如果我跑不跑,我的程序就可以了。但是,如果userchoice = 2,我无法返回到userchoice = 1.我只能转到2或之后的选项。我认为我的while循环可能有问题。

apples = 0
mangoes = 0
print("Welcome to the CS110 Supermarket!")
print("1. Potatoes ($0.75 per potato")
print("2. Tomatoes ($1.25 per tomato")
print("3. Apples ($0.5 per apple")
print("4. Mangoes ($1.75 per mango")
print("5. Checkout")
user_choice = int(input())
total = total + potatoes*0.75 + tomatoes*1.25 + apples*0.5 + mangoes*1.75
while user_choice == 1:
    potatoes = int(input("How many potatoes?"))
    total = total + potatoes*0.75
    print("The total cost is $", total)
    print("Welcome to the CS110 Supermarket!")
    print("1. Potatoes ($0.75 per potato")
    print("2. Tomatoes ($1.25 per tomato")
    print("3. Apples ($0.5 per apple")
    print("4. Mangoes ($1.75 per mango")
    print("5. Checkout")
    user_choice = int(input())
while user_choice == 2:
    tomatoes = int(input("How many tomatoes?"))
    total = total + tomatoes*1.25
    print("The total cost is $", total)
    print("Welcome to the CS110 Supermarket!")
    print("1. Potatoes ($0.75 per potato")
    print("2. Tomatoes ($1.25 per tomato")
    print("3. Apples ($0.5 per apple")
    print("4. Mangoes ($1.75 per mango")
    print("5. Checkout")
    user_choice = int(input())
while user_choice == 3:
    apples=int(input("How many apples?"))
    total = total + apples*0.5
    print("The total cost is $", total)
    print("Welcome to the CS110 Supermarket!")
    print("1. Potatoes ($0.75 per potato")
    print("2. Tomatoes ($1.25 per tomato")
    print("3. Apples ($0.5 per apple")
    print("4. Mangoes ($1.75 per mango")
    print("5. Checkout")
    user_choice = int(input())
while user_choice == 4:
    mangoes = int(input("How many mangoes?"))
    total = total + mangoes*1.75
    print("The total cost is $",total)
    print("Welcome to the CS110 Supermarket!")
    print("1. Potatoes ($0.75 per potato")
    print("2. Tomatoes ($1.25 per tomato")
    print("3. Apples ($0.5 per apple")
    print("4. Mangoes ($1.75 per mango")
    print("5. Checkout")
    user_choice=int(input())
if user_choice == 5:
    print("The total cost is $",total)
    pay = float(input("Please enter an amount to pay for the fruits and vegetables: "))
    while pay < total:
        pay = float(input("Please enter an amount more than payment: "))
    change = pay - total
    print("Your change will be $", change)
    d5 = change // 5
    d1 = (change % 5) // 1
    quarter = ((change % 5) % 1) // 0.25
    dime = (((change % 5) % 1) % 0.25) // 0.1
    nickel = ((((change % 5) % 1) % 0.25) % 0.1) // 0.05
    penny = (((((change % 5) % 1) % 0.25) % 0.1) % 0.05) // 0.01
    print("Give the customer", d5, "$5 note,", d1, "$1 note,", quarter, "quarter,", dime, "dime,", nickel,"nickel,", penny, "penny.")

2 个答案:

答案 0 :(得分:2)

您使用的while比您需要的更多while。而不是每个选项if,只使用一个循环,并选择几个while True: user_choice=int(input()) if user_choice == 1: ... if user_choice == 2: ... ... if user_choice == 5: break # exit the loop with break

 try {
 Thread.sleep(33); //FPS 25
 } catch(InterruptedException bug) {
 Thread.currentThread().interrupt();
 System.out.println(bug);
 }

答案 1 :(得分:-1)

user_input置于循环顶部时,可以使用无限循环。然后,你只需要使用if条件。您当前正在为每个参数使用一个循环。这是行不通的,因为你不能通过那个循环来处理另一个选择。

while True:
    print("Welcome to the CS110 Supermarket!")
    print("1. Potatoes ($0.75 per potato")
    print("2. Tomatoes ($1.25 per tomato")
    print("3. Apples ($0.5 per apple")
    print("4. Mangoes ($1.75 per mango")
    print("5. Checkout")

    user_choice = int(input())
    if user_choice==1:
        potatoes=int(input("How many potatoes?"))
        total=total+potatoes*0.75

    elif user_choice==2:
        tomatoes=int(input("How many tomatoes?"))
        total=total+tomatoes*1.25

    elif user_choice==3:
        apples=int(input("How many apples?"))
        total=total+apples*0.5


    elif  user_choice==4:
        mangoes=int(input("How many mangoes?"))
        total=total+mangoes*1.75


    if user_choice==5:
        print("The total cost is $",total)
        pay=float(input("please enter an amount to pay for the fruits and vegetables: "))
        while pay<total:
            pay=float(input("please enter an amount more than payment: "))
        change=pay-total
        print("your change will be $",change)
        d5 = change // 5
        d1 = (change % 5) // 1
        quarter = ((change % 5) % 1) // 0.25
        dime = (((change % 5) % 1) % 0.25) // 0.1
        nickel = ((((change % 5) % 1) % 0.25) % 0.1) // 0.05
        penny = (((((change % 5) % 1) % 0.25) % 0.1) % 0.05) // 0.01
        print("Give the customer", d5, "$5 note,", d1, "$1 note,", quarter, "quarter,", dime, "dime,", nickel,"nickel,", penny, "penny.")
        break