Python第四章实验报告
一.实验项目名称:《零基础学Python》第四章的14道实例和4道实战
二.实验环境:IDLE(Python 3.9 64-bit)
三.实验目的和要求:熟练掌握Python序列的应用
四.实验过程:
实例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 idex,item in enumerate(team):
if idex%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)
、
运行结果:

实例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(5): #循环每一行的每个字(列)
if j==4: #如果是一行中的最后一个字
print(verse[i][j]) #换行输出
else:
print(verse[i][j],end="") #不换行输出
verse.reverse() #对列表进行逆序排列
print("\n--竖版--")
for i in range(5): #循环每一行的每个字(列)
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 idex,item in enumerate(team):
if idex%2==0:
print(item+"\t\t",end='')
else:
print(item+"\n")
、
运行结果:

实例08 将麝香猫咖啡替换为拿铁咖啡
在IDLE中创建一个cafe_reolace.py的文件,然后在该文件中,定义一个包含6个元素的元组,内容为伊米咖啡馆里的咖啡名称,然后修改其中的第5个元素的内容为“拿铁”,代码如下:
点击查看代码
#定义元组
coffeename=('蓝山','卡布奇诺','曼特宁','摩卡','麝香猫','哥伦比亚')
#将“麝香猫”替换为“拿铁”
coffeename[4]='拿铁'
print(coffeename)
、
运行结果:

实例06 创建一个保存女神星座的字典
在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('选择pyhon语言的学生有:',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)
、
运行结果:

实战01 输出“王者荣耀”的游戏角色
“王者荣耀”游戏中有很多英雄,这些英雄可以分为法师、战士、坦克、刺客、射手和辅助。本实战将应用Python中的列表存储不同类别的英雄,并且遍历输出这些英雄。
代码如下:
点击查看代码
print("“王者荣耀”游戏角色:")
print("===坦克:===")
tk=["苏烈","刘邦","钟馗","张飞","牛魔","程咬金","白起","刘禅","庄周","项羽","廉颇","巨灵神","安禄山","猪八戒"]
for idex,item in enumerate(tk):
print(item+"\t",end='')
print("\n===战士:===")
zs=["狂铁","裴擒虎","铠","孙悟空","哪吒","杨戬","橘右京","亚瑟","雅典娜","夏候惇","关羽","吕布","韩信","老夫子"
,"达摩","典韦","曹操","钟无艳","墨子","赵云","刑天","龙且"]
for idex,item in enumerate(zs):
print(item+"\t",end='')
print("\n===刺客:===")
ck=["百里玄策","庞统","花木兰","阿轲(荆轲)","不知火舞","李白","娜可露露","兰陵王","露娜","韩信","官本","武藏","盖聂","红拂"]
for idex,item in enumerate(ck):
print(item+"\t",end='')
print("\n===法师:===")
fs=["杨玉环","弈星","女娲","周瑜","鬼谷子","芈月","干将莫邪","东皇太一","大乔","诸葛亮","貂蝉","张良","安琪拉",
"不知火舞","姜子牙","武则天","王昭君","甄姬","扁鹊","高渐离","嬴政","妲己","小乔"]
for idex,item in enumerate(fs):
print(item+"\t",end='')
print("\n===射手:===")
ss=["公孙离","百里守约","后羿","刘备","黄忠","马可波罗","成吉思汗","虞姬","李元芳","艾琳","狄仁杰","鲁班七号","孙尚香"]
for idex,item in enumerate(ss):
print(item+"\t",end='')
print("\n===辅助:===")
fz=["明世隐","梦奇","孙膑","太乙真人","蔡文姬"]
for idex,item in enumerate(fz):
print(item+"\t",end='')
、
运行结果:

实战02 模拟火车订票系统
模拟火车订票系统,效果如图:

代码如下:
点击查看代码
def jc_checi(string):
if string in CC:
return string
else:
cw=input("暂无该车次,请输入要购买的其他车次:")
return jc_checi(cw)
CC=['车次','T40','T298','Z158','Z62']
CFZ_DDZ=["出发站-到达站",'长春-北京','长春-北京','长春-北京','长春-北京']
CFSJ=["出发时间",'00:12','00:06','12:48','21:58']
DDSJ=["到达时间",'12:20','10:50','21:06','06:08']
LS=["历时",'12:08','10:44','08:18','8:20']
print(CC[0]+"\t",CFZ_DDZ[0]+"\t",CFSJ[0]+"\t\t",DDSJ[0]+"\t\t",LS[0])
print(CC[1]+"\t",CFZ_DDZ[1]+"\t",CFSJ[1]+"\t\t",DDSJ[1]+"\t\t",LS[1])
print(CC[2]+"\t",CFZ_DDZ[2]+"\t",CFSJ[2]+"\t\t",DDSJ[2]+"\t\t",LS[2])
print(CC[3]+"\t",CFZ_DDZ[3]+"\t",CFSJ[3]+"\t\t",DDSJ[3]+"\t\t",LS[3])
print(CC[4]+"\t",CFZ_DDZ[4]+"\t",CFSJ[4]+"\t\t",DDSJ[4]+"\t\t",LS[4])
checi=input("请输入要购买的车次:")
checi=jc_checi(checi)
ccr=input("请输入乘车人(用逗号隔开):")
if checi==CC[1]:
sj=CFSJ[1]
if checi==CC[2]:
sj=CFSJ[2]
if checi==CC[3]:
sj=CFSJ[3]
if checi==CC[4]:
sj=CFSJ[4]
print("你已购"+checi+"次列车 长春-北京"+sj+"开,请"+ccr+"准时乘车。【铁路客服】")
、
运行结果:

