用python编写一个点餐程序_Python写一个自动点餐程序

本文介绍了使用Python编写一个自动点餐程序的原因和流程,包括登录、获取菜单、提交订单等步骤。通过模拟登录,构造请求并保持登录状态,利用requests库与API交互,实现了自动点餐的功能。
摘要由CSDN通过智能技术生成

Python写一个自动点餐程序

为什么要写这个

公司现在用meican作为点餐渠道,每天规定的时间是早7:00-9:40点餐,有时候我经常容易忘记,或者是在地铁/公交上没办法点餐,所以总是没饭吃,只有去楼下711买点饭团之类的玩意儿,所以这是促使我写点餐小程序的原因。

点餐的流程

登录 ---> 点餐 ---> 提交

哈哈,是不是很简单,其实这个还好,说白了,就是登录上去,然后拿到cookie,保持一个登录状态,然后再去点餐,点餐就是构造请求,发送到指定的点餐URL上就可以了。

登录

上面要求我们登录,我们这里输入自己的账号密码,登录上去之后可以看见一个请求.

1082248-20190809104846744-1053796310.png

这个请求就是登录的请求,我们看下需要传什么参数,然后我们去完全构造这个请求,也就是参数一致,并且带浏览器头,这里我们也需要去保存cookie,也就是说,我们需要自己的账号时刻保持online状态,所以需要保存cookie,需要时候调用

所以我们需要实现如下功能

登录请求构造

保持登录状态

保存cookies

使得后来的访问都带cookie

代码如下

import json

import requests

import http.cookie

### 回答1: 好的,这是一个简单的点餐程序的示例: ``` # 定义菜单列表 menu = { '面条': 10, '米饭': 5, '炒饭': 15, '汉堡': 20, '披萨': 25 } # 定义订单列表 order = [] # 获取用户订单 while True: dish = input('请选择菜品(输入"结束"结束点餐):') if dish == '结束': break if dish in menu: order.append(dish) else: print('没有该菜品!') # 计算总价 total_price = 0 for dish in order: total_price += menu[dish] # 显示订单和总价 print('您的订单是:') for dish in order: print(dish) print('总价为:', total_price, '元') ``` 这个程序可以循环询问用户订单,并显示最终的订单和总价。 ### 回答2: 用Python一个简单的点餐程序可以通过创建一个菜单列表和订单列表来实现。 首先,我们可以创建一个包含菜单选项的菜单列表。每个菜单项包括名称和价格。例如: menu = [ {"name": "牛肉面", "price": 20}, {"name": "炸鸡腿", "price": 15}, {"name": "麻辣烫", "price": 18}, {"name": "红烧肉", "price": 25}, {"name": "糖醋排骨", "price": 28} ] 接下来,我们可以创建一个空的订单列表来存储用户点餐的菜品。例如: order = [] 然后,我们可以使用循环来显示菜单选项供用户选择。用户可以通过输入菜品的编号来点餐。例如: print("欢迎来到点餐系统!") print("请根据菜单选项选择您需要的菜品:") for index, item in enumerate(menu): print(f"{index+1}. {item['name']} - ¥{item['price']}") 选项 = input("请输入菜品编号(按Q退出点餐):") 接下来,我们可以使用条件语句来判断用户的输入,并将选择的菜品添加到订单列表中。例如: while True: if 选项.upper() == 'Q': break elif int(选项) in range(1, len(menu)+1): index = int(选项) - 1 order.append(menu[index]) print(f"{menu[index]['name']}已经加入到订单中。") else: print("无效的选择。请重新输入。") 选项 = input("请输入菜品编号(按Q退出点餐):") 最后,我们可以输出订单中点餐的菜品和总价格。例如: print("您的订单内容如下:") for item in order: print(f"{item['name']} - ¥{item['price']}") 总价格 = sum(item['price'] for item in order) print(f"总金额:¥{总价格}。感谢您的惠顾!") 这就是一个简单的用Python编写点餐程序。根据实际需求,程序可以进一步完善,并添加其他功能。 ### 回答3: 使用Python编写一个简单的点餐程序可以满足以下功能: 1. 展示菜单:首先,程序需要能够展示出所有提供的菜单选项。这可以通过创建一个包含菜名和价格的字典来实现。 2. 用户选择:其次,程序应该能够让用户进行菜单选择。可以使用input函数让用户输入菜名或者菜品编号进行选择。 3. 订单确认:用户选择完成后,程序需要展示订单明细,并让用户确认订单。确认订单后,程序将计算订单的总金额。 4. 支付金额和找零:程序需要让用户输入支付金额,并计算找零金额,如果支付金额不足,程序需要友好地提示用户。 5. 订单存档:程序可以选择将订单存档,以便将来查看或打印。 下面是一个简单的示例代码: ```python # 菜单选项 menu = { "1": {"name": "鱼香肉丝", "price": 25}, "2": {"name": "宫保鸡丁", "price": 30}, "3": {"name": "回锅肉", "price": 35}, "4": {"name": "水煮鱼", "price": 40} } # 展示菜单 print("菜单:") for item in menu.values(): print(f"{item['name']} - ¥{item['price']}") # 用户选择 order = {} while True: choice = input("请选择菜品编号(按q结束):") if choice.lower() == 'q': break elif choice in menu: dish = menu[choice] if dish['name'] in order: order[dish['name']]['quantity'] += 1 else: order[dish['name']] = {'price': dish['price'], 'quantity': 1} print(f"{dish['name']}已加入订单") else: print("请输入正确的菜品编号") # 展示订单明细 print("订单明细:") total = 0 for dish, info in order.items(): price = info['price'] quantity = info['quantity'] subtotal = price * quantity total += subtotal print(f"{dish} x {quantity} = ¥{subtotal}") # 计算总金额 print(f"总金额:¥{total}") # 支付金额 paid = float(input("请输入支付金额:")) # 计算找零 if paid >= total: change = paid - total print(f"找零:¥{change}") else: print("支付金额不足") # 存档订单 # 这里可以将订单存储到数据库或文本文件中 ``` 这只是一个简单的示例,可以根据实际需求进行扩展和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值