当前位置: 首页 > 编程日记 > 正文

Day2 - Python基础2作业【文件操作--购物车程序(用户操作及商户操作)】

 1 # ----user.txt----
 2 
 3 {'已购商品': '', '消费记录': '', '余额': 0}
 4 
 5 
 6 # ----commodity.txt----
 7 
 8 iPhone,5000
 9 HuaWei,3000
10 XiaoMi,2000
11 oppo,1000
  1 #/usr/bin/env python
  2 #-*- coding:utf-8 -*-
  3 # Day2/file_shopping.py
  4 
  5 _author_ = 'hepidong'
  6 
  7 import time
  8 
  9 # ---------------------------------------- #
 10 # 程序:购物车-用户入口
 11 # 需求:
 12 # 商品信息保存在文件中
 13 # 已购商品,余额记录
 14 
 15 
 16 def user():
 17     "购物车-用户"
 18     for key in uu:
 19         print ('您的%s:%s' % (key, uu[key]))
 20         if key == '余额':
 21             balance = uu[key]
 22         elif key == '已购商品':
 23             if uu[key] == '':
 24                 ShoppingCart = []
 25                 continue
 26             else:
 27                 ShoppingCart = [uu[key]]
 28         elif key == '消费记录':
 29             if uu[key] == '':
 30                 record = []
 31                 continue
 32             else:
 33                 record = [uu[key]]
 34 
 35     salay = int(input('请输入您的工资:'))
 36     balance += salay
 37     uu['余额'] = balance 
 38     uw = open('user.txt', 'w', encoding='utf-8')
 39     uw.write(str(uu))
 40     uw.close()
 41 
 42     while True:
 43         comm = com.split('\n')
 44         commm = []
 45         for i in comm:
 46             if i == '':
 47                 break
 48             commm.append(i.split(','))
 49 
 50         for i in commm:
 51             num = commm.index(i)
 52             print (num + 1,'-', i)
 53     
 54         your_num = input("请选择商品编号(q退出):")
 55         if your_num.isdigit(): # 判断是否为数字
 56             your_num = int(your_num)
 57             if your_num <= len(commm):
 58                 if int(commm[your_num - 1][1]) <= balance:
 59                     balance = balance - int(commm[your_num - 1][1])
 60                     ShoppingCart.append(commm[your_num -1])
 61                     print ('购买成功!')
 62                 elif int(commm[your_num - 1][1]) > balance:
 63                     print ('您的余额已不足购买本商品!请重新选择或退出(q)')
 64                 else:
 65                     print ('输入错误,请重新输入!')
 66                     continue
 67         elif your_num == 'q':
 68             print ('您已购买了', ShoppingCart)
 69             print ('购物结束,您的余额为%d元。' % balance)
 70             uu['余额'] = balance 
 71             shop = []
 72             record_new = []
 73             for i in range(len(ShoppingCart)):
 74                 if len(ShoppingCart[i]) == 2: 
 75                     shop.append(ShoppingCart[i][0])
 76                     record_new.append((time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), ShoppingCart[i]))
 77                 else:
 78                     shop.append(ShoppingCart[i])
 79             uu['已购商品'] = shop
 80             uu['消费记录'] = record_new
 81             uw = open('user.txt', 'w', encoding='utf-8')
 82             uw.write(str(uu))
 83             uw.close()                    
 84             exit()
 85         else:
 86             print ('输入错误,请重新输入!')
 87             continue
 88 
 89     uu['余额'] = balance 
 90     uu[key] = ShoppingCart
 91     uw = open('user.txt', 'w', encoding='utf-8')
 92     uw.write(str(uu))
 93     uw.close()
 94 
 95 
 96 
 97 # ---------------------------------------- #
 98 # 程序:购物-商家入口
 99 # 需求:
