欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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("无法识别您投入的纸币或硬币,请确认后重新投入!")
相关标签: python自动化测试