python3 购物车小程序,余额写入文件保存
python3 购物车小程序,余额写入文件保存
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan goods = (
("MiNote3", 2499),
("Bike", 799),
("MacBook", 6999),
("Coffee", 25),
("RedMiNote3", 1099),
("Python 3", 59)
) def main():
'''
入口
:return:
''' # 创建一个文件,用于存储余额。
try:
with open('balance.txt', 'r') as f:
data_str = f.read()
if data_str and (not data_str.isspace()): # 有内容,
balance = int(data_str)
else: # 有文件,但没有内容
balance = input("请输入您的钱包余额:")
if balance.isnumeric():
balance = int(balance)
else:
print("请输入正整数")
exit()
with open('balance.txt', 'w') as f:
f.write(str(balance))
except FileNotFoundError as e: # 没有这个文件,就创建并写入内容
balance = input("请输入您的钱包余额:")
if balance.isnumeric():
balance = int(balance)
else:
print("请输入正整数")
exit()
with open('balance.txt', 'w') as f:
f.write(str(balance))
finally:
f.close() # 关闭文件。 go_back_flag = True shopping_list = [] while go_back_flag: for i, j in enumerate(goods):
print(i, j)
user_chiose = input("钱包余额是:% .2f,您要买什么?" % (balance))
if user_chiose == ("q" or "Q"):
go_back_flag = False
continue
elif user_chiose.isnumeric():
user_chiose = int(user_chiose) else:
print("请输入上面的序号")
continue
if user_chiose <= len(goods) - 1: #符合
if goods[user_chiose][1] <= balance: #买得起
balance -= goods[user_chiose][1]
with open('balance.txt', 'w') as f: # 更新余额(覆盖)
f.write(str(balance))
f.close()
print("已将 %s 加入您的购物车" %(goods[user_chiose][0]))
shopping_list.append(goods[user_chiose])
else:
print("余额不足,买不了。")
else:
print("超出范围,没有这个序号")
print("您的钱包余额是:%.2f。" %(balance)) if len(shopping_list) == 0:
print("您都没有买东西")
else:
print("下面将列出你已购买的商品")
for i in shopping_list:
print(i) if __name__ == "__main__":
main()
效果如下:
C:\Python36\python.exe D:/Py/1704/day05/购物车.py
请输入您的钱包余额:6666
0 ('MiNote3', 2499)
1 ('Bike', 799)
2 ('MacBook', 6999)
3 ('Coffee', 25)
4 ('RedMiNote3', 1099)
5 ('Python 3', 59)
钱包余额是: 6666.00,您要买什么?3
已将 Coffee 加入您的购物车
0 ('MiNote3', 2499)
1 ('Bike', 799)
2 ('MacBook', 6999)
3 ('Coffee', 25)
4 ('RedMiNote3', 1099)
5 ('Python 3', 59)
钱包余额是: 6641.00,您要买什么?2
余额不足,买不了。
0 ('MiNote3', 2499)
1 ('Bike', 799)
2 ('MacBook', 6999)
3 ('Coffee', 25)
4 ('RedMiNote3', 1099)
5 ('Python 3', 59)
钱包余额是: 6641.00,您要买什么?1
已将 Bike 加入您的购物车
0 ('MiNote3', 2499)
1 ('Bike', 799)
2 ('MacBook', 6999)
3 ('Coffee', 25)
4 ('RedMiNote3', 1099)
5 ('Python 3', 59)
钱包余额是: 5842.00,您要买什么?q
您的钱包余额是:5842.00。
下面将列出你已购买的商品
('Coffee', 25)
('Bike', 799) Process finished with exit code 0
python3 购物车小程序,余额写入文件保存的更多相关文章
- python 购物车小程序
python 购物车小程序 功能要求:1.启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表2.允许用户根据商品编号购买商品3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒4. ...
- 微信小程序cavas画图并保存
需求背景: 因微信小程序暂不支持一键分享到朋友圈功能,故要生成图片并保存到手机相册就有两种情况: 1.需保存的图片为静态固定图片.这种情况图片可直接由后端返回,再调用小程序相应api直接保存到手机相册 ...
- [作业] Python入门基础---购物车小程序
1.购物车小程序: 1.1用户输入工资取60% 1.2打印输出商品菜单 1.3由用户输入数字选择 #__author:Mifen #date: 2018/11/27 # 购物车程序 #把工资作为账户的 ...
- 微信小程序-02-项目文件之间配合和调用关系
微信小程序-02-项目文件之间配合和调用关系 我就不说那么多了,我是从官方文档拷贝的,然后加上一些自己的笔记,不喜勿喷 官方文档:https://developers.weixin.qq.com/mi ...
- 小程序中搜索文件,阅览pdf,分享文件链接,评论表情符号
小程序中搜索文件,阅览pdf,分享文件链接,评论表情符号 https://blog.csdn.net/hotqin888/article/details/84111389 小程序中打开网页和pdf h ...
- 微信小程序存放视频文件到阿里云用到算法js脚本文件
peterhuang007/weixinFileToaliyun: 微信小程序存放视频文件到阿里云用到算法js脚本文件 https://github.com/peterhuang007/ ...
- Day2:购物车小程序
一.购物车小程序第一版 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan product_list = [ (&quo ...
- iOS 写入文件保存数据的方式
在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeye ...
- C#windows桌面应用小程序制作——大文件数据分段解析存储
现在的任务就是做一个大文件解析的桌面应用小程序,具体需求就是:将一个很大的文件里的数据按一定标志拆分然后分别保存到某个文件夹下面. 解析的文件内容为以下内容: windows 应用小程序界面 具体代码 ...
随机推荐
- 洛谷 P1705 爱与愁过火
P1705 爱与愁过火 题目背景 (本道题目隐藏了两首歌名,找找看哪~~~) <爱与愁的故事第一弹·heartache>第三章. 爱与愁大神说这是ta的伤心指数,只不过现在好很多了,翻译只 ...
- R中读取文件,找不到路径问题 No such file or directory
R中读取文件,找不到路径问题 No such file or directory 近日,读取文件时.出现例如以下问题 > passenger = read.csv('internationa ...
- 新辰:十种外链终极方法 让SEOer外链之路不再孤独!
大家都知道,外链就是指从别的站点导入到自己站点的链接.导入链接对于新辰站点优化来说是很重要的一个过程.因此,新辰觉得.对于中小型站点来说.外链但是优化的重中之重! 由于也有了"外链专员&qu ...
- vue2留言板
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- BZOJ 1572 贪心(priority_queue)
思路: 维护两个堆 一个按时间 (从后到前)的 另一个是按价值(从大到小)的 从时间的堆向价值的堆倒 每回(合法状态下)取当前的堆顶 判一判 //By SiriusRen #include <q ...
- spark读写mysql
spark读写mysql除官网例子外还要指定驱动名称 travels.write .mode(SaveMode.Overwrite) .format("jdbc") .option ...
- HDU 1576 A/B 数论水题
http://acm.hdu.edu.cn/showproblem.php?pid=1576 写了个ex_gcd的模板...太蠢导致推了很久的公式 这里推导一下: 因为 1 = BX + 9973Y ...
- NYOJ_75 日期计算 (推断这一天是这一年中的第几天)
题目地址 如题,输入一个日期,格式如:2010 10 24 ,推断这一天是这一年中的第几天. 分析: 官方给的最优答案用了for 和switch语句结合,十分巧妙. 代码 /* 如题,输入一个日期 ...
- actionBar-shareIcon 分享按钮的修改
今天为了修改图库的分享按钮,进行了很多的尝试 1.寻找到了xml文件,如下 <?xml version="1.0" encoding="utf-8"?&g ...
- 3.第一个Node.js程序:Hello World!
转自:http://www.runoob.com/nodejs/nodejs-tutorial.html 以下是我们的第一个Node.js程序: console.log("Hello Wor ...