Python入门-实战练习-基于组合数据类型

发布时间:2023年12月29日

1.千年虫

已知一个列表中存储的事员工的出生年份[88,89,90,98,00,99]
由于时间比较久,出生的年份均为2为整数,现需要2为你啊分前加19,如果年份是00,需要加上200

lst=[88,89,90,98,00,99]  #表示员工的两位整数出生年份
print(lst)

#遍历列表的方式
for index in range(len(lst)):
    if str(lst[index])!='0':
        lst[index]='19'+str(lst[index])
    else:
        lst[index]='200'+str(lst[index])

print('修改后的年份:',lst)

运行结果

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap5\实战-千年虫.py 
[88, 89, 90, 98, 0, 99]
修改后的年份: ['1988', '1989', '1990', '1998', '2000', '1999']

2.模拟京东购物流程

键盘录入5个商品(1001手机)添加到商品列表中,展示商品信息
提示用户选择商品,用户选中的商品添加到购物车中(购物车中的商品要逆序)
用户选中的商品不存在需要有相应的提示,当用户输入“q”时循环结束,显示购物车中的商品

#创建一个空列表,用于存入入库的商品信息
lst=[]

for i in range(5):
    goods=input('请输入商品的编号和商品的名称进行商品入库,每次只能输入一件商品:')
    lst.append(goods)

#输出所有的商品信息
for item in lst:
    print(item)

#创建一个空列表,用于存储购物车中的商品
cart=[]
while True:
    flag=False #代表没有商品的情况
    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

print('-'*55)

print('购物车中已选择的商品为:')
cart.reverse()
for item in cart:
    print(item)

运行结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap5\实战-模拟京东购物流程.py 
请输入商品的编号和商品的名称进行商品入库,每次只能输入一件商品:1001手机
请输入商品的编号和商品的名称进行商品入库,每次只能输入一件商品:1002电脑
请输入商品的编号和商品的名称进行商品入库,每次只能输入一件商品:1003鼠标
请输入商品的编号和商品的名称进行商品入库,每次只能输入一件商品:1004猫粮
请输入商品的编号和商品的名称进行商品入库,每次只能输入一件商品:1005猫砂
1001手机
1002电脑
1003鼠标
1004猫粮
1005猫砂
请输入要购买的商品编号:1001
商品成功添加到购物车
请输入要购买的商品编号:1002
商品成功添加到购物车
请输入要购买的商品编号:1003
商品成功添加到购物车
请输入要购买的商品编号:1004
商品成功添加到购物车
请输入要购买的商品编号:1008
商品不存在
请输入要购买的商品编号:q
-------------------------------------------------------
购物车中已选择的商品为:
1004猫粮
1003鼠标
1002电脑
1001手机

3.模拟12306火车订票流程

需求:假设北京到天津有一下4个车次可供选择,
用户选择所要购买的车次,进行购票进站

# 创建字典用于存储车票信息,使用 车次作为key,使用其他信息作为value
dick_ticket = {
    'G1568': ['北京南-天津南', '18:06', '18:39', '00:33'],
    'G1567': ['北京南-天津南', '18:18', '18:59', '00:34'],
    'G8969': ['北京南-天津西', '18:20', '18:19', '00:39'],
    'G2691': ['北京南-天津西', '18:35', '19:19', '00:41']
}
print('车次      出发站-到达站      出发时间        到达时间      历时时长')
# 遍历字典中的元素
for key in dick_ticket.keys():
    print(key, end='     ')  # 为什么不换行,因为车次和车次的详细信息在一行显示
    for item in dick_ticket.get(key):  # 根据key获取值
        print(item, end='\t\t')
    #换行
    print()

#输入用户购票车次
train_no=input('请输入要购买的车次:')

#根据key获取值
info=dick_ticket.get(train_no,'车次不存在')  #info是一个列表类型
#判断车次是否存在
if info!='车次不存在':
    person=input('请输入乘车人,如果是多位乘车人使用逗号分隔:')
    # 获取车次的出发站-到达站,还有出发时间
    s=info[0]+' '+info[1]+'开'
    print('您已购买',train_no,' ',s,',请',person,'尽快换取纸质车票。【铁路客服】')
else:
    print('对不起,选择的车次不存在')

运行结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap5\实战-模拟12306火车票订票流程.py 
车次      出发站-到达站      出发时间        到达时间      历时时长
G1568     北京南-天津南		18:06		18:39		00:33		
G1567     北京南-天津南		18:18		18:59		00:34		
G8969     北京南-天津西		18:20		18:19		00:39		
G2691     北京南-天津西		18:35		19:19		00:41		
请输入要购买的车次:G1568
请输入乘车人,如果是多位乘车人使用逗号分隔:Jarvis,Jarvis2
您已购买 G1568   北京南-天津南 18:06,请 Jarvis,Jarvis2 尽快换取纸质车票。【铁路客服】
D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap5\实战-模拟12306火车票订票流程.py 
车次      出发站-到达站      出发时间        到达时间      历时时长
G1568     北京南-天津南		18:06		18:39		00:33		
G1567     北京南-天津南		18:18		18:59		00:34		
G8969     北京南-天津西		18:20		18:19		00:39		
G2691     北京南-天津西		18:35		19:19		00:41		
请输入要购买的车次:G1234
对不起,选择的车次不存在

4.模拟手机通讯录

需求:从键盘录入5位好友的姓名和电话,
由于通讯录是无序的,所有可以使用集合来实现

#创建一个空集合
s=set()
#录入5位好友的姓名和电话
for i in range(1,6):
    info=input(f'请输入第{i}位好友的姓名和手机号:')
    #添加到集合中
    s.add(info)

#遍历集合
for item in s:
    print(item)

运行结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap5\实战-模拟手机通讯录.py 
请输入第1位好友的姓名和手机号:张三1222222222
请输入第2位好友的姓名和手机号:李四1344444444
请输入第3位好友的姓名和手机号:王五14444444444
请输入第4位好友的姓名和手机号:陈六15555555555
请输入第5位好友的姓名和手机号:罗期16666666666
王五14444444444
罗期16666666666
陈六15555555555
张三1222222222
李四1344444444
文章来源:https://blog.csdn.net/weixin_43582499/article/details/135227738
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。