实验报告

【实验目的】

1.掌握python中序列及序列的常用操作。

2.根据实际需要选择使用合适的序列类型。

【实验条件】

1.PC机或者远程编程环境。

【实验内容】

1.完成第四章 序列的应用 实例01-14,实战一到实战四。

实例01:输出每日一帖

  在IDLE中创建一个名称为tips.py 的文件,然后在该文件中导入日期时间类,然后定义一个列表(保存7条励志文字作为每日一帖的内容),再获取当前的星期,最后将当前的星期作为列表的索引,输出元素内容。

代码如下:

 1 import datetime                             #导入日期时间类
2 mot = ["今天星期一:\n坚持下去不是因为我很坚强,而是因为我别无选择。",
3 "今天星期二:\n含泪播种的人一定能笑着收获。",
4 "今天星期三:\n做对的事情比把事情做对重要。",
5 "今天星期四:\n命运给予我们的不是失望之酒,而是机会之杯。",
6 "今天星期五:\n不要等到明天,明天太遥远,今天就行动。",
7 "今天星期六:\n求知若饥,虚心若愚。",
8 "今天星期日:\n成功将属于那些从不说”不可能“的人。"]
9 day = datetime.datetime.now().weekday() #获取当前星期
10 print(mot[day])

运行结果如下:

实例02:分两列显示2017~2018赛季NBA西部联盟前八名的球队

  在IDLE中创建一个名称为printteam.py 的文件,并且在该文件中先输出标题,然后定义一个列表(保存球队名称),再应用for循环和 enumerate()函数遍历列表,在循环体中通过if…else语句判断是否为偶数,如果为偶数则不换行输出,否则换行输出。

代码如下:

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='')
6 else:
7 print(item + "\n")

运行结果如下:

实例03:向NBA名人堂列表中追加2018年新加入的球星

  在IDLE中创建一个名称为nba.py 的文件,然后在该文件中定义一个保存NBA名人堂原有球星名字的列表,然后创建一个保存2018年新进入球星名字的列表,再调用列表对象的 extend()方法追加元素,最后输出追加元素后的列表。

代码如下:

1 #原有球员
2 oldlist = ["迈克尔·乔丹","卡里姆·阿布杜尔·贾巴尔","哈基姆·奥拉朱旺","查尔斯·巴克利","姚明"]
3 #新增球员
4 newlist =["贾森·基德" ,"史蒂夫·纳什", "格兰特·希尔"]
5 oldlist.extend(newlist)
6 print(oldlist)

 运行结果如下:

实例04:使用二维列表输出不同版式的古诗

  在 IDLE中创建一个名称为printverse.py的文件,然后在该文件中首先定义4个字符串,内容为柳宗元的《江雪》中的诗句,并定义一个二维列表,然后应用嵌套的for循环将古诗以横版方式输出,再将二维列表进行逆序排列,最后应用嵌套的for循环将古诗以竖版方式输出,代码如下:

代码如下:

 1 str1 = "千山鸟飞绝"
2 str2 = "万径人踪灭"
3 str3 = "孤舟蓑笠翁"
4 str4 = "独钓寒江雪"
5 #定义一个二维列表
6 verse = [list(str1), list(str2), list(str3), list(str4)]
7 print("\n-------横板-------\n")
8 for i in range(4):
9 for j in range(5):
10 if j == 4:
11 print(verse[i][j]) #换行
12 else:
13 print(verse[i][j],end = '') #不换行
14 verse.reverse()
15 print("\n-------竖板-------\n")
16 for i in range(5):
17 for j in range(4):
18 if j == 3:
19 print(verse[j][i]) #换行
20 else:
21 print(verse[j][i], end = '') #不换行

运行结果如下:

实例05:使用元组保存咖啡馆里提供的咖啡名称

  在IDLE中创建一个名称为cafe_coffecname.py 的文件,然后在该文件中定义一个包含6个元素的元组,内容为伊米咖啡馆里的咖啡名称,并且输出该元组。

