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 购物车小程序,余额写入文件保存的更多相关文章

  1. python 购物车小程序

    python 购物车小程序 功能要求:1.启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表2.允许用户根据商品编号购买商品3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒4. ...

  2. 微信小程序cavas画图并保存

    需求背景: 因微信小程序暂不支持一键分享到朋友圈功能,故要生成图片并保存到手机相册就有两种情况: 1.需保存的图片为静态固定图片.这种情况图片可直接由后端返回,再调用小程序相应api直接保存到手机相册 ...

  3. [作业] Python入门基础---购物车小程序

    1.购物车小程序: 1.1用户输入工资取60% 1.2打印输出商品菜单 1.3由用户输入数字选择 #__author:Mifen #date: 2018/11/27 # 购物车程序 #把工资作为账户的 ...

  4. 微信小程序-02-项目文件之间配合和调用关系

    微信小程序-02-项目文件之间配合和调用关系 我就不说那么多了,我是从官方文档拷贝的,然后加上一些自己的笔记,不喜勿喷 官方文档:https://developers.weixin.qq.com/mi ...

  5. 小程序中搜索文件,阅览pdf,分享文件链接,评论表情符号

    小程序中搜索文件,阅览pdf,分享文件链接,评论表情符号 https://blog.csdn.net/hotqin888/article/details/84111389 小程序中打开网页和pdf h ...

  6. 微信小程序存放视频文件到阿里云用到算法js脚本文件

           peterhuang007/weixinFileToaliyun: 微信小程序存放视频文件到阿里云用到算法js脚本文件 https://github.com/peterhuang007/ ...

  7. Day2:购物车小程序

    一.购物车小程序第一版 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan product_list = [ (&quo ...

  8. iOS 写入文件保存数据的方式

     在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeye ...

  9. C#windows桌面应用小程序制作——大文件数据分段解析存储

    现在的任务就是做一个大文件解析的桌面应用小程序,具体需求就是:将一个很大的文件里的数据按一定标志拆分然后分别保存到某个文件夹下面. 解析的文件内容为以下内容: windows 应用小程序界面 具体代码 ...

随机推荐

  1. IsoAlgo3d - IDF/PCF pipeline 3d viewer

    IsoAlgo3d - IDF/PCF pipeline 3d viewer eryar@163.com Key Words. IDF, PCF, IsoAlgo, 3D 当前国际主流管道设计软件都可 ...

  2. Spark Tachyon实战应用(配置启动环境、运行spark和运行mapreduce)

    Tachyon实战应用 配置及启动环境 修改spark-env.sh 启动HDFS 启动Tachyon Tachyon上运行Spark 添加core-site.xml 启动Spark集群 读取文件并保 ...

  3. Hive里的分区、分桶、视图和索引再谈

    福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟   ...

  4. sql server 内置MD5加密函数

    http://blog.csdn.net/rookie_liu_ToFly/article/details/53116932 select right(sys.fn_VarBinToHexStr(HA ...

  5. 网上看到的一些IT资源

    A.网站模板+logo+服务器主机+发票生成 HTML5 UP:响应式的HTML5和CSS3网站模板. Bootswatch:免费的Bootstrap主题. Templated:收集了845个免费的C ...

  6. spark internal - 作业调度

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 在Spark中作业调度的相关类 ...

  7. read()方法读取的是一个字节,为什么返回是int,而不是byte

    因为字节输入流可以操作任意类型的文件,比如图片音频等,这些文件底层都是以二进制形式的存储的,如果每次读取都返回byte,有可能在读到中间的时候遇到111111111                 那 ...

  8. Linux 常用解压缩归档命令

    linux 常见压缩.归档工具 创建压缩工具 压缩工具 后缀 描述 compress/uncompress .Z 早期工具,现在不常见了 gzip/gunzip .gz 进几年比较火的工具 bzip2 ...

  9. Linux系统捕获数据包流程

    Linux系统捕获数据包流程 为了提高数据包的捕获效率,瓶颈问题是一个需要非常关注的焦点.减少在捕获数据包过程中的瓶颈,就能够提高数据包捕获的整体性能.下面本文将以Linux操作系统为平台,分析捕获数 ...

  10. c#的中英文混合字符串截取 public static string SubString(string inputString, int byteLength)

    /// <summary>        /// c#的中英文混合字符串截取(区分中英文)        /// </summary>        /// <param ...