20181009_Python练习题-二:自动贩卖机:只接受1元、5元、10元的纸币或硬币,可以1元、5元、10元。最多不超过10块钱。饮料只有橙汁、椰汁、矿泉水、早餐奶,售价分别是3.5、4、2、4
程序员文章站
2022-06-04 17:10:06
...
# 题目二:自动贩卖机:只接受1元、5元、10元的纸币或硬币,可以1元、5元、10元。最多不超过10块钱。饮料只有橙汁、椰汁、矿泉水、早餐奶,售价分别是3.5、4、2
# 、4.5。写一个函数用来表示贩卖机的功能:用户投钱和选择饮料,并通过判断之后,给用户吐出饮料喝找零。
# 饮料与其售价关系对应的字典表
drinks_sales = {'1': 3.5, '2': 4, '3': 2, '4': 4.5}
drinks_select = {'1': '橙汁', '2': '椰汁', '3': '矿泉水', '4': '早餐奶'}
# 1、orange juice; 2、coconut juice 3、spring water 4、milk
total = 0 # 存储购买饮料的总金额
drinks = ''
# 用户选择饮料
while True:
choose = input("请输入您要购买饮料的数字编号:1:橙汁; 2:椰汁; 3:矿泉水; 4:早餐奶。按q退出选择饮料!")
if choose in drinks_sales.keys():
drinks += drinks_select[choose] + '、'
total += drinks_sales[choose]
elif choose == 'q':
print("您已退出选择饮料!")
break
else:
print("不存在该饮料,请重新选择!")
# 用户投币
insert_coins = 0
while True:
money = input("请投币:只能投1元、5元、10元的纸币或硬币,按q退出投币!")
if money == '1' or money == '5' or money == '10':
insert_coins += int(money)
if insert_coins > total:
print("您刚刚购买了{},总共需要支付{}元,您已支付{}元,找零{}元!".format(drinks.strip('、'), total, insert_coins,
insert_coins - total))
break
elif insert_coins < total:
print("您刚刚购买了{},总共需要支付{}元,您已支付{}元,还需支付{}元!".format(drinks.strip('、'), total, insert_coins,
total - insert_coins))
else:
print("您刚刚购买了{},总共需要支付{}元,您已支付{}元,已支付完毕!".format(drinks.strip('、'), total, insert_coins))
break
elif money == 'q':
if insert_coins < total:
print("您还没完成支付,不能退出!")
continue
else:
break
else:
print("无法识别您投入的纸币或硬币,请确认后重新投入!")
上一篇: 继承关系下怎样使用Builder 模式
下一篇: 类与对象 案例 自动贩卖机