100 # 可以添加商品,修改商品价格
101 
102 def commodity():
103     "商家入口"
104     while True:
105         print ("add. 增加商品\nupdata. 修改商品价格\nq. 退出")
106         ss = input('请选择操作:')
107         if ss == 'add':
108             comm_name = input("商品名称:")
109             comm_sum = input('商品金额:')
110             c.write('\n' + comm_name + ', ' + comm_sum)
111             c.flush()
112         elif ss == 'updata':
113             up_name = input("修改的商品名称:")
114             up_sum = input("修改金额为:")
115             up_data = ''
116             c.seek(0)
117             for line in c:
118                 if up_name in line:
119                     line = line.replace(line, (up_name + ',' + up_sum + '\n'))
120                 up_data += line
121             with open('commodity.txt', 'w+', encoding='utf-8') as cs:
122                 cs.write(up_data)
123                 cs.flush()
124         elif ss == 'q':
125             exit()
126         else:
127             print ('输入错误,请重新输入!')
128             continue
129 
130 
131 
132 
133 # ---------------------------------------- #
134 # 程序:启动
135 
136 u = open('user.txt', 'r+', encoding='utf-8') # 用户信息
137 c = open('commodity.txt', 'r+', encoding='utf-8') # 商品信息
138 # with open('user.txt', 'r+', encoding = 'utf-8') as u:
139 # with open('commodity.txt', 'r+',encoding = 'utf-8') as c:
140     
141 com = c.read()
142 uu = eval(u.read())
143 
144 while True:
145     print ('1. 用户\n2. 商家')
146     x = input('请选择角色(q退出):')
147     if x == '1':
148         user()
149     elif x == '2':
150         commodity()
151     elif x == 'q':
152         exit()
153     else:
154         print ('输入错误,请重新输入!')
155 
156 
157 u.close()
158 c.close()

 

转载于:https://www.cnblogs.com/hepidong/p/8074717.html

相关文章:

【直播】林锦弘:CV赛事高分经验分享

CV赛事高分经验分享 直播信息 分享嘉宾&#xff1a;林锦弘&#xff0c;威斯康星麦迪逊大学&#xff0c;多赛事top10开源方案贡献者。 直播时间&#xff1a;2021年07月29日 20:00 直播内容&#xff1a; 计算机视觉比赛通用流程Top10方案讲解交流&答疑 直播网址&#xf…

UI培训教程分享:APP图标设计的6种风格都有哪些?

在从事UI设计师这个岗位的时候&#xff0c;相信大家会经常遇到关于产品设计的工作&#xff0c;尤其是APP图标这块&#xff0c;在日常工作中&#xff0c;常见的图标风格主要有渐变风格、剪影风格、长投影风格、卡通风格、轻质感风格和拟物风格6种。今天小编就为大家详细的介绍一…

图片基础知识梳理(3) BitmapBitmapFactory 解析

一、概述 今天这篇文章我们来了解一下两个类&#xff1a; BitmapBitmapFactory二、Bitmap 2.1 创建Bitmap 通过Bitmap的源码&#xff0c;我们可以看到它内部提供了很多.createBitmap(xxx)的静态方法&#xff0c;我们可以通过这些方法来获得一个Bitmap&#xff1a; 上述的方法最…

电路实验1-电容充放电

转载于:https://www.cnblogs.com/cutepig/archive/2013/01/17/2865289.html

【直播】陈信达:零基础计算机视觉之机器学习基础

零基础计算机视觉之机器学习基础 直播信息 分享嘉宾&#xff1a;陈信达&#xff0c;Datawhale成员&#xff0c;上海科技大学硕士。 直播时间&#xff1a;2021年07月30日 20:00 直播内容&#xff1a; 线性回归与指针读数识别逻辑回归原理与代码选讲人工神经网络与Fashion-MN…

UI培训分享:如何成为一名优秀的UI设计师

UI设计师在工作岗位中也是分等级的&#xff0c;如何成为一名优秀的UI设计师在如今的职业发展中是非常有必要的&#xff0c;各行各业都在内卷中&#xff0c;那么如何成为一名优秀的UI设计师呢?来看看下面的详细介绍。 UI培训分享&#xff1a;如何成为一名优秀的UI设计师? 好UI…

POJ 2418 Hardwood Species(trie 树)

