实验报告

【实验目的】

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. PMP 考试常见工具与技术点总结

    转载请注明出处: 网络图:项目进度活动之间的逻辑关系,用来推算关键路径,最大浮动时间等: 横道图(甘特图):以图示的方式,通过活动列表和时间刻度,来展示项目获得那个顺序和持续时间 责任分配矩阵:每件事 ...

  2. 【C++】学生管理系统

    [C++]学生管理系统 一道非常经典的C语言题目,用C++实现   题目如下: 输入功能:由键盘输入10个学生的学号.姓名.三科成绩,并计算出平均成绩和总成绩,然后将它存入文件stud.dat. 插入 ...

  3. 聊聊 C++ 中几类特殊成员函数

    一:背景 在 C# 中要说类默认给我们定义的特殊成员函数,莫过于 构造函数,但在 C++ 中这样的特殊函数高达 6 种,有必要整合一下聊一聊. 二:特殊成员函数 1. 默认构造函数 和 C# 一样,很 ...

  4. jupyter 反向代理配置

    抓了下包,看了一下WS连不上,参考这个,问题解决 location / { proxy_pass http://127.0.0.1:8813/; # JUPYTER_PORT 为 Jupyter 运行 ...

  5. Assembly.GetManifestResourceStream为null

    想把某个项目的某个文件夹里面的ini文件生成的时候顺便生成为网站和服务文件夹项目 string _path = Path.Combine(AppDomain.CurrentDomain.BaseDir ...

  6. dos命令-*02

    1.cmd状态下 tab快速补充文件名 ↑↓快速填充之前输入的文件名 2.//这是Java的快速入门 //对代码的相关说明 //1.public class Hello 表示Hello是一个类,是一个 ...

  7. Solution -「校内题」矩阵求和

    Description 共 \(T\) 组数据.对于每组数据,给定 \(a, b, n\),求 \(\sum_{i = 1}^{n} \sum_{j = 1}^{n} \gcd(a^i - b^i, ...

  8. Nginx常用命令之启动与重启

    1.测试新的Nginx程序是否正确 [test@P-SH-Nginx-01 nginx]$ ./sbin/nginx -t nginx: the configuration file /usr/loc ...

  9. net core天马行空系列-各大数据库快速批量插入数据方法汇总

    1.前言 hi,大家好,我是三合.我是怎么想起写一篇关于数据库快速批量插入的博客的呢?事情起源于我们工作中的一个需求,简单来说,就是有一个定时任务,从数据库里获取大量数据,在应用层面经过处理后再把结果 ...

  10. CMake库搜索函数居然不搜索LD_LIBRARY_PATH

    摘要: 本文通过编译后运行找不到库文件的问题引入,首先分析了find_package(JNI)的工作流程,而后针对cmake不搜索LD_LIBRARY_PATH的问题,提出了一种通用的解决办法. 本文 ...