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 应用小程序界面 具体代码 ...
随机推荐
- 洛谷 P1324 矩形分割
P1324 矩形分割 题目描述 出于某些方面的需求,我们要把一块N×M的木板切成一个个1×1的小方块. 对于一块木板,我们只能从某条横线或者某条竖线(要在方格线上),而且这木板是不均匀的,从不同的线切 ...
- UITableViewCell的prepareForReuse方法
cell被重用怎样提前知道? 重写cell的prepareForReuse官方头文件里有说明.当前已经被分配的cell假设被重用了(一般是滚动出屏幕外了),会调用cell的prepareForReus ...
- jquery autocomplete文本自己主动补全
文本自己主动补全功能确实非常有用. 先看下简单的效果:(样式不咋会写) 以下介绍几种: 1:jqery-actocomplete.js 这个网上有个写好的实例,上面挺具体的,能够下来执行下就清楚了就不 ...
- jQuery UI炫酷雨滴落在水面上的波纹涟漪特效
raindrops是一款效果很炫酷的jQuery UI雨滴落在水面上的特效. 该特效模拟水滴从空中落入平静的水面上的效果. 通过參数能够设置水面波纹的大小,强度,波纹扩散的速度等等属性. 效果演示:h ...
- Tachyon的配置详解
Tachyon的配置 Tachyon环境变量 Tachyon通用配置 TachyonMaster配置 TachyonWorker配置 用户配置 1 Tachyon的配置 这里以0.5.0版本为例,介绍 ...
- BootStrap_Table 学习
https://blog.csdn.net/heting90/article/details/52248729 $("#realTime_Table").bootstrapTabl ...
- WebMethod Description
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx https://www.cnblogs.com/wanganyi/p/72202 ...
- linux中内存泄漏的检測(五)记录内存泄漏的代码
到眼下为止,先后通过wrap malloc.new函数重载和计算指针内存大小的方法.基本上满足了对内存泄漏检測的须要. 假设发现了内存泄漏.那么就要找到内存泄漏的地方而且修正它了. 茫茫代码.如何去找 ...
- javascript创建对象的方法--动态原型模式
javascript创建对象的方法--动态原型模式 一.总结 1.作用:解决组合模式的属性和函数分离问题 2.思路:基本思路和组合模式相同:共用的函数和属性用原型方式,非共用的的函数和属性用构造函数 ...
- 中间件 —— 消息中间件(MOM)
维基百科对消息中间件的定义为:Message-oriented middleware (MOM) is software or hardware infrastructure supporting s ...