我正在制作一个超市界面,如果我跑不跑,我的程序就可以了。但是,如果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.")
答案 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