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("无法识别您投入的纸币或硬币,请确认后重新投入!")

猜你喜欢

转载自blog.csdn.net/weixin_39033358/article/details/104332097
今日推荐