Python自学笔记9:实操案例六(千年虫,购物流程)

网课传送门:第155,156讲,https://www.bilibili.com/video/BV1Sw411Z779?p=155
1.千年虫

人话:2000年以前,不写年份前两位没事,比如说1991,写个91啥事没有
2000年这种,不写20,就会变成00,计算机整形一处理,0了
所以现在身份证号都从15位变成了18位,包含完整的出生年月日

year=[82,89,88,86,85,00,99]
print('原列表:',year)
for index,value in enumerate(year):if str(value)!='0':year[index]=int('19'+str(value))#不是2000年这种年份的加上19的前缀补全else:year[index]=int('200'+str(value))#2000年这种年份用200补全
#value转换为str之后,字符串拼接,再转换为int
print('修改之后的列表为:',year)
#列表排序
year.sort()
print('排序之后的列表为:',year)

老师这个enumerate用的很巧,这样每个年份又能改变值value加上前缀,还能用index来放入循环遍历
https://blog.csdn.net/qq_32252917/article/details/78174835


还可以统计文件行数,具体可以看看这位码友的博文最后一部分,因为我这暂时用不到,就不细致研究了

2.购物流程

注意这个倒序输出要指定步长,不然会没有输出
老师的单独实验,指定步长为-1:

不指定步长:

lst=[]#商品清单
for i in range(0,5):goods=input('请输入商品编号和商品名称进入商品的入库,每次只能输入一件商品:\n')lst.append(goods)
for item in lst:print(item)cart=[]#购物车
while True:num=input('请输入要购买的商品编号:')for item in lst:if item.find(num)!=-1:#没找到会返回-1cart.append(item)#找到了就加入购物车break;#添加完毕,退出break循环if num=='q':#退出while循环breakprint('您购物车里已经选好的商品为(正序输出):')
for m in cart:print(m)#优化:最新选择的商品在最上面显示,所以要倒着遍历
print('您购物车里已经选好的商品为(倒序输出):')
for i in range(len(cart)-1,-1,-1): #因为到不了-1,所以最后要写-1#需要告知每次步长是多少,不然无法输出print(cart[i])

代码可以的升级方向:
每次入库输入很麻烦,可以封装成一个函数,然后利用文件读写存储,再从磁盘文件种加载进来购买,类似于模拟数据库的一个过程。
我这给出一份自己改的参考代码,应该是实现了商品清单写入文件和读取,本人也是初学菜狗一枚,如果代码有谬误还请多多指教:


创建的读写文件在这:

创建的读写文件在这:

在文件目录里打开如下:

在Pycharm里面打开会发现好像有一些小问题,别着急,后面我们解决

另外,file.write(goods+‘\n’)的\n不能去掉,否则会发生下面的事情:


def CreateShoppingListToFile():with open('ShoppingList.txt', 'w') as file:lst = []#商品清单for i in range(0, 5):goods = input('请输入商品编号和商品名称进入商品的入库,每次只能输入一件商品:\n')lst.append(goods)file.write(goods + "\n")for item in lst:print(item)shoppingList=[]
def ReadShoppingListFromFile():with open('ShoppingList.txt', 'r') as file:for item in file:shoppingList.append(item)def PrintFileShoppingList():print('现有商品列表为:')for item in shoppingList:print(item)cart=[]#购物车
def AddShoppingList():while True:num=input('请输入要购买的商品编号:')for item in shoppingList:if item.find(num)!=-1:#没找到会返回-1cart.append(item)#找到了就加入购物车break;#添加完毕,退出break循环if num=='q':#退出while循环breakdef PrintShoppingList():print('您购物车里已经选好的商品为(正序输出):')for m in cart:print(m)def PrintShoppingListInOrder():#优化:最新选择的商品在最上面显示,所以要倒着遍历print('您购物车里已经选好的商品为(倒序输出):')for i in range(len(cart)-1,-1,-1): #因为到不了-1,所以最后要写-1#需要告知每次步长是多少,不然无法输出print(cart[i])#按逻辑顺序先后调用:
CreateShoppingListToFile()#输入商品信息,创建文件并且写入
ReadShoppingListFromFile()#把文件里面的商品信息读进来
PrintFileShoppingList()#打印读入的商品清单看是否正确
AddShoppingList()#添加需要的商品到购物清单
PrintShoppingList()#正序打印购物清单
PrintShoppingListInOrder()#倒序打印购物清单

至于那个shoppingList在Pycharm里面打开报红色标乱码:python打开文件时提示“File was loaded in the wrong encoding:’UTF-8”
https://www.cnblogs.com/alphabetical/p/14117391.html

(下面的结果是去掉\n之后的bug结果,不用管他,看上面就行,已经不报错了)

操作步骤:


如果一不小心把这个删了,没关系,点一下这个reset就回来了(鼠标滑过才会出现reset)

