python第四章——序列的应用
一、实验目的和要求
1、了解python中的序列结构
2、学会使用列表、元组、字典和集合
3、学会区分列表、元组、字典和集合
二、实验环境
软件版本:Python 3.10 64_bit
三、实验过程
♞实例01:输出每日一贴
在IDLE中创建一个名称为tips. py的文件,然后在该文件中导入日期时间类,然后定义一个列表(保存7条励志文字作为每日一帖的内容),再获取当前的星期,最后将当前的星期作为列表的索引,输出元素内容,代码如下:
import datetime #导入日期时间类 #定义一个列表 mot = ["今天星期一:\n坚持下去不是因为我很坚强,而是因为我别无选择。", "今天星期二:\n含泪播种的人一定能笑着收获。", "今天星期三:\n做对的事情比把事情做对重要。", "今天星期四:\n命运给予我们的不是失望之酒,而是机会之杯。", "今天星期五:\n不要等到明天,明天太遥远,今天就行动。", "今天星期六:\n求知若饥,虚心若愚。", "今天星期日:\n成功将属于那些从不说“不可能的人。"] day=datetime.datetime.now().weekday() #获取当前星期 print(mot[day]) #输出每日一贴
结果为:
♞实例02:分两列显示2017~2018赛季NBA西部联盟前八名的球队
在IDLE中创建一个名称为printteam. py的文件,并且在该文件中先输出标题,然后定义一个列表(保存球队名称),再应用for循环和enumerate()函数遍历列表,在循环体中通过if…else语句判断是否为偶数,如果为偶数则不换行输出,否则换行输出。代码如下:
print("2017~2018赛季NBA西部联盟前八名\n") team = ["火箭","勇士","开拓者","雷霆","爵士","鹈鹕","马刺","森林狼"] for index,item in enumerate(team): if index%2 == 0: #判断是否为偶数,为偶数时不换行 print(item +"\t\t",end='') else: print(item +"\n") #换行输出
结果为:
♞实例03:向NBA名人堂列表中追加2018年新进入的球星
在IDLE中创建一个名称为nba. py的文件,然后在该文件中定义一个保存NBA名人堂原有球星名字的列表,然后创建一个保存2018年新进入球星名字的列表,再调用列表对象的extend()方法追加元素,最后输出追加元素后的列表,代码如下:
#NBA名人堂原有人员 oldlist = ["迈克尔·乔丹","卡里姆·阿布杜尔·贾巴尔","哈基姆·奥拉朱旺","查尔斯·巴克利","姚明"] newlist = ["贾森·基德","史蒂夫·纳什","格兰特·希尔"] #新增人员列表 oldlist.extend(newlist) #追加新球星 print(oldlist) #显示新的NBA名人堂人员名单
结果为:
♞实例04:使用二维列表输出不同版式的古诗
在IDLE中创建一个名称为printverse. py的文件,然后在该文件中首先定义4个字符串,内容为柳宗元的《江雪》中的诗句,并定义一个二维列表,然后应用嵌套的for循环将古诗以横版方式输出,再将二维列表进行逆序排列,最后应用嵌套的for循环将古诗以竖版方式输出,代码如下:
str1 = "烟笼寒水月笼沙" str2 = "夜泊秦淮近酒家" str3 = "商女不知亡国恨" str4 = "隔江犹唱后庭花" verse = [list(str1),list(str2),list(str3),list(str4)] #定义一个二维列表 print("\n-- 横版 --\n") for i in range(4): #循环古诗的每一行 for j in range(7): #循环每一行的每个字(列) if j == 6: #如果是一行中的最后一个字 print(verse[i][j]) #换行输出 else: print(verse[i][j],end="") #不换行输出 verse.reverse() #对列表进行逆序排列 print("\n-- 竖版 --\n") for i in range(75): for j in range(4): #循环每一行的每个字(列) if j == 3: #如果是最后一行 print(verse[j][i]) #换行输出 else: print(verse[j][i],end="") #不换行输出
结果为:
♞实例05:使用元组保存咖啡馆里提供的咖啡名称
在IDLE中创建一个名称为 cafe_coffeename. py 的文件,然后在该文件中定义一个包含6个元素的元组,内容为伊米咖啡馆里的咖啡名称,并且输出该元组,代码如下:
#定义元组 coffeename = ('蓝山','卡布奇诺','曼特宁','摩卡','麝香猫','哥伦比亚') #输出元组 print(coffeename)
结果为:
♞实例06:使用for循环列出咖啡馆里的咖啡名称
在IDLE中创建一个名称为 cafe_coffeename. py 的文件,然后在该文件中,定义一个包含6个元素的元组,内容为伊米咖啡馆里的咖啡名称,然后应用for循环语句输出每个元组元素的值,即咖啡名称,并且在后面加上“咖啡”二字,代码如下:
coffeename = ('蓝山','卡布奇诺','曼特宁','摩卡','麝香猫','哥伦比亚','饮不尽的黑暗') #定义元组 print("您好,欢迎光临~吐丽美庵西餐厅~\n\n我店有:\n") for name in coffeename: #遍历元组 print(name + "咖啡",end=" ")
结果为:
♞实例07:分两列显示2017~2018赛季NBA西部联盟前八名球队
本实例将在实例02的基础上进行修改,将列表修改为元组,其他内容不变,修改后的代码如下:
print("2017~2018赛季NBA西部联盟前八名\n") team = ("火箭","勇士","开拓者","雷霆","爵士","鹈鹕","马刺","森林狼") for index,item in enumerate(team): if index%2 == 0: #判断是否为偶数,为偶数时不换行 print(item +"\t\t",end='') else: print(item +"\n") #换行输出
结果为:
♞实例08:将麝香猫咖啡替换为拿铁咖啡
在IDLE中创建一个名称为 cafe_replace. py 的文件,然后在该文件中,定义一个包含6个元素的元组,内容为伊米咖啡馆里的咖啡名称,然后修改其中的第5个元素的内容为“拿铁”,代码如下:
coffeename = ('蓝山','卡布奇诺','曼特宁','摩卡','麝香猫','哥伦比亚') coffeename = ('蓝山','卡布奇诺','曼特宁','摩卡','拿铁','哥伦比亚') print("新元组",coffeename)
结果为:
♞实例09:创建一个保存女神星座的字典
在IDLE中创建一个名称为 sign_create. py 的文件,然后在该文件中,定义两个包括4个元素的列表,再应用dict()函数和zip()函数将前两个列表转换为对应的字典,并且输出该字典,代码如下:
name = ['绮梦','冷伊一','香凝','黛兰'] #作为键的列表 sign = ['水瓶座','射手座','双鱼座','双子座'] #作为值得列表 dictionary = dict(zip(name,sign)) #转换为字典 print(dictionary) #输出转换后的字典
结果为:
♞实例10:根据星座测试性格特点
在IDLE中创建一个名称为 sign_get. py 的文件,然后在该文件中创建两个字典,一个保存名字和星座,另一个保存星座和性格特点,最后从这两个字典中取出相应的信息组合出想要的结果,并输出,代码如下:
name = ['绮梦','冷伊一','香凝','黛兰'] #作为键的列表 sign_person = ['水瓶座','射手座','双鱼座','双子座'] #作为值得列表 person_dict = dict(zip(name,sign_person)) #转换为个人字典 sign_all = ['白羊座','金牛座','双子座','巨蟹座','狮子座','处女座','天秤座','天蝎座','射手座','摩羯座','水瓶座','双鱼座'] nature = ['有一种让人看见就觉得开心的感觉,阳光、乐观、坚强,性格直来直去,就是有点小脾气。', '很保守,喜欢稳定,一旦有什么变动就会觉得心里不踏实,性格比较慢热,是个理财高手。', '喜欢追求新鲜感,有点小聪明,耐心不够,因你的可爱性格会让很多人喜欢和你做朋友。', '情绪容易敏感,缺乏安全感,做事情有坚持到底的毅力,为人重情重义,对朋友和家人特别忠实。', '有着远大的理想,总想靠自己的努力成为人上人,总是期待被仰慕被崇拜的感觉。', '坚持追求自己的完美主义者。', '追求平等、和谐,交际能力强,因此朋友较多。最大的缺点就是面对选择总是犹豫不决。', '精力旺盛,占有欲强,对于生活很有目标,不达目的誓不罢休,复仇心重。', '崇尚自由,勇敢、果断、独立,身上有一股勇往直前的劲儿,只要想做,就能做。', '是最有耐心的,做事最小心。做事脚踏实地,比较固执,不达目的不罢休,而且非常勤奋。', '人很聪明,最大的特点是创新,追求独一无二的生活,个人主义色彩很浓重的星座。', '集所有星座的优缺点于一身。最大的优点是有一颗善良的心,愿意帮助别人。'] sign_dict = dict(zip(sign_all,nature)) print("【香凝】的星座是",person_dict.get("香凝")) print("\n 她的性格特点是:\n\n",sign_dict.get(person_dict.get("香凝")))
结果为:
♞实例11:根据星座测试性格特点
在IDLE中创建一个名称为sign_create.py的文件,然后在该文件中,定义两个包括4个元素的列表,再应用字典推导式将前两个列表转换为对应的字典,并且输出该字典。代码如下:
name = ['绮梦','冷伊一','香凝','黛兰'] sign = ['水瓶','射手','双鱼','双子'] dictionary = {i:j+'座'for i,j in zip(name,sign)} print(dictionary)
结果为:
♞实例12:创建保存学生选课信息的集合
在 IDLE中创建一个名称为section_create.py 的文件,然后在该文件中,定义两个包括4个元素的集合,再输出这两个集合。代码如下:
python = {'绮梦','冷伊一','香凝','梓轩'} c = {'冷伊一','零语','梓轩','圣博'} print('选择python语言的学生有:',python,'\n') print('选择c语言的学生有:',c)
结果为:
♞实例13:学生更改选学课程
在 IDLE中创建一个名称为 section_add.py的文件,然后在该文件中,定义一个包括4个元素的集合,并且应用add()函数向该集合中添加一个元素,再定义一个包括4个元素的集合,并且应用remove()方法从该集合中删除指定的元素,最后输出这两个集合。代码如下:
python = set(['绮梦','冷伊一','香凝','梓轩']) python.add('零语') c = set(['冷伊一','零语','梓轩','圣博']) c.remove('零语') print('选择python语言的学生有:',python,'\n') print('选择c语言的学生有:',c)
结果为:
♞实例14:对选课集合进行交集、并集和差集运算
在IDLE中创建一个名称为section_operate.py 的文件,然后在该文件中定义两个包括4个元素的集合,再根据需要对两个集合进行交集、并集和差集运算,并输出运算结果。代码如下:
python = set(['绮梦','冷伊一','香凝','梓轩']) c = set(['冷伊一','零语','梓轩','圣博']) print('选择python语言的学生有:',python) print('选择c语言的学生有:',c) print('交集运算:',python & c) print('并集运算:',python | c) print('差集运算:',python - c)
结果为:
实战1:输出“王者荣耀”的游戏角色
代码:
print("“王者荣耀”游戏角色") hero = ["====坦克:====","刘邦 张飞 牛魔","====战士:=====","孙悟空 哪吒 赵云","====刺客:====","李白 兰陵王 猫雷", "====法师:====","海月 小乔 甄姬","====射手:====","后羿 鲁班七号 孙尚香","====辅助:====","瑶 蔡文姬 大乔"] for item in hero: print(item)
结果为:
实战2:模拟火车订票系统
代码:
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) + "尽快换取纸质车票。【铁路客服】")
结果为:
实战3:电视剧的收视率排行榜
代码:
listname = [('《Theprodigal son of the new frontier town》',0.259), ('《Give up,hold on me》',1.4), ('《Famliy Guy》',1.343), ('《Peaky Blinders》',0.92), ('《Arcane:League of Legends》',0.862), ('《Sparrow》',0.394), ('《Distant distance》',0.411), ('《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])+'%')
结果为:
实战4:统计需要取快递人员的名单
代码:
i=0 instr = "xiaohao" past = set() while not str.isdigit(instr): setlen = len(past) instr = input("请输入收到快递人员的名单(输入数字退出):") if not str.isdigit(instr): past.add(instr) if setlen == len(past): print("取快递人员已存在!") continue i=i+1 print("需要通知取快递的人员名单:" +str(i) + "\n"+ "\n".join(past))
结果为:
四、实验结果
列表、元组、集合和字典在python发挥着重要的作用。
标签:输出,python,列表,item,元组,print,实验报告,第四章 From: https://www.cnblogs.com/plxels/p/16738937.html