20181009_Python练习题-二:自动贩卖机:只接受1元、5元、10元的纸币或硬币,可以1元、5元、10元。最多不超过10块钱。饮料只有橙汁、椰汁、矿泉水、早餐奶,售价分别是3.5、4、2、4

# 题目二:自动贩卖机:只接受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("无法识别您投入的纸币或硬币,请确认后重新投入!")
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值