代码如下:

1 coffeename = ('蓝山','卡布奇诺','曼特宁','摩卡','麝香猫','哥伦比亚')
2 print(coffeename)

运行结果如下:

实例06:使用for循环列出咖啡馆里的咖啡名称

  在IDLE中创建一个名称为cafe_coffeename.py 的文件,然后在该文件中,定义一个包含6个元素的元组,内容为伊米咖啡馆里的咖啡名称,然后应用for循环语句输出每个元组元素的值,即咖啡名称,并且在后面加上“咖啡”二字。

代码如下:

1 coffeename = ('蓝山','卡布奇诺','曼特宁','摩卡','麝香猫','哥伦比亚')  #定义元组
2 print("您好,欢迎光临~伊米咖啡馆~\n我店有:")
3 for name in coffeename:
4 print(name + "咖啡", end=' ')

运行结果如下:

实例07:分两列显示2017-2018赛季NBA西部联盟前八名球队

  本实例将在实例02的基础上进行修改,将列表修改为元组,其他内容不变。

代码如下:

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='')
6 else:
7 print(item + "\n")

运行结果如下:

实例08:将麝香猫咖啡替换为拿铁咖啡

  在 IDLE中创建一个名称为cafe_replace.py 的文件,然后在该文件中,定义一个包含6个元素的元组,内容为伊米咖啡馆里的咖啡名称,然后修改其中的第5个元素的内容为“拿铁”。

代码如下:

1 coffeename = ('蓝山','卡布奇诺','曼特宁','摩卡','麝香猫','哥伦比亚')  #定义元组
2 coffeename = ('蓝山','卡布奇诺','曼特宁','摩卡','拿铁','哥伦比亚')
3 print(coffeename)

运行结果如下:

实例09:创建一个保存女神星座的字典

 在IDLE中创建一个名称为sign_create.py 的文件,然后在该文件中,定义两个包括4个元素的列表,再应用dict()函数和zip()函数将前两个列表转换为对应的字典,并且输出该字典。

代码如下:

1 name =['绮梦','冷伊一','香凝','黛兰']          #作为健的列表
2 sign =['水瓶座','射手座','双鱼座','双子座'] #作为值的列表
3 dictionary = dict(zip(name, sign))
4 print(dictionary)

运行结果如下:

实例10:根据星座测试性格特点

  在IDLE中创建一个名称为sign _get.py 的文件,然后在该文件中创建两个字典,一个保存名字和星座,另一个保存星座和性格特点,最后从这两个字典中取出相应的信息组合出想要的结果,并输出。

代码如下:

 1 name =['绮梦','冷伊一','香凝','黛兰']                  #作为键的列表
2 sign_person =['水瓶座','射手座','双鱼座','双子座'] #作为值的列表
3 person_dict = dict(zip(name, sign_person)) #转换位个人字典
4 sign_all =['白羊座','金牛座','双子座','巨蟹座','狮子座',
5 '处女座','天秤座','天蝎座','射手座','摩羯座','水瓶座','双鱼座']
6 nature = ['有一种让人看见就觉得开心的感觉,阳光、乐观、坚强,性格直来直去,就是有点小脾气。',
7 '很保守,喜欢稳定,一旦有什么变动就会觉得心里不踏实,性格比较慢热,是个理财高手。',
8 '喜欢追求新鲜感,有点小聪明,耐心不够,因你的可爱性格会让很多人喜欢和你做朋友。',
9 '情绪容易敏感,缺乏安全感,做事情有坚持到底的毅力,为人重情重义,对朋友和家人特别忠实。',
10 '有着远大的理想,总想靠自己的努力成为人上人,总是期待被仰慕被崇拜的感觉。',
11 '坚持追求自己的完美主义者。',
12 '追求平等、和谐,交际能力强,因此朋友较多。最大的缺点就是面对选择总是犹豫不决。',
13 '精力旺盛,占有欲强,对于生活很有目标,不达目的誓不罢休,复仇心重。',
14 '崇尚自由,勇敢、果断、独立,身上有一股勇往直前的劲儿,只要想做,就能做。',
15 '是最有耐心的,做事最小心。做事脚踏实地,比较固执,不达目的不罢休,而且非常勤奋。',
16 '人很聪明,最大的特点是创新,追求独一无二的生活,个人主义色彩很浓重的星座。',
17 '集所有星座的优缺点于一身。最大的优点是有一颗善良的心,愿意帮助别人。']
18 sign_dict = dict(zip(sign_all, nature)) #转换为星座字典
19 print("【香凝】的星座是" ,person_dict.get("香凝")) #get获取"香凝"的健值
20 print("\n她的性格特点是:\n",sign_dict.get(person_dict.get("香凝")))