Python自学笔记9:实操案例六(千年虫,购物流程)相关推荐

  1. Python 自学笔记(教程)(七)

    Python 自学笔记(教程)(七) 代码 代码讲解 import time time.sleep() random random.randint() % 传送门 代码 今天的笔记很简单,就用课程作业 ...

  2. Python自学笔记6:实操案例三(十进制转换二、八、十六进制),手机充值,计算能量消耗,预测未来子女身高

    Python自学笔记6:实操案例三(十进制转换二.八.十六进制),手机充值,计算能量消耗,预测未来子女身高 杨淑娟老师网课传送门(非广告):https://www.bilibili.com/video ...

  3. Python自学笔记10:实操案例七(根据星座测试性格特点、模拟12306火车订票下单)

    Python自学笔记10:实操案例七(根据星座测试性格特点.模拟12306火车订票下单) 网课传送门:https://www.bilibili.com/video/BV1Sw411Z779?p=157 ...

  4. Python自学笔记5:实操案例二(输出出版图书信息、《红楼梦》五位人名、图书音像勋章、身体指标)

    Python自学笔记4:实操案例二(输出出版图书信息.<红楼梦>五位人名.图书音像勋章.身体指标) 1.输出出版图书信息 这个没啥难度,就是定义变量然后输出,注意调整格式就行 book_n ...

  5. Python学习笔记7:实操案例四(支付密码的验证,模拟QQ账号登录,商品价格竞猜,星座看运势)

    Python学习笔记7:实操案例四(支付密码的验证,模拟QQ账号登录,商品价格竞猜,星座看运势) 1.支付密码的验证: 这个主要就是调用isdigit()函数判断字符串是不是全是数字组成. pwd=i ...

  6. Python学习笔记17:实操案例十四(模拟高铁售票系统,推算几天后的日期)

    Python学习笔记17:实操案例十四(模拟高铁售票系统,推算几天后的日期) 1.模拟高铁售票系统 使用漂亮的表格模块PrettyTable 这个模块需要预先安装,不然直接导入会报错: 安装办法: h ...

  7. Python学习笔记18:实操案例十五(记录用户登录日志,模拟淘宝客服自动回复)

    Python学习笔记18:实操案例十五(记录用户登录日志,模拟淘宝客服自动回复) 网课传送门:https://www.bilibili.com/video/BV1Sw411Z779?p=168& ...

  8. Python学习笔记16:实操案例十三(编写程序实现乐手弹奏乐器,设计自定义类表达出租车和家用轿车信息)

    Python学习笔记16:实操案例十三(编写程序实现乐手弹奏乐器,设计自定义类表达出租车和家用轿车信息) 1.编写程序实现乐手弹奏乐器 注意Python的多态是"鸭子类型",只要有 ...

  9. python训练营朋友圈广告如何发_如何发朋友圈广告?三个实操案例

    本文分析了朋友圈发广告的要点,以及用三个实操案例做了说明. 你是否在你的朋友圈中发过"小广告"? 在朋友圈中发小广告,现在已经不算什么新鲜事了.那么作为现在出现在朋友圈中最为普遍的 ...

最新文章

  1. Recover Binary Search Tree
  2. android vlc eclipse,在Eclipse下导入vlc-android并编译
  3. SQL 语句之insert语句插入数据:若表中有重复的主键或数据继续插入解决方案
  4. linux 下 grep -c sh* /etc/passwd,Linux文本处理三剑客--grep
  5. 前端就业之vue介绍
  6. linux修改http版本信息,动态库中的soname中版本号的修改
  7. “NTLDR is missing”和”NTLDR is compressed”的解决办法
  8. WEB前端开发书籍推荐
  9. python 二分类的实例_Python深度学习案例1--电影评论分类(二分类问题)
  10. 基于Netty和Java的GUI界面实现在线聊天室软件
  11. 新时期文学专题研究【1】
  12. 台式计算机睡眠状态功率,电脑选择待机休眠的时候大约耗电功率是多少W?
  13. Lizard工具的使用
  14. win10linux双系统引导设置,win10 + Ubuntu20.04 LTS双系统引导界面美化
  15. Macbook Pro开机黑屏如何自查问题
  16. JavaSpring全面总结
  17. 对比一下各大博客的优缺点
  18. C++中模板类中的成员函数以及模板函数在类外定义
  19. 蓝牙跳频算法分析【经典蓝牙 vs BLE 4.x vs BT 5.0 BLE部分】
  20. C#实现对Sqlite数据库的通用操作

热门文章

  1. 响应式建材建筑装修类网站模板源码
  2. win7开机出现修复计算机,win7开机提示系统自动修复无法正常进入的原因分析及解决...
  3. 19 Android中图片处理原理篇,关于人脸识别网站,图片加载到内存,图片缩放,图片翻转倒置,网上撕衣服游戏案例编写
  4. Karl Hessenberg:德国数学家的传奇一生
  5. python 欧氏距离_python - 如何用NumPy计算欧氏距离?
  6. 【机器学习】基于天气数据集的XGBoost分类与预测
  7. 人教版用计算机娱乐,学习娱乐两不误!这四款高质量软件让教育事半功倍
  8. 游戏编辑器制作(2)
  9. BootStrap自适应Table表格固定左边第一列
  10. pb网络编程_可在家中建立三个区域聆听空间,Integra DRX3.3 9.2声道网络影音接收机...