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 月 ...
随机推荐
- Qt中的串口编程
串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口.串行接口(Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要 ...
- P8201 [传智杯 #4 决赛] [yLOI2021] 生活在树上(hard version)
个人思路: 首先,题目可以转化为是否存在 \(a,b\) 路径上一点 \(u\),满足 \(w_u = dis{1,a} \oplus dis{1,b} \oplus w_{lca(a,b)} \op ...
- chfs共享系统搭建
手机电脑文件共享搭建(http://iscute.cn/chfs) 1.下载wget http://iscute.cn/tar/chfs/2.0/chfs-linux-amd64-2.0.zip 2. ...
- VS2010运行opencv的程序,出现“应用程序无法正常启动0xc000007b”的解决方法
问题描述 当我们在用vs2010对工程进行编译结束后,并且生成了可执行文件时,但是运用时却出现了"应用程序无法正常启动0xc000007b" 解决方法 这个通常是有一些动态链接库没 ...
- const引用和指针
1.可以为const引用初始化一个非const的对象.字面值,甚至是一般表达式. 2.对引用初始化时必须严格进行类型匹配,但是const引用初始化时不需要类型匹配,只要可以转换为const所定义的类型 ...
- idea提交时忽略.class、.iml文件和文件夹或目录的方法
第一种方法 在Setings–> Editor --> File Types -->Ignore files and folders中添加需要忽略的文件和文件夹: .idea 忽略 ...
- 管理名称空间资源(Kubernetes)
管理名称空间资源 名称空间(Namespace)是Kubernetes集群级别的资源,用于将集群分隔为多个隔离的逻辑分区以配置给不同的用户.租户.环境或项目使用.例如,可以为development.q ...
- yield基础知识
function* y(p1){ let r=p1; r=(yield r-5) //表达式A,在第1轮是普通return,在第2轮next(param)时会被param替换 r=(yield r*2 ...
- 收集的sql经典语句
经典SQL语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql serve ...
- iterm2免密自动登陆服务器
之前的配置方式出现了less命令查看文本格式紊乱,以及输入的命令也是紊乱的,导致没办法正常使用 以前的配置方式如下: 在iterm2里配置command,如下图 2. online文件如下: #!/u ...