实战03 电视剧的收视率排行榜

代码如下:
点击查看代码
print("电视剧的收视率排行榜:")
DSJ_SSLS=[('《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)
]
DSJ_SSLS=sorted(DSJ_SSLS,key=lambda S:S[1],reverse=True)
for DSJ_SSL in DSJ_SSLS:
print(DSJ_SSL[0]+"收视率:"+str(DSJ_SSL[1])+"%")
、
运行结果:

实例04 统计需要取快递人员的名单
双十一过后,某公司每天都能收到很多快递,门卫小张想要写一个程序统计一下收到快递的人员名单,以便统一通知。现请你帮他编写一段Python程序,统计出需要来取快递的人员名单。
点击查看代码
name=set()
name1=set()
none=True
while none:
ry = input("请输入收到快递人员的名单(输入0退出): ")
if ry== '0':
none=False
break
name1.add(ry)
if len(name1)==len(name):
print("取快递人员已存在!")
name.add(ry)
print("需要通知取快递的人员名单:")
for item in name:
print(item + "\t")
、
运行结果:

Python第四章实验报告的更多相关文章
- 20145330《Java程序设计》第四次实验报告
20145330<Java程序设计>第四次实验报告 实验四 Android环境搭建 实验内容 1.搭建Android环境 2.运行Android 3.修改代码,能输出学号 实验步骤 搭建A ...
- 20145320《Java程序设计》第四次实验报告
20145320<Java程序设计>第四次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.26 15: ...
- 简学Python第四章__装饰器、迭代器、列表生成式
Python第四章__装饰器.迭代器 欢迎加入Linux_Python学习群 群号:478616847 目录: 列表生成式 生成器 迭代器 单层装饰器(无参) 多层装饰器(有参) 冒泡算法 代码开发 ...
- 20145240 《Java程序设计》第四次实验报告
20145240 <Java程序设计>第四次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.04.26 实验 ...
- 20145238-荆玉茗 《Java程序设计》第四次实验报告
20145238<Java程序设计>第四次实验报告 实验四 Android环境搭建 实验内容 1.搭建Android环境 2.运行Android 3.修改代码,能输出学号 实验步骤 搭建A ...
- 第六周学习总结&第四次实验报告
第六周学习总结&第四次实验报告 学习总结 这周我们简单的学习了一点点关于接口的内容,接口是Java中最重要的概念之一,接口可以理解为一个特殊的类, 里面由全局常量和公共的抽象方法组成,接口摆脱 ...
- C语言第四次实验报告
第四次实验报告 一·实验项目名称: 多球反弹 二·实验项目功能描述: (1)实现多个小球 (2)实现多个小球碰壁会反弹 (3)实现小球之间碰撞反弹 三· 项目模块结构介绍 #define High 4 ...
- 2019JAVA第四次实验报告
JAVA实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019/9/29 评分等级 实验四 类的继承 1.实验目的 掌握类的继承方法: 变量的继承和覆盖,方法的继承.重载和 ...
- Python第四章-字典
第四章 字典-当索引不好用时 4.0 字典可以理解成是C++里的map,可以映射任何类型.字典这种结构类型称为映射(mapping). 字典是Python中唯一内建的映射类型,字典中的值并 ...
- 南京邮电大学java第四次实验报告
实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 6 月 ...
随机推荐
- imputation-综述文章:关于网络推理的scRNA序列插补工具基准突出了高稀疏性水平下的性能缺陷
文章题目: Benchmarking scRNA-seq imputation tools with respect to network inference highlights 中文题目: 关于网 ...
- SHR常用f7[更新ing]
<field id="unit" name="unit" label="单位" dataType="F7" uip ...
- Taro 弹窗阻止小程序滑动穿透(亲测有效) tabbar数据缓存不更新 入口场景值不同
v3.0 推出后反馈最多的问题之一,就是在 touchmove 事件回调中调用 e.stopPropagation() 并不能阻止滑动穿透. 这是因为 Taro 3 的事件冒泡机制是单独在小程序逻辑层 ...
- Delphi中纤程的使用
首先我们来看看纤程的定义 纤程(来自百科): 纤程是Windows为了将Unix服务程序更好的移植到Windows上而创建的, 线程是在Windows内核中实现的,纤程是在用户模式下实现的,内核对纤程 ...
- .gitignore忽略文件无效的解决办法
.gitignore中已经标明忽略的文件目录下的文件,git push的时候还会出现在push的目录中,原因是因为在git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中, ...
- 关于Java字符串、字符与数字之间的相互转换
一.数字转字符串 //将整个数字转化为字符串 int i=456; //方法一 String str1=Integer.toString(i); System.out.println(str1); / ...
- 连接打印机Lodop
<div class="panel-body"> <div class="row show-grid"> <div class=& ...
- SpringIOC以及AOP注解开发
和 XML 配置文件一样,注解本身并不能执行,注解本身仅仅只是做一个标记,具体的功能是框架检测到注解标记的位置,然后针对这个位置按照注解标记的功能来执行具体操作. 本质上:所有一切的操作都是 Java ...
- 六、js创建页码器:分页、上一页下一页、省略页码
表格数据太多,需要做成分页.因此需要写一个页码器. 1,初始化页码 获取数据之后渲染页码器,页码器初始化,小于6页的全部展示,否则展示前四页,后面是省略号,最后展示尾页.默认选中第一页,禁用前一页的箭 ...
- PTA一元多项式的乘法与加法运算 另一种算法
设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. ...