本文章记录观看B站python教程学习笔记和实践感悟,视频链接:【花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)】 https://www.bilibili.com/video/BV1wD4y1o7AS/?p=6&share_source=copy_web&vd_source=404581381724503685cb98601d6706fb
上节课学习了集合的创建与删除,集合的操作符,集合的操作方法及集合的遍历,Python3.11的新特性,本章总结,本节课学习本单元的四个实战题,分别是实战一千年虫是什么虫,实战二模拟京东的购物流程,实战三模拟12306购票流程,实战四模拟手机通讯录。
1.实战一:千年虫是什么虫
分析题目,发现第五个成了一个0,这是因为在列表中,两个0会被显示成一个0,因此别的只需要补上两位数,而2000需要补上200(三位数),实现:
lst=[88,89,90,98,00,99] #表示的员工的两位整数
print(lst)
#遍历列表的方式
for index in range(len(lst)):
if str(lst[index])!='0': #这行代码的意思是根据索引取值,判断是否这个索引的对应值不是0
lst[index]='19'+str(lst[index]) #如果不是0.就在这些不是0的字符串前面拼凑上19
else:
lst[index]='200'+str(lst[index])
print('修改后的年份列表',lst)
结果是:
方法二是利用enumerate()函数重新建立一个文件,输入以下代码:
#方式二:使用enumerate(),会同时输出索引和元素
#enumerate() 函数的作用是将一个可遍历或可迭代的对象按照设置的序号组成一个索引序列
lst=[88,89,90,98,00,99] #表示的员工的两位整数
print(lst)
for index,value in enumerate(lst):
if str(lst[index])!='0': #根据索引取值判断是否这个索引的对应值不是0
lst[index]='19'+str(value) #判断的是value,如果不是0.就在这些不是0的字符串前面拼凑上19
else:
lst[index]='200'+str(lst[index])
print('修改后的年份列表',lst)
结果是:
2.实战二模拟京东的购物流程
分析题设条件以及截图,它要求一共有5个商品,所以可以用for循环遍历range来实现、而购物车中的选购要求,是q循环结束,所以需要用到无限循环while函数,代码实现如下:
#第一步:创建一个空列表,用于存储入库的商品信息
lst=[]
for i in range(5): #循环执行五次向列表里面填充物品
goods=input('请输入商品的编号和商品的名称进行商品入库,每次只能输入一件商品:')
lst.append(goods)
#第二步:输出所有的商品信息
for item in lst:
print(item)
#第三步:创建一个空列表,用于存储购物车中的商品
cart=[]
while True: #直到输入quit结束,因此是一个无限循环
flag=False #flag是一个布尔型变量,代表没有商品的情况
num=input('请输入要购买的商品编号:')
#遍历商品列表,查询一下要购买的商品是否存在
for item in lst:
if num==item[0:4]: #切片操作,从商品中切出序号
flag=True #代表商品已找到
cart.append(item) #添加到购物车中
print('商品已成功添加到购物车')
break #退出for循环
if not flag and num!='q': #not flag等价于flag==False
print('商品不存在')
if num=='q':
break #此时退出的才是while循环
print('-'*50)
print('您购物车里已选择的商品为:')
cart.reverse() #根据截图的题目要求,必须是在后面添加的排在购物车最上面
for item in cart:
print(item)
结果:
3.实战三:模拟12306购票流程
在该题目中,可以选择列表,字典,或者两者组合。先把数据存放到组合数据类型中,再选择要购买的车次,根据键取值。代码如下:
#创建字典用于存储车票信息,使用车次作key,使用其他信息作value
dict_ticket={
'G1569':['北京南-天津南','18:06','18:39','00:33'],
'G1567':['北京南-天津南','18:15','18:49','00:34'],
'G8917':['北京南-天津西','18:20','18:19','00:59'],
'G203':['北京南-天津南','18:35','19:09','00:34']
}
print('车次 出发站-到达站 出发时间 到达时间 历时时长')
#遍历字典中的元素
for key in dict_ticket.keys():
print(key,end=' ')#为什么不换行,因为车次之间的详细信息在一行内显示
#根据key获取出来的值是一个列表
for item in dict_ticket.get(key):#根据key获取值
print(item,end='\t\t')
#换行
print()
#输入用户的购票车次
train_no=input('请输入要购买的车次:')
#根据key获取值
info=dict_ticket.get(train_no,'车次不存在') #info是一个列表类型
#判断车次是否存在
if info!='车次不存在':
person=input('请输入乘车人,如果是多位乘车人请用逗号分隔:')
#获取车次的出发站-到达站,到达时间
s=info[0]+' '+info[1]+'开'
print('您已购买了车次号'+train_no+' '+s+',请'+person+'尽快获取纸质车票,【铁路客服】')
else:
print('购买的车次不存在')
运行结果如下:
代码及注释如下:
#创建一个空集合
s=set()
#录入五位好友的姓名和手机号
for i in range(5):
info=input(f'请输入第{i}位好友的姓名与手机号')
#添加到集合中
s.add(info)
#遍历集合
for item in s:
print(item)
运行结果:
本节完