如何解决编写一个程序来计算客户在购买物品时要支付的总金额清单附有价格
"编写一个程序来计算客户在购买商品时要支付的总金额。该程序应显示五 (5) 件商品及其相应价格的列表。用户从列表中选择商品并输入“要购买的商品编号(基于列表)和每件商品的购买数量。此操作将重复进行,直到用户不再选择商品为止。程序将显示客户要支付的总金额。”
这是我需要制作的程序类型,下面是我制作的代码,但是当我选择第二个项目时它停止了,我不知道为什么会这样。
Apple=40.00
Banana=30.00
Fish=100.00
Bread=45.00
Milk=20.00
price=0.00
print("Apple: Php 40.00")
print("Banana: Php 30.00")
print("Fish: Php 100.00")
print("Bread: Php 45.00")
print("Milk: Php 20.00")
while True:
choice=input('\nChoose an item: Apple,Banana,Fish,Bread,Milk\n')
if choice == 'Apple':
choice=input('Would you like to pick another order? y/n\n')
if choice == 'y':
choice=input('\nChoose an item: Apple,Milk\n')
else:
for cost in price:
sum += cost
break
print("Total cost: Php",sum)
print(" ")
elif choice == 'Banana':
choice=input('Would you like to pick another order? y/n\n')
if choice == 'y':
choice=input('\nChoose an item: Apple,sum)
print(" ")
elif choice == 'Fish':
choice=input('Would you like to pick another order? y/n\n')
if choice == 'y':
choice=input('\nChoose an item: Apple,sum)
print(" ")
elif choice == 'Bread':
choice=input('Would you like to pick another order? y/n\n')
if choice == 'y':
choice=input('\nChoose an item: Apple,sum)
print(" ")
elif choice == 'Milk':
choice=input('Would you like to pick another order? y/n\n')
if choice == 'y':
choice=input('\nChoose an item: Apple,sum)
print(" ")
else:
print("Error!")
break
解决方法
原因是你在 while 循环结束时中断。当您检查用户是否输入错误时,这应该在您的 else 中。此外,我想分享您的简化代码。我可能会遗漏一两件事,但这是使用字典的基本思想。
#create our dictionary,shopping items as keys and price of items as values
shoppingDict = {"Apple":40.00,"Banana":30.00,"Fish":100.00,"Bread":45.00,"Milk":20.00}
#iterate through the dictionaries items printing them out in a certain format
for k,v in shoppingDict.items():print(f'{k}: Php {v}')
while True:
#prompt user to enter an item
choice=input('\nChoose an item: Apple,Banana,Fish,Bread,Milk\n')
#check if that item is found in the dictionary
#if so add the key's value(price) to price
try:price += shoppingDict.get(choice)
#if the user does not enter a valid item,we will print error
except KeyError:print('Error')
#ask them if they want to play again
if input('Would you like to go again? y/n') == 'n':
print(f'Total Cost: {price}')
break
查找 here 以了解有关词典的更多信息
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。