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 应用小程序界面 具体代码 ...
随机推荐
- javaweb:判断当前请求是否为移动设备访问
http://blog.csdn.net/educast/article/details/71157932
- 使用Spring Mvc 转发 带着模板 父页面 之解决方法 decorators.xml
周末了,周一布置的任务还没完毕,卡在了页面跳转上,接手了一个半截的项目要进行开发,之前没有人给培训.全靠自己爬代码,所以进度比較慢.并且加上之前没实用过 Spring Mvc 开发项目.所以有点吃力, ...
- Android 学习笔记进阶十二之裁截图片
package xiaosi.cut; import java.io.File; import android.app.Activity; import android.content.Intent; ...
- 54.nodejs nodemailer不兼容
转自:https://blog.csdn.net/q36835109/article/details/53067917 注:由于本人使用最新版本的nodemailer不兼容,所以目前使用的是0.7.1 ...
- 最短路 spfa, dijkstra, Floyd
spfa #include <stdio.h> #include <queue> using namespace std; #define RANGE 101 #define ...
- c# for 和 foreach
1给定长度 不需要计算长度的 for比foreach循环效率高 2 在不确定长度 或者计算长度有性能损耗的时候 用foreach比较方便 2336 循环语句是编程的基本语句,在C#中除了沿用C语言的循 ...
- linux awk函数
这节详细介绍awk内置函数,主要分以下3种类似:算数函数.字符串函数.其它一般函数.时间函数 一.算术函数: 以下算术函数执行与 C 语言中名称相同的子例程相同的操作: 函数名 说明 atan2( y ...
- Java设计模式23种(搞笑版) (转)
昨天做了一下支付宝的笔试题目被打击了,大量的逻辑推理和数学规律运算题目,其中还有问道Java设计模式的题目,一点都不知道,今天看到一份不错的介绍,非常好理解,作者是谁我没有办法考证,但是所有权 ...
- android抓取各种log的方法
1.logcat (四类log buffer是main,radio.system.events) adb wait-for-device logcat adb logcat -v time > ...
- 分析深圳电信的新型HTTP劫持方式
昨天深圳下了一天的暴雨,2014年的雨水真是够多的. 用户的资源就是金钱,怎的也要好好利用嘛不是? ISP的劫持手段真是花样百出.从曾经的DNS(污染)劫持到后来的共享检測.无不通过劫持正常的请求来达 ...