题目链接 开始想用map的&#xff0c;字典序不会搞&#xff0c;还是老老实实的用trie树把。好久没写了&#xff0c;忘得差不多了。 1 #include <iostream>2 #include <cstdio>3 #include <cstdlib>4 #include <cstring>5 #include <map>6 #includ…

白盒测试实践-任务完成

这次的白盒测试实践已经圆满完成&#xff0c;每个人都分配到了相应的任务&#xff0c;并对各自的任务进行了具体的落实。 分配情况如下&#xff1a; 阶段任务名称任务负责人阶段一测试用例清单安秀芳阶段二静态评审罗阳刚、周成阶段三自动化静态检查滕怡天阶段四基于JUnit的单元…

【第23周复盘】懒癌犯了,拖到今天!

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

软件测试培训分享:软件测试的职业发展方向有哪些

很多人都觉得软件测试在互联网行业入门是比较轻松的&#xff0c;对于如此轻松的行业&#xff0c;它所在的职业发展前景怎么样呢?软件测试的职业发展方向有哪些呢?本期软件测试培训分享内容请看以下详细介绍。 软件测试的职业发展方向有哪些?职业的选择对于现在的年轻人来说相…

【青少年编程】【三级】换装

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

转程序员,都去写一写前端代码吧

转自: http://www.oschina.net/news/36972/programmer-write-frond-end-code 你可以认为我是一个极端的人&#xff0c;就像有许多人专注于自己的领域而不屑于其它“肤浅”的工作范畴一样。比如我见过不少认为做portal没有技术含量的 判定&#xff0c;做工程都是充满苦逼行为的言…

大数据之公开数据的价值

2019独角兽企业重金招聘Python工程师标准>>> 大数据按照访问权限来划分&#xff0c;可分为私有数据和公开数据。私有数据不是每个人都能够自由访问调用的数据&#xff0c;例如银行交易记录、抵押信息、医疗数据、通讯数据、电商交易数据等等。私有数据因其私有性&am…

UI培训教程分享:Ui设计的细节规范有哪些需要注意?

在职场中&#xff0c;有很多UI设计师是零经验的&#xff0c;都是刚学会技术就来入职的&#xff0c;与经验丰富的其他成员来说&#xff0c;新人一定要提高自己的工作能力&#xff0c;本篇UI培训教程为大家分享的是Ui设计的细节规范有哪些需要注意?希望能给大家在工作中带来帮助…

linux 安装输入法

IBus IBus是一个框架&#xff0c;支持多种输入法 IBus输入法安装和设置 IBus是一个框架&#xff0c;支持多种输入法。安裝IBus框架&#xff1a; 在终端输入: sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4 启用IBus框架&#xff1a; 在终端输入: im-swi…

记录在Spring-Boot中使用Fegin调用RESTfull的PATCH方法设置

使用了ZooKeeper&#xff0c;设置 spring.cloud.zookeeper.dependency.headers.enabledfalse 参考&#xff1a; https://github.com/spring-cloud/spring-cloud-netflix/issues/2550#issuecomment-353230054 http://blog.csdn.net/menggudaoke/article/details/77884674>如有…

【青少年编程】【四级】词语接龙

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

Python培训教程分享:有哪些值得使用的爬虫开源项目?

相信很多同学在学习Python技术的时候&#xff0c;都有学习到Python爬虫技术&#xff0c;爬虫技术在各大互联网公司都是非常常见的&#xff0c;可以帮助我们获取各种网站的信息&#xff0c;比如微博、B站、知乎等&#xff0c;本篇Python培训教程分享为大家整理了几个Python爬虫项…

apue学习之文件IO第二部分

学习apue课程已经有一个多月了&#xff0c;有很多知识点需要自己去总结: 下面是主要的几个函数的介绍: 1-stat()函数是获得文件的主要信息。在linux当中主要以一个结构体来保存文件的信息&#xff0c;其中每一个字段都代表着文件的一个信息量: struct stat {dev_t st_dev; …

LSGO软件技术团队招新

团队招新 LSGO软件技术团队&#xff08;Dreamtech算法组&#xff09;成立于2010年09月&#xff0c;团队主要从事地理信息系统、管理信息系统、计算机视觉等领域的应用开发&#xff0c;团队同时具有培养学生的重要职能&#xff0c;毕业学生分布在IBM、百度、阿里、腾讯、京东、…