运行结果如下:

实例11:应用字典推导式实现根据名字和星座创建一个字典

  在IDLE中创建一个名称为sign_create.py的文件,然后在该文件中,定义两个包括4个元素的列表,再应用字典推导式将前两个列表转换为对应的字典,并且输出该字典。

代码如下:

1 name =['绮梦', '冷伊一', '香凝', '黛兰']         #作为健的列表
2 sign =['水瓶', '射手', '双鱼', '双子'] #作为值的列表
3 dictionary = {i : j + '座' for i,j in zip(name, sign)}
4 print(dictionary)

运行结果如下:

实例12:创建保存学生选课信息的集合

在 IDLE中创建一个名称为section_create.py 的文件,然后在该文件中,定义两个包括4个元素的集合,再输出这两个集合。

代码如下:

1 python = {'绮梦', '冷伊一', '香凝', '梓轩'}
2 c = {'冷伊一', '零语', '梓轩', '圣博'}
3 print("选择python语言的学生有:", python)
4 print("选择C语言的学生有:", c)

 运行结果如下:

实例13:学生更改选学课程

  在 IDLE中创建一个名称为 section_add.py的文件,然后在该文件中,定义一个包括4个元素的集合,并且应用add()函数向该集合中添加一个元素,再定义一个包括4个元素的集合,并且应用remove()方法从该集合中删除指定的元素,最后输出这两个集合。

代码如下:

1 python = set(['绮梦', '冷伊一', '香凝', '梓轩'])
2 python. add('零语') #添加一个元素进集合
3 c = set(['冷伊一', '零语', '梓轩', '圣博'])
4 c.remove('零语') #删除一个元素
5 print("选择Python语言的学生有:", python)
6 print("选择C语言的学生有:", c)

 运行结果如下:

实例14:对选课集合进行交集、并集和差集运算

  在IDLE中创建一个名称为section_operate.py 的文件,然后在该文件中定义两个包括4个元素的集合,再根据需要对两个集合进行交集、并集和差集运算,并输出运算结果。

代码如下:

 1 python = set(['绮梦', '冷伊一', '香凝', '梓轩'])
2 c = set(['冷伊一', '零语', '梓轩', '圣博'])
3 print("选择Python语言的学生有:", python)
4 print("选择C语言的学生有:", c)
5 #输出既选择了Python语言又选择了C语言的学生姓名
6 print("交集运算:", python & c)
7 #输出参与选择的全部学生姓名
8 print("并集运算:", python | c)
9 #输出只选择Python没有选择C的学生姓名
10 print("差集运算:", python - c)

运行结果如下:

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

  “王者荣耀”游戏中有很多英雄,这些英雄可以分为法师、战士、坦克、刺客、射手和辅助。本实战将应用Python中的列表存储不同类别的英雄,并且遍历输出这些英雄。效果如图所示。

代码如下:

 1 print("“王者荣耀“游戏角色:")
