Python 自动贩卖机系统

         随着无人新零售经济的崛起,商场、车站、大厦等各种场所都引入了无人饮品自动售货机,方便人们选购自己想要的饮品。购买者选择想要的饮品,通过投币或扫码的方式支付,支付成功后从出货口取出饮品。要求编写代码,利用函数实现具有显示饮品信息、计算总额等功能的程序。

# 饮品信息
def all_goods():
    goods = {"可口可乐": 2.5, "百事可乐": 2.5, "冰红茶": 3, "脉动": 3.5, "果缤纷": 3,
             "绿茶": 3, "茉莉花茶": 3, "尖叫": 2.5}
    return goods


# 展示饮品信息
def show_goods():
    for x, y in all_goods().items():
        print(x, ":", str(y) + "元")


# 计算总额
def total(goods_dict):
    count = 0
    for name, num in goods_dict.items():
        total_money = all_goods()[name] * num
        # 总金额
        count += total_money
    print("需要支付金额:", count, "元")



def payway():
    payway = input("请选择支付方式:现金支付或扫码支付")
    if payway == "现金支付":
        print("请将钱放入进钞口")
    elif payway =="扫码支付":
        print("请扫码")




def main():
    goods_dict = {}
    print("饮 品 自 动 售 货 机")
    show_goods()
    # 循环选购的商品
    print("输入q结束购买")
    while True:
        goods_name = input("请输入购物的商品:")
        if goods_name == 'q':
            break
        if goods_name in [g_name for g_name in  all_goods().keys()]:
            goods_num = input("请输入购物数量:")
            if goods_num.isdigit():
                goods_dict[goods_name] = float(goods_num)
            else:
                print('商品数量不合法')
        else:
            print('请输入正确的商品名称')
    total(goods_dict)
    payway()

if __name__ == '__main__':
    main()

  • 20
    点赞
  • 116
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
自动贩卖机系统Python实现通常会使用Tkinter库,这是一个轻量级的图形用户界面(GUI)工具包,适合用于创建简洁易用的桌面应用。在构建一个自动贩卖机模拟器时,你可以使用Tkinter来设计界面元素,如按钮、标签和文本框,代表商品选择、付款、找零等功能。 以下是基本的步骤和概念: 1. **导入库**:首先需要导入Tkinter模块以及任何其他必要的模块,如time(用于模拟延迟)或os(处理文件操作)。 ```python import tkinter as tk from tkinter import messagebox ``` 2. **创建窗口**:定义窗口的基本属性,如大小、标题等。 ```python root = tk.Tk() root.title("自动贩卖机") ``` 3. **构建界面**:创建各种控件,如`Button`代表商品选择,`Entry`作为金额输入,`Label`显示状态信息等。 ```python items = {} # 商品列表和价格 item_buttons = {} # 商品按钮 entry = tk.Entry(root) # 输入框 ``` 4. **事件绑定**:为按钮添加点击事件,比如选择商品后更新库存和总计,或者接收付款请求。 ```python def select_item(item): # 更新库存和总计 pass for item, price in items.items(): button = tk.Button(root, text=item, command=lambda item=item: select_item(item)) item_buttons[item] = button button.pack() ``` 5. **处理付款**:用户输入金额后,检查是否足够支付选定的商品,并进行找零。 6. **错误处理**:利用`try-except`处理可能的异常,例如金额不足或非法输入。 7. **退出程序**:在窗口关闭时执行清理操作。 8. **主循环**:启动Tkinter的事件循环。 ```python root.mainloop() ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值