1、“千年虫”是什么虫?
"""
需求:已知一个列表中存储的是员工的出生年份[88,89,90.98,00,99]
由于时间比较久,出生的年份均为两位整数,现需要2位年份前加
19,如果年份是00,将需要加上200
"""
下面的代码中分别通过range() 和 enumerate() 达到需求,可供彦祖们参考。
# (1)创建一个列表,存储年份
lst=[88,89,90,98,00,99] # 表示员工的出生年份
print(lst,type(lst[0])) # [88, 89, 90, 98, 0, 99]
# <class 'int'>
# # (2)拼接字符串‘+’
# # 遍历列表 1 range()
# for i in range(len(lst)):
# if str(lst[i])!='0': # 比较时,遵循:字符串比字符串,整型比整型的原则
# lst[i]=int('19'+str(lst[i])) # 因为要进行拼接操作,所以将整型元素转换为字符串
# else:
# lst[i]=int('20'+str((lst[i]))) # int()是为了重新将拼接后的字符串转换为整形
# 若作为str型输出:['1988', '1989', '1990', '1998', '2000', '1999']
# print('修改后的年份列表:',lst) #
# 遍历列表 2 enumerate()
for index,value in enumerate(lst):
if str(lst[index]) != '0':
lst[index]=int('19'+str(value))
else:
lst[index]=int('200'+str(value))
print('修改后的年份列表:',lst)
输出结果:
[88, 89, 90, 98, 0, 99] <class 'int'>
修改后的年份列表: [1988, 1989, 1990, 1998, 2000, 1999]
2、模拟京东购物流程
"""
需求:从键盘录入五个商品信息添加到商品列表中,展示商品信息,
提示用户选择商品,用户选中的商品添加到购物车中(购物车中的商品要逆序),
用户选中不存在需要有相应提示,当用户输入‘q’时循环结束,显示购物车中的商品
"""
# (1)录入五个商品信息添加到列表中,展示商品信息
lst=[] # 录入信息的空列表
for i in range(5):
goods=input('请输入商品的编号和商品的名称就行商品入库,每次只能输入一件商品:')
lst.append(goods)
# 展示商品信息
print('-'*10+'当前的商品信息为:'+'-'*10)
for i in lst:
print(i)
# (2)提示用户选择商品,用户选中的商品添加到购物车中(购物和中的商品要逆序)
# print('-'*10+'请选择您的商品'+'-'*10)
cart=[] # 创建一个空列表,用于储存购买商品的编号
while True:
flag=False # 代表没有商品的情况
num=input('你需要的商品编号是:')
# 遍历商品列表
for i in lst:
if num==i[0:4:]:
flag=True # 代表商品已找到,继续进行while循环
cart.append(i)
print('已找到该商品',lst[i])
break # 退出for循环
# (3)用户选中不存在进行提示
if not flag and num!='q': # 表示找不到商品但未输入‘q’退出的情况
print('该商品不存在')
# (4)输入q结束循环,break
if num=='q':
break # 退出while循环
# (5)显示购物车中的商品,还要求逆序输出cart.reverse()
# 遍历操作
cart.reverse()
print('-'*20+'目前购物车中的商品为:'+'-'*20)
for i in cart:
print(i)
输出结果:
请输入商品的编号和商品的名称就行商品入库,每次只能输入一件商品:1001手机
请输入商品的编号和商品的名称就行商品入库,每次只能输入一件商品:1004bellycat
请输入商品的编号和商品的名称就行商品入库,每次只能输入一件商品:1003迪迦
请输入商品的编号和商品的名称就行商品入库,每次只能输入一件商品:1002龙骑
请输入商品的编号和商品的名称就行商品入库,每次只能输入一件商品:1005四八六
----------当前的商品信息为:----------
1001手机
1004bellycat
1003迪迦
1002龙骑
1005四八六
你需要的商品编号是:1003
已找到该商品
你需要的商品编号是:1002
已找到该商品
你需要的商品编号是:q
--------------------目前购物车中的商品为:--------------------
1002龙骑
1003迪迦
3、模拟12306火车票订票流程(古早版本)
解包操作的简单介绍
解包操作(Unpacking) 是 Python 中一种强大的特性,用于将可迭代对象(如列表、元组、字典等)的元素分解为独立的变量或参数。解包操作可以简化代码,使其更清晰、更易读。
-
元素数量匹配
解包时,变量的数量必须与可迭代对象的元素数量匹配,否则会抛出ValueError。 -
*和**的使用-
*用于解包列表、元组等可迭代对象。 -
**用于解包字典。
-
-
性能优化
解包操作是高效的,适用于处理小型数据集。
订票流程
"""
需求:假设北京到天津有以下4个车次可供选择
,用户选择索要购买的车次,进行购票进站
"""
# 创建字典 dict={ket:value} value的格式可以为列表:["","",""]
from collections.abc import dict_keys
dict_ticket={
'G1569':['北京南-天津南',' 18:06',' 18:39',' 00:33'],
'G1567':['北京南-天津南',' 18:15',' 18:49',' 00:34'],
'G8917':['北京南-天津西',' 18:20',' 19:19',' 00:59'],
'G203':[' 北京南-天津南',' 18:35',' 19:09',' 00:34']
}
print('车次 出发站 出发时间 到达时间隔 历经时长')
# 遍历字典
# # 方式1 遍历1次,直接返回键值对
# for item,value in dict_ticket.items():
# print(item,*value) # *value是解包操作,在这里将列表解包输出,去掉[]
# # value-->['北京南-天津南', ' 18:06', ' 18:39', ' 00:33']
# # 北京南-天津南 18:06 18:39 00:33
# 方式2 遍历两次,先获取key,在获取value
for key in dict_ticket.keys():
print(key,end='\t')
for value in dict_ticket.get(key):
print(value,end='')
print() # 换行
# 输入用户要购买的车次
train_no=input('请输入你要购买的车次:')
# 根据key获取值
info=dict_ticket.get(train_no,'车次不存在') # .get() info是一个列表
if info!='车次不存在':
person=input('请输入乘车人,如果是多位乘车人使用逗号分隔:')
# 用s表示组合一个字符串
s=info[0]+info[1]
print('您已经购买了'+train_no+s+' 开,请:'+person+'尽快领取纸质车票。【铁路客服】')
else:
print('对不起,您选择的车次可能不存在')
输出结果:
车次 出发站 出发时间 到达时间隔 历经时长
G1569 北京南-天津南 18:06 18:39 00:33
G1567 北京南-天津南 18:15 18:49 00:34
G8917 北京南-天津西 18:20 19:19 00:59
G203 北京南-天津南 18:35 19:09 00:34
请输入你要购买的车次:G203
请输入乘车人,如果是多位乘车人使用逗号分隔:鸣人,佐助
您已经购买了G203 北京南-天津南 18:35 开,请:鸣人,佐助尽快领取纸质车票。【铁路客服】
4、模拟手机通讯录
"""
# 模拟手机通讯录
# 需求:从键盘录入5位好友的姓名和电话,由于通讯录是无序的,所以可以使用集合效果来实现
"""
# (1)创建一个集合,用来录入姓名和电话
s=set()
for i in range(1,6):
print(f'请输入第{i}位好友的性能与手机号码:',end='') # 不换行输出
name_no=input()
s.add(name_no)
# (2)遍历输出
print(s)
for i in s:
print(i)
for index,i in enumerate(s,start=1):
print(index,'-->',i)
输出结果:
请输入第1位好友的性能与手机号码:奥拉夫124567
请输入第2位好友的性能与手机号码:皇子345678
请输入第3位好友的性能与手机号码:王五
请输入第4位好友的性能与手机号码:赵六345678
请输入第5位好友的性能与手机号码:迪迦123456
{'赵六345678', '皇子345678', '迪迦123456', '奥拉夫124567', '王五'}
赵六345678
皇子345678
迪迦123456
奥拉夫124567
王五
1 --> 赵六345678
2 --> 皇子345678
3 --> 迪迦123456
4 --> 奥拉夫124567
5 --> 王五
若有错误,敬请批评指正。

416

被折叠的 条评论
为什么被折叠?