java一个月日历

项目需要&#xff0c;获取当天之后的30天&#xff0c;并提示星期几&#xff08;周几&#xff09;&#xff0c;写了一个工具类 /** 计算日期时间author shijing2015年8月10日下午2:16:09param date 传入的需要计算的日期param timeWay 计算方式&#xff08;年、月、周、日&#…

UI培训分享:学UI设计需要知道哪些事情?

很多同学都想要学习UI设计技术&#xff0c;因为UI设计行业的发展前景非常不错&#xff0c;通过成为一名合格的UI设计师能够够更好的进入到互联网行业&#xff0c;那么学UI设计需要知道哪些事情呢?先来看看下面的详细介绍。 UI培训分享&#xff1a;学UI设计需要知道哪些事情? …

Web开发的那点事--数据持久层常用功能

CSDN博客不再经常更新&#xff0c;更多优质文章请来 粉丝联盟网 FansUnion.cn! (FansUnion) 数据持久层--4类功能 1.增加 增加一条记录-实体&#xff08;有关联&#xff0c;没有关联&#xff09; 2.修改 修改一个字段 修改多个字段 修改哪一列或哪些列&#xff1a;wher…

Dotfuscator代码混淆工具的使用

关于Dotfuscator&#xff0c;VS自带了一个社区版的源代码保护工具&#xff0c;不过它只有基本的混淆命名的功能。专业版功能很多&#xff0c;可以混淆流程&#xff0c;密字符串&#xff0c;加入水印&#xff0c;程序签名等。 工具/原料 Dotfuscator Professional Edition 4.9方…

【青少年编程(第24周)】Python-Turtle组队学习结营!

2021年08月01日&#xff08;周日&#xff09;晚20:00我们在青少年编程竞赛交流群开展了第二十四次直播活动。我们直播活动的主要内容如下&#xff1a; 首先&#xff0c;我们奖励了上周测试超过60分的小朋友。 其次&#xff0c;讲解了上次测试中小朋友们做错的题目。 最后&…

参加完Python培训后有哪些就业方向

很多学习Python技术的同学都是为了后面能够找到一个好的工作&#xff0c;对于大家来说了解了Python的就业方向&#xff0c;后面就可以根据自己的能力来选择对应的工作岗位了&#xff0c;那么下面小编就为大家详细的介绍一下参加完Python培训后有哪些就业方向? 参加完Python培训…

June:Datawhale开源学习小程序升级啦!

1. 开源学习小程序的使用 我们通过七个视频来介绍如何使用Datawhale开源学习小程序。 第一个视频&#xff1a;完善个人信息报名 组队学习报名前&#xff0c;请大家完善个人信息的填写&#xff0c;便于结课后证书发放。 切换到组队学习页面&#xff0c;进入当前营期&#xf…

mybatis-错误记录java.lang.ExceptionInInitializerError

今天刚学习mybatis&#xff0c;遇到了一个错误&#xff0c;纠结了半天的时间&#xff0c;所以将发现的问题和解决得方法写一下。 错误信息如下&#xff1a; java.lang.ExceptionInInitializerErrorat com.ibatis.po.TestSysArea.testInsert(TestSysArea.java:31)at sun.reflect…

解决ScrollView嵌套ListView高度的问题

2019独角兽企业重金招聘Python工程师标准>>> public static void setListViewHeight(ListView listView) {ListAdapter listAdapter listView.getAdapter();int totalHeight 0;for (int i 0; i < listAdapter.getCount(); i) {View listItem listAdapter.get…

UI培训教程分享:UI设计如何确定设计风格

在UI设计工作岗位中&#xff0c;进行设计工作的时候&#xff0c;UI设计师门需要对整体的设计要素进行把控&#xff0c;这样才能设计出优秀的设计作品&#xff0c;本期小编为大家介绍的UI培训教程就是关于UI设计如何确定设计风格&#xff0c;希望以下内容能够给大家带来帮助。 U…