实验要求:
完成课本实例部分及实战部分
实验内容:
Part1 实例:
实例01:
创建一个文件命名为tips,导入日期时间类,定义一个包含七条励志文字的列表,获取当前星期作为索引输出每日一贴
代码如下
1 import datetime #导入时间日期类 2 '''定义一个列表''' 3 mot=["今天星期一:\n坚持下去不是因为我很坚强,而是因为我别无选择。", 4 "今天星期二:\n含泪播种的人一定能笑着收获。", 5 "今天星期三:\n做对的事情比把事情做对更重要。", 6 "今天星期四:\n命运给予我们的不是失望之酒,而是希望之杯。", 7 "今天星期五:\n不要等到明天,明天太遥远,今天就行动。", 8 "今天星期六:\n求知若饥,虚心若愚。", 9 "今天星期天:\n成功将属于那些从不说“不可能”的人。"] 10 day=datetime.datetime.now().weekday() #获取当前星期 11 print(mot[day]) #输出每日一贴
运行结果:
注 实验当天为周日
今天星期天: 成功将属于那些从不说“不可能”的人。
实例02:
遍历列表,分两列遍历输出2017~2018赛季NBA西部联盟前八名的队伍
代码如下:
1 print("2017~2018赛季NBA西部联盟前八名\n") 2 team = ['火箭','勇士','开拓者','雷霆','爵士','鹈鹕','马刺','森林狼'] 3 for index,item in enumerate(team): 4 if index % 2 == 0: #判断是否为偶数,为偶数则不换行 5 print(item +'\t\t', end=' ') #end=' ',python默认输出结尾为换行,end=,自己选择结尾 6 else: #非偶数换行 7 print(item +'\n')
运行结果:
2017~2018赛季NBA西部联盟前八名 火箭 勇士 开拓者 雷霆 爵士 鹈鹕 马刺 森林狼
实例03:
在列表中添加元素,在NBA名人堂列表中追加2018年新进入的球星
代码如下:
#NBA名人堂原有人员 oldlist = ["迈克尔·乔丹","卡里姆·阿布杜尔·贾巴尔","哈吉姆·奥拉朱旺","查尔斯·巴克利","姚明"] #新增人员 newlist = ["贾森·基德","史蒂夫·纳什","格兰特·希尔"] oldlist.extend(newlist) print(oldlist)
运行结果:
['迈克尔·乔丹', '卡里姆·阿布杜尔·贾巴尔', '哈吉姆·奥拉朱旺', '查尔斯·巴克利', '姚明', '贾森·基德', '史蒂夫·纳什', '格兰特·希尔']
实例04:
使用二维列表输出横板和竖版古诗
代码如下:
str1='千山鸟飞绝' str2='万径人踪灭' str3='孤舟蓑笠翁' str4='独钓寒江雪' #用字符串和list()生成为二位列表,输出二位横板列表 Arr=[list(str1),list(str2),list(str3),list(str4)] print("——横板——") for i in range(0,4): for j in range(0,5): print(Arr[i][j],end='') if j==4: print("\n") #输出二维竖版列表 print("——竖版——") for j in range(-5,0): for i in range(-4,0): print(Arr[i][j],' ',end='') if i == -1: print('\n')
运行结果:
——横板—— 千山鸟飞绝 万径人踪灭 孤舟蓑笠翁 独钓寒江雪 ——竖版—— 千 万 孤 独 山 径 舟 钓 鸟 人 蓑 寒 飞 踪 笠 江 绝 灭 翁 雪
实例05:
使用元组保存咖啡馆里的咖啡名称
代码如下:
1 #定义元组 2 coffeename = ('蓝山','卡布奇诺','曼特宁','摩卡','麝香猫','哥伦比亚') 3 #输出元组 4 print(coffeename)
运行结果:
('蓝山', '卡布奇诺', '曼特宁', '摩卡', '麝香猫', '哥伦比亚')
实例06:
使用for循环列出咖啡馆里的咖啡名称
代码如下:
1 #定义元组 2 coffeename = ('蓝山','卡布奇诺','曼特宁','摩卡','麝香猫','哥伦比亚') 3 print("您好,欢迎光临~伊米咖啡~\n\n本店有:\n") 4 for name in coffeename: 5 print(name+'咖啡 ',end='')
运行结果:
您好,欢迎光临~伊米咖啡~ 本店有: 蓝山咖啡 卡布奇诺咖啡 曼特宁咖啡 摩卡咖啡 麝香猫咖啡 哥伦比亚咖啡
实例07:
使用元组输出实例02的内容
代码如下:
1 print("2017~2018赛季NBA西部联盟前八名:\n") 2 team=("火箭","勇士","开拓者","雷霆","爵士","鹈鹕","马刺","森林狼") 3 for index,name in enumerate(team): 4 if index % 2 == 0: 5 print(name+'\t\t',end='') 6 else: 7 print(name)
运行结果:
2017~2018赛季NBA西部联盟前八名: 火箭 勇士 开拓者 雷霆 爵士 鹈鹕 马刺 森林狼
实例08:
创建一个字典用于保存星座
代码如下:
1 name = ["绮梦","冷凝一","香凝","黛香"] #作为键的列表 2 sign = ["水瓶座","射手座","双鱼座","双子座"] #作为值的列表 3 dictionary = dict(zip(name,sign)) #转化为字典 4 print(dictionary)
运行结果:
{'绮梦': '水瓶座', '冷凝一': '射手座', '香凝': '双鱼座', '黛香': '双子座'}
实例09:
创建一个字典保存星座,并根据星座输出其特点,该实验省略特点的详细内容
代码如下:
1 name = ["绮梦","冷凝一","香凝","黛香"] #作为键的列表 2 sign_person = ["水瓶座","射手座","双鱼座","双子座"] #作为值的列表 3 person_dict = dict(zip(name,sign_person)) #生成个人字典 4 sign_all = ['白羊座','金牛座','双子座','巨蟹座','狮子座','处女座', 5 '天秤座','天蝎座','射手座','摩羯座','水瓶座','双鱼座'] #星座字典的键列表 6 nature = ['白羊座的特点','金牛座的特点','双子座的特点', 7 '巨蟹座的特点','狮子座的特点','处女座的特点', 8 '天秤座的特点','天蝎座的特点','射手座的特点', 9 '摩羯座的特点','水瓶座的特点','双鱼座的特点'] #星座字典的值列表 10 sign_dict = dict(zip(sign_all,nature)) #生成星座字典 11 print("【香凝】的星座是",person_dict.get("香凝")) #输出星座 12 print("\n她的性格特点是:\n\t",sign_dict.get(person_dict.get("香凝"))) #输出性格特点
运行结果:
【香凝】的星座是 双鱼座 她的性格特点是: 双鱼座的特点
实例10:
使用字典推导式,将列表转化为字典
代码如下:
1 name = ["绮梦","冷凝一","香凝","黛香"] #作为键的列表 2 sign = ["水瓶座","射手座","双鱼座","双子座"] #作为值的列表 3 dictionary = {i:j+'座' for i,j in zip(name,sign)} #使用列表推导式生成字典 4 print(dictionary)
运行结果:
{'绮梦': '水瓶座座', '冷凝一': '射手座座', '香凝': '双鱼座座', '黛香': '双子座座'}
实例11:
创建一个集合保存学生选课信息
代码如下:
1 python = {'绮梦','冷凝一','香凝','梓轩'} #保存选择python的学生 2 c = {'冷凝一','零语','梓轩','圣博'} #保存选择c语言的学生 3 print("选择python的学生有:",python,'\n') 4 print("选择C语言的学生有: ",c) #输出全部学生
运行结果:
选择python的学生有: {'冷凝一', '香凝', '绮梦', '梓轩'} 选择C语言的学生有: {'零语', '冷凝一', '梓轩', '圣博'}
实例12:
使用集合实现学生更改选学课程
代码如下:
1 python = set(['绮梦','冷凝一','香凝','梓轩']) #保存选择python的学生 2 python.add('零语') #添加元素到集合中 3 c = set(['冷凝一','零语','梓轩','圣博']) #保存选择c的学生 4 c.remove('零语') #删除集合中的指定元素 5 print('选择python的学生有:',python,'\n') 6 print('选择c语言的学生有: ',c)
运行结果:
选择python的学生有: {'香凝', '梓轩', '冷凝一', '零语', '绮梦'} 选择c语言的学生有: {'圣博', '梓轩', '冷凝一'}
实例13:
对现有集合进行交集,并集和差集运算
代码如下:
1 python = set(['绮梦','冷凝一','香凝','梓轩']) #保存选择python的学生 2 c = set(['冷凝一','零语','梓轩','圣博']) #保存选择c的学生 3 print('选择python的学生有:',python,'\n') 4 print('选择c语言的学生有: ',c,'\n') 5 print('交集运算: ',python & c) 6 print('并集运算:',python | c) 7 print('差集运算:',python - c)
运行结果:
选择python的学生有: {'梓轩', '冷凝一', '绮梦', '香凝'} 选择c语言的学生有: {'梓轩', '圣博', '冷凝一', '零语'} 交集运算: {'梓轩', '冷凝一'} 并集运算: {'绮梦', '零语', '梓轩', '圣博', '香凝', '冷凝一'} 差集运算: {'绮梦', '香凝'}
Part2 实战:
实战1:
使用列表存储并输出王者荣耀中的英雄,按英雄定位分开输出
代码如下:
注 代码中使用了列表和字典两种形式
1 print("列表输出:\n") 2 print("“王者荣耀”游戏角色:") 3 position = ['坦克','战士','刺客','法师','射手','辅助'] 4 name = [['苏烈','刘邦','张飞','牛魔'],['狂铁','吕布','哪吒','铠'], 5 ['元歌','李白','阿珂','韩信'],['奕星','女娲','妲己','貂蝉'], 6 ['后羿','黄忠','虞姬','艾琳'],['孙膑','瑶','桑启','钟馗']] 7 for i in range(0,6): 8 print("===",position[i],"===") 9 for j in range(0,4): 10 print(name[i][j],'\t',end='') 11 if j == 3: 12 print('') 13 ######分割线########## 14 print('\n\n') 15 ######分割线########## 16 print('字典形式:\n') 17 print("“王者荣耀”游戏角色:") 18 all_name = {i:j for i,j in zip(position,name)} 19 for i in position: 20 print('===',i,'===') 21 print(all_name[i])
运行结果:
列表输出: “王者荣耀”游戏角色: === 坦克 === 苏烈 刘邦 张飞 牛魔 === 战士 === 狂铁 吕布 哪吒 铠 === 刺客 === 元歌 李白 阿珂 韩信 === 法师 === 奕星 女娲 妲己 貂蝉 === 射手 === 后羿 黄忠 虞姬 艾琳 === 辅助 === 孙膑 瑶 桑启 钟馗 字典形式: “王者荣耀”游戏角色: === 坦克 === ['苏烈', '刘邦', '张飞', '牛魔'] === 战士 === ['狂铁', '吕布', '哪吒', '铠'] === 刺客 === ['元歌', '李白', '阿珂', '韩信'] === 法师 === ['奕星', '女娲', '妲己', '貂蝉'] === 射手 === ['后羿', '黄忠', '虞姬', '艾琳'] === 辅助 === ['孙膑', '瑶', '桑启', '钟馗']
实战2:
使用序列模拟火车订票系统
代码如下:
1 print(''' 2 车次 出发站—到达站 出发时间 到达时间 历时 3 T40 长春—北京 00:12 12:00 12:08 4 T298 长春—北京 00:06 10:50 10:44 5 Z158 长春—北京 12:46 21:06 08:18 6 Z62 长春—北京 21:56 06:08 8:20 7 ''') 8 key = input("请输入要购买的车次:") 9 name = input("请输入乘车人,用“,”隔开:") 10 system = {"T40":"长春—北京 00:12","T298":"长春—北京 00:06","Z158":"长春—北京 12:46", 11 "Z62":"长春—北京 21:56"} 12 print("您已购买 ",key," 次列车 ",system[key],"开,请",name,"准时乘车。【铁路客服】")
运行结果:
使用例子 Z62 小明
输入部分使用加粗斜体
车次 出发站—到达站 出发时间 到达时间 历时 T40 长春—北京 00:12 12:00 12:08 T298 长春—北京 00:06 10:50 10:44 Z158 长春—北京 12:46 21:06 08:18 Z62 长春—北京 21:56 06:08 8:20 请输入要购买的车次:Z62 请输入乘车人,用“,”隔开:小明 您已购买 Z62 次列车 长春—北京 21:56 开,请 小明 准时乘车。【铁路客服】
实战3:
应用列表和元组将电视剧收视率数据进行排序
代码如下:
1 #定义列表,成员为每个节目名和收视率组成的元组 2 name = [('0.93','《My father-in-law will do martiaiarts》'), 3 ('1.343','《The private dishes of the husbands》'), 4 ('1.4','《Give up,hold on to me》'), 5 ('0.862','《North Canton still believe in love》'), 6 ('0.553','《Impossible task》'), 7 ('0.411','《Sparrow》'), 8 ('0.164','《East of dream Avenue》'), 9 ('0.259','《The prodigal son of the new frontier town》'), 10 ('0.394','《Distant distance》'), 11 ('0.562','《Music legend》')] 12 #sort函数排序 13 name.sort(reverse = True) 14 #输出排序后的列表 15 for item in name: 16 print(item[1],'收视率:',item[0],'%')
运行结果:
《Give up,hold on to me》 收视率: 1.4 % 《The private dishes of the husbands》 收视率: 1.343 % 《My father-in-law will do martiaiarts》 收视率: 0.93 % 《North Canton still believe in love》 收视率: 0.862 % 《Music legend》 收视率: 0.562 % 《Impossible task》 收视率: 0.553 % 《Sparrow》 收视率: 0.411 % 《Distant distance》 收视率: 0.394 % 《The prodigal son of the new frontier town》 收视率: 0.259 % 《East of dream Avenue》 收视率: 0.164 %
在笔者学习至函数部分后,对该题用lambda函数再重新做了一遍
代码如下:
1 #定义列表,成员为每个节目名和收视率组成的元组 2 name = [('《My father-in-law will do martiaiarts》','0.93'), 3 ('《The private dishes of the husbands》','1.343'), 4 ('《Give up,hold on to me》','1.4'), 5 ('《North Canton still believe in love》','0.862'), 6 ('《Impossible task》','0.553'), 7 ('《Sparrow》','0.411'), 8 ('《East of dream Avenue》','0.164'), 9 ('《The prodigal son of the new frontier town》','0.259'), 10 ('《Distant distance》','0.394'), 11 ('《Music legend》','0.562')] 12 #使用匿名函数和sort函数排序 13 name.sort(key = lambda x:x[1] ,reverse = True) 14 #输出排序后的列表 15 for item in name: 16 print(item[0],'收视率:',item[1],'%')
运行结果:
《Give up,hold on to me》 收视率: 1.4 % 《The private dishes of the husbands》 收视率: 1.343 % 《My father-in-law will do martiaiarts》 收视率: 0.93 % 《North Canton still believe in love》 收视率: 0.862 % 《Music legend》 收视率: 0.562 % 《Impossible task》 收视率: 0.553 % 《Sparrow》 收视率: 0.411 % 《Distant distance》 收视率: 0.394 % 《The prodigal son of the new frontier town》 收视率: 0.259 % 《East of dream Avenue》 收视率: 0.164 %
实战4:
使用循环和列表统计需要取快递的人员名单
代码如下:
i = 1 #设置循环条件 name = set() #创建空集合 while i: key = input("请输入收到快递人员的名单(输入0退出): ") if key == '0': #判断输入为0 i=0 #设置结束循环条件 print("需要通知取快递的人员名单:") for j in name: #循环输出名单 print(j) elif key in name: #判断人员是否已经在名单中 print("取快递人员已存在!") else: name.add(key) #加入名单中
运行结果:
使用例子 小明 小红 小王 0
输入部分使用加粗斜体
请输入收到快递人员的名单(输入0退出): 小明 请输入收到快递人员的名单(输入0退出): 小红 请输入收到快递人员的名单(输入0退出): 小王 请输入收到快递人员的名单(输入0退出): 小明 取快递人员已存在! 请输入收到快递人员的名单(输入0退出): 0 需要通知取快递的人员名单: 小红 小明 小王
本篇完~~~~
标签:03,name,Python,列表,收视率,香凝,print,python,实验报告 From: https://www.cnblogs.com/AZhua/p/16771600.html