2 print("====坦克:====")
3 tank = ["苏烈","刘邦","钟馗","张飞","牛魔","程咬金","白起","刘禅","庄周","项羽","廉颇","巨灵神","安禄山","猪八戒"]
4 for i in tank:
5 print(i,end=" ")
6 print("\n"+"====战士:====")
7 warrior = ["狂铁","裴擒虎","铠","孙悟空","哪吒","杨戬","橘右京","亚瑟","雅典娜","夏侯惇","关羽","吕布","韩信","老夫子","达摩",
8 "典韦","曹操","钟无艳","墨子","赵云","刑天","龙且"]
9 for i in warrior:
10 print(i,end=" ")
11 print("\n"+"====刺客:====")
12 assassin = ["百里玄策","庞统","花木兰","靳柯","不知火舞","李白","娜可露露","兰陵王","韩信","宫本武藏","盖聂","红拂"]
13 for i in assassin:
14 print(i,end=" ")
15 print("\n"+"====法师:====")
16 master = ["杨玉环","奕星","女娲","周瑜","鬼谷子","芈月","东皇太一","大乔","诸葛亮","貂蝉","张良","安琪拉"]
17 for i in master:
18 print(i,end=" ")
19 print("\n"+"====射手:====")
20 shooter = ["公孙离","百里守约","后羿","刘备","黄忠","马可波罗","成吉思汗","虞姬","李元芳","艾琳","狄仁杰","鲁班七号","孙尚香"]
21 for i in shooter:
22 print(i,end=" ")
23 print("\n"+"====辅助:====")
24 auxiliary = ["明世隐","梦奇","孙膑","太乙真人","蔡文姬"]
25 for i in auxiliary:
26 print(i,end=" ")

运行结果如下:

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

  模拟火车订票系统,效果如图所示:

代码如下:

 1 information = ["车次", " ", "出发站-到达站", " ", "出发时间", " ", "到达时间"," ","历时"]
2 train_number = ["T40","T298","T158","Z62"]
3 chufa_daoda = ["长春-北京","长春-北京","长春-北京","长春-北京"]
4 start_time = ["00:12","00:06","12:48","21:58"]
5 arrival_time = ["12:20","10:50","21:06","08:18"]
6 time = ["12:08","10:44","08:18","8:20"]
7 for i in information:
8 print(i,end="") #输出表头
9 print("")
10 #输出详细信息
11 print(train_number[0],' ',chufa_daoda[0],' ',start_time[0],' ',arrival_time[0],' ',time[0],' ')
12 print(train_number[1],' ',chufa_daoda[1],' ',start_time[1],' ',arrival_time[1],' ',time[2],' ')
13 print(train_number[2],' ',chufa_daoda[2],' ',start_time[2],' ',arrival_time[2],' ',time[2],' ')
14 print(train_number[3],' ',chufa_daoda[3],' ',start_time[3],' ',arrival_time[3],' ',time[3],' ')
15 #转换为字典
16 chufa_chx = dict(zip(train_number,chufa_daoda))
17 start_time_chx = dict(zip(train_number,start_time))
18 arrival_time_chx = dict(zip(train_number,arrival_time))
19 lishi_chx = dict(zip(train_number,time))
20 train = input("请输入购买车次:")
21 passenger = input("请输入乘车人(用逗号分隔):")
22 achufa = chufa_chx[train]
23 print("你已购买" + train + "次列车" + achufa + "开,请" + passenger + "尽快换取纸质车票。【铁路客服】")

运行结果如下:

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

  应用列表和元组将以下电视剧按收视率由高到低进行排序:

《Give up,hold on to me》收视率:1.4%《The private dishes of the husbands》收视率:1.343%

《My father-in-law will do martiaiarts》收视率:0.92%《North Canton still believe in love》收视率:0.862%

《Impossible task》收视率:0.553%《Sparrow》收视率:0.411%《East of dream Avenue》收视率:0.164%

