零基础学Python课后实战第四章

本文是零基础学Python的课后实战,包括输出王者荣耀游戏角色、模拟火车订票系统和电视剧收视率排行榜。在实战一中,通过列表操作展示了王者荣耀角色;实战二尝试了火车订票系统的模拟,遇到二维列表对齐问题;实战三则涉及电视剧收视率的排序技巧。文章还介绍了Python中的count()、sort()方法及其用法,以及列表和元组的区别和转换方法。

实战一:输出王者荣耀的游戏角色

列表的创建、遍历列表

代码

print("“王者荣耀”游戏角色")
hero = ["====坦克:====","刘邦 张飞","====战士:=====","孙悟空 哪吒","====刺客:====","李白 兰陵王",
         "====法师:====","大乔 小乔","====射手:====","刘备 鲁班七号","====辅助:====","太乙真人"]
for item in hero:
  print(item)  

运行结果

“王者荣耀”游戏角色
====坦克:====
刘邦 张飞
====战士:=====
孙悟空 哪吒
====刺客:====
李白 兰陵王
====法师:====
大乔 小乔
====射手:====
刘备 鲁班七号
====辅助:====
太乙真人

实战二:模拟火车订票系统

station = ["车次","出发站-到达站","出发时间","到达时间","历时",
        "T40","长春-北京","00:12","12:20","12:08",
        "T298","长春-北京","00:06","10:50","10:44",
        "Z158","长春-北京","12:48","21:06","08:18",
        "Z62","长春-北京","21:58","06:08","8:20"]
for index,item in enumerate(station):
    if (index+1)%5 == 0:
        print(item+"\n")
    else:
        print(item+"\t\t",end='')  
a = input("请输入要购买的车次:")
b = input("请输入乘车人(用逗号隔开):")
m = len(station)
for i in range(m):
    if a == station[i]:
       print("您已购" + str(a) + "次列车 " + station[i+1] +" "+ station[i+2] + "开,请" + str(b) + "尽快换取纸质车票。【铁路客服】")

运行结果

车次		出发站-到达站		出发时间		到达时间		历时

T40		长春-北京		00:12		12:20		12:08

T298		长春-北京		00:06		10:50		10:44

Z158		长春-北京		12:48		21:06		08:18

Z62		长春-北京		21:58		06:08		8:20


请输入要购买的车次:Z158

请输入乘车人(用逗号隔开):Y
您已购Z158次列车 长春-北京 12:48开,请Y尽快换取纸质车票。【铁路客服】

也尝试了用二维列表输出,各车次及时间也无法对齐,待进一步研究。

看了参考答案,结果是

information = ["车次","出发站-到达站","出发时间","到达时间","历时"]
name = ["T40","T298","Z158","Z62"]
station = ["长春-北京","长春-北京","长春-北京","长春-北京"]
go_off = ["00:12","00:06","12:48","21:58"]
arrival = ["12:20","10:50","21:06","06:08"]
last = ["12:08","10:44","08:18","8:20"]
print(information[0],'   ',information[1],' ',information[2],'  ',information[3],'   ',information[4])
print(name[0],'    ',station[0],'       ',go_off[0],'   ',arrival[0],'     ',last[0])
print(name[1],'   ',station[1],'       ',go_off[1],'   ',arrival[1],'     ',last[1])
print(name[2],'   ',station[2],'       ',go_off[2],'   ',arrival[2],'     ',last[2])
print(name[3],'    ',station[3],'       ',go_off[3],'   ',arrival[3],'     ',last[3])
a = input("请输入要购买的车次:")
b = input("请输入乘车人(用逗号隔开):")
if a==name[0]:
    time=go_off[0]
if a==name[1]:
    time=go_off[1]
if a==name[2]:
    time=go_off[2]
if a == name[3]:
    time = go_off[3]
print("您已购" + str(a) + "次列车 " + station[0] +" "+ time + "开,请" + str(b) + "尽快换取纸质车票。【铁路客服】")

运行结果

车次     出发站-到达站   出发时间    到达时间     历时
T40      长春-北京         00:12     12:20       12:08
T298     长春-北京         00:06     10:50       10:44
Z158     长春-北京         12:48     21:06       08:18
Z62      长春-北京         21:58     06:08       8:20

请输入要购买的车次:T40

请输入乘车人(用逗号隔开):T
您已购T40次列车 长春-北京 00:12开,请T尽快换取纸质车票。【铁路客服】

嗯,敲空格敲出来的。。。。

实战三:电视剧的收视率排行榜

listname = [('《Theprodigal son of the new frontier town》',0.259),
          ('《Distant distance》',0.394),
          ('《Music legend》',0.562)]
listname = sorted(listname, key=lambda s: s[1], reverse=True) #key=lambda s: s[1] 根据第二个关键字排序
print('电视剧的收视率排行榜:')
for item in listname:
  print(item[0]+' 收视率:'+str(item[1])+'%')

运行结果

电视剧的收视率排行榜:
《Music legend》 收视率:0.562%
《Distant distance》 收视率:0.394%
《Theprodigal son of the new frontier town》 收视率:0.259%

tips

count():表示获取指定元素在列表中出现的次数

sort()对数值列表排序
.sort()进行升序排列
.sort(reverse=True)进行降序排列
sort()对字符串列表排序
.sort()默认区分大小写字母
.sort(key=str.lower)不区分大小写字母

注:中文内容列表排序不能直接使用sort()方法,另,内置sorted()函数的作用与列表对象的sort()方法作用基本相同,不同点是sort()会改变原列表的顺序,而sorted()函数会建立一个原列表的副本,该副本为排序后的列表,原列表不变。

创建列表用“[]”,创建元组用“()”。元组是不可变序列。若创建的元组只有一个元素,要在元素的后面加一个逗号,否则表示定义一个字符串。
将生成器对象转换为元组输出使用 tuple() 函数,转换为列表用 list() 函数。
key=lambda s: s[1] , 表示根据第二个关键字排序。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值