《The prodigal son of the new frontier town》收视率:0.259%《Distant distance》收视率:0.394%《Music legend》收视率:0.562%

效果如图所示。

代码如下:

 1 #电视剧列表
2 TV = [("《Give up, hold on to me》收视率:","1.4%"),
3 ("《The private dishes of the husbands》收视率:","1.343%"),
4 ("《My father-in-law will do martiaiarts》收视率:","0.92%"),
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 #对元素的第二个字段进行排序
13 TV.sort(key=lambda x:x[1], reverse=True)
14 for item in TV:
15 print(item[0] + str(item[1]))
16 # for i in TV:
17 # for j in range(0, 2):
18 # if j == 1:
19 # print(i[j])
20 # else:
21 # print(i[j], end="")

运行结果如下:

实战四:统计需要取快递人员的名单

假设我们可以根据需求定制自己的手机套餐,可选项为话费、流量和短信。假设有如下设置:话费:0分钟、50分钟、100分钟、300分钟、不限量效果

流量:0M、500M、1G、5G、不限量

短信:0条、50条、100条

最后将用户选择的内容搭配为一个套餐输出,效果如图所示。

代码如下:

 1 print("定制自己的手机套餐:")
2 call = ["0分钟", "50分钟", "100分钟", "300分钟", "不限量"]
3 flow = ["0M", "500M", "1G", "5G", "不限量"]
4 message = ["0条", "50条", "100条"]
5 #通话时长
6 print("A.请设置通话时长:")
7 for i,j in enumerate(call):
8 print(str(i+1) + '.' + j)
9 A = int(input("输入选择的通话时长编号:"))
10 #流量
11 print("B.请设置流量包:")
12 for i,j in enumerate(flow):
13 print(str(i+1) + '.' + j)
14 B = int(input("输入选择的流量包编号:"))
15 #短信
16 print("C.请设置短信条数:")
17 for i,j in enumerate(message):
18 print(str(i+1) + '.' + j)
19 C = int(input("输入选择的短信条数编号:"))
20 #套餐结果
21 print("您的手机套餐定制成功:"+ "免费通话时长为" + call[A-1] +
22 "/月,"+ "流量为" + flow[B-1] + "/月,"+
23 "短信条数" + message[C-1] + "/月")

运行结果如下:

Python实验报告——第4章 序列的应用的更多相关文章

  1. Python实验报告——第3章 流程控制语句

    实验报告 [实验目的] 1.掌握python中流程控制语句的使用,并能够应用到实际开发中. [实验条件] 1.PC机或者远程编程环境 [实验内容] 1.完成第三章流程控制语句实例01-09,实战一到实 ...

  2. Python实验报告——第2章 Python语言基础

    实验报告 [实验目的] 1.熟悉在线编程平台. 2.掌握基本的 python 程序编写.编译与运行程序的方法. [实验条件] 1.PC机或者远程编程环境 [实验内容] 1.完成第二章实例01-07,实 ...

  3. Python实验报告(第四周

    一.实验目的和要求 学会应用列表.元组.字典等序列: 二.实验环境 软件版本:Python 3.10 64_bit 三.实验过程 1.实例1:输出每日一贴 (1)在IDLE中创建一个名称为tips.p ...

  4. 【3】python核心编程 第六章-序列:字符串、列表和元组

    1.序列类型操作符 序列操作符 作用 seq[ind] 获得下标为ind 的元素 seq[ind1:ind2] 获得下标从ind1 到ind2 间的元素集合 seq * expr 序列重复expr 次 ...

  5. python实验报告(第五周)

    一.实验目的和要求 学会使用字符串的常用操作方法和正确应用正则表达式. 二.实验环境 软件版本:Python 3.10 64_bit 三.实验过程 1.实例1:使用字符串拼接输出一个关于程序员的笑话 ...

  6. Python 实验报告(第三周)

    一.实验目的和要求 1.熟练运用常见选择结构: 2.熟练运用for循环和while循环: 3.理解带else语句的循环结构执行过程和break.continue语句在循环中的作用. 二.实验环境 软件 ...

  7. 2017-2018-2 20165315 实验四《Android程序设计》实验报告

    2017-2018-2 20165315 实验四<Android程序设计>实验报告 第24章:初识Android Android Studio项目的目录树 1 build:该目录包含了自动 ...

  8. Python程序设计实验报告一:熟悉IDLE和在线编程平台

    安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  崔攀  学号3190505136 成绩_____           日期     2020.3.8     指导老师  ...

  9. Python程序设计实验报告二:顺序结构程序设计(验证性实验)

      安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  崔攀  学号3190505136 成绩 日期     2020.3.22     指导老师       修宇 [实验 ...

随机推荐

  1. 实战模拟│JWT 登录认证

    目录 Token 认证流程 Token 认证优点 JWT 结构 JWT 基本使用 实战:使用 JWT 登录认证 Token 认证流程 作为目前最流行的跨域认证解决方案,JWT(JSON Web Tok ...

  2. Java 常用Set集合和常用Map集合

    目录 常用Set集合 Set集合的特点 HashSet 创建对象 常用方法 遍历 常用Map集合 Map集合的概述 HashMap 创建对象 常用方法 遍历 HashMap的key去重原理 常用Set ...

  3. 抓到 Netty 一个隐藏很深的内存泄露 Bug | 详解 Recycler 对象池的精妙设计与实现

    欢迎关注公众号:bin的技术小屋,如果大家在看文章的时候发现图片加载不了,可以到公众号查看原文 本系列Netty源码解析文章基于 4.1.56.Final版本 最近在 Review Netty 代码的 ...

  4. 全国气象数据/降雨量分布数据/太阳辐射数据/NPP净初级生产力数据/植被覆盖度数据

    ​        气象数据一直是一个价值较高的数据,它被广泛用于各个领域的研究当中.气象数据包括有气温.气压.相对湿度.降水.蒸发.风向风速.日照等多种指标,但是包含了这些全部指标的气象数据却较难获取 ...

  5. git的基本操作命令和码云的注册使用

    Git文件操作文件的四种状态版本控制就是对文件的版本控制,要对文件进行修改.提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上. Untracke ...

  6. 类似Tower的而故事还没结束

    我对于SaaS一种有一种英雄主义的情怀在里面,无论是早期的推事本,还是后面我去调研的麦客CRM,国内的SaaS都在努力生长,在后疫情时代剩下的都是平台级的钉钉.飞书,或者垂直领域的王炸app了. 我早 ...

  7. ATM系统开发(Java版)

    ATM系统开发 技术点分析 1.面向对象编程 每个用户的账户都是一个对象,所以需要设计账户类Accent用于创建账户对象封装账户信息. 2.使用集合容器 系统需要提供一个容器用于存储这些账户对象的信息 ...

  8. APISpace 让你快速获取名言警句

    名言警句,是指一些名人说的.写的.历史纪录的.经过实践所得出的结论或建议.警示的比较有名的言语.名言警句易于留传.   名言警句API,涵盖人生.励志等多个方面.   APISpace 有很多免费通用 ...

  9. 第二十天python3 正则表达式

    正则表达式 Regular Expression,缩写为regex.regexp.RE等:分类 1.BRE 基本正则表达式,grep.sed.vi等软件支持,vim有扩展: 2.ERE 扩展正则表达式 ...

  10. openstack 虚拟机网卡被重名为cirename0

    虚拟机网卡被重名为cirename0    在虚拟机挂载多网卡情况下,你在虚拟机上卸载网卡后,再创建新的port挂给虚拟机使用,如果虚拟机不经过重启的话,是不会有任何问题的.但是,如果虚拟机重启了,你 ...