首页 > 编程语言 >Python学习实验报告03——序列

Python学习实验报告03——序列

时间:2022-10-09 16:44:37浏览次数:46  
标签:03 name Python 列表 收视率 香凝 print python 实验报告

实验要求:

完成课本实例部分及实战部分

实验内容:

Part1 实例:

实例01:

创建一个文件命名为tips,导入日期时间类,定义一个包含七条励志文字的列表,获取当前星期作为索引输出每日一贴

代码如下

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

运行结果:

注 实验当天为周日

今天星期天:
成功将属于那些从不说“不可能”的人。
实例02:

遍历列表,分两列遍历输出2017~2018赛季NBA西部联盟前八名的队伍

代码如下:

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=' ')        #end=' ',python默认输出结尾为换行,end=,自己选择结尾
6     else:                                   #非偶数换行
7         print(item +'\n')

运行结果:

2017~2018赛季NBA西部联盟前八名

火箭         勇士

开拓者         雷霆

爵士         鹈鹕

马刺         森林狼
实例03:

在列表中添加元素,在NBA名人堂列表中追加2018年新进入的球星

代码如下:

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

运行结果:

['迈克尔·乔丹', '卡里姆·阿布杜尔·贾巴尔', '哈吉姆·奥拉朱旺', '查尔斯·巴克利', '姚明', '贾森·基德', '史蒂夫·纳什', '格兰特·希尔']
实例04:

使用二维列表输出横板和竖版古诗

代码如下:

str1='千山鸟飞绝'
str2='万径人踪灭'
str3='孤舟蓑笠翁'
str4='独钓寒江雪'
#用字符串和list()生成为二位列表,输出二位横板列表
Arr=[list(str1),list(str2),list(str3),list(str4)]
print("——横板——")
for i in range(0,4):
    for j in range(0,5):
        print(Arr[i][j],end='')
        if j==4:
            print("\n")
#输出二维竖版列表
print("——竖版——")
for j in range(-5,0):
    for i in range(-4,0):
        print(Arr[i][j],' ',end='')
        if i == -1:
            print('\n')

运行结果:

——横板——
千山鸟飞绝

万径人踪灭

孤舟蓑笠翁

独钓寒江雪

——竖版——
千  万  孤  独  

山  径  舟  钓  

鸟  人  蓑  寒  

飞  踪  笠  江  

绝  灭  翁  雪  
实例05:

使用元组保存咖啡馆里的咖啡名称

代码如下:

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

运行结果:

 ('蓝山', '卡布奇诺', '曼特宁', '摩卡', '麝香猫', '哥伦比亚')
实例06:

使用for循环列出咖啡馆里的咖啡名称

代码如下:

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

运行结果:

您好,欢迎光临~伊米咖啡~

本店有:

蓝山咖啡  卡布奇诺咖啡  曼特宁咖啡  摩卡咖啡  麝香猫咖啡  哥伦比亚咖啡  
实例07:

使用元组输出实例02的内容

代码如下:

 

1 print("2017~2018赛季NBA西部联盟前八名:\n")
2 team=("火箭","勇士","开拓者","雷霆","爵士","鹈鹕","马刺","森林狼")
3 for index,name in enumerate(team):
4     if index % 2 == 0:
5         print(name+'\t\t',end='')
6     else:
7         print(name)

运行结果:

2017~2018赛季NBA西部联盟前八名:

火箭        勇士
开拓者        雷霆
爵士        鹈鹕
马刺        森林狼
实例08:

创建一个字典用于保存星座

代码如下:

1 name = ["绮梦","冷凝一","香凝","黛香"]         #作为键的列表  
2 sign = ["水瓶座","射手座","双鱼座","双子座"]   #作为值的列表
3 dictionary = dict(zip(name,sign))              #转化为字典
4 print(dictionary)

运行结果:

{'绮梦': '水瓶座', '冷凝一': '射手座', '香凝': '双鱼座', '黛香': '双子座'}
实例09:

创建一个字典保存星座,并根据星座输出其特点,该实验省略特点的详细内容

代码如下:

 1 name = ["绮梦","冷凝一","香凝","黛香"]                    #作为键的列表  
 2 sign_person = ["水瓶座","射手座","双鱼座","双子座"]       #作为值的列表
 3 person_dict = dict(zip(name,sign_person))                 #生成个人字典
 4 sign_all = ['白羊座','金牛座','双子座','巨蟹座','狮子座','处女座',
 5             '天秤座','天蝎座','射手座','摩羯座','水瓶座','双鱼座']    #星座字典的键列表
 6 nature = ['白羊座的特点','金牛座的特点','双子座的特点',
 7           '巨蟹座的特点','狮子座的特点','处女座的特点',
 8           '天秤座的特点','天蝎座的特点','射手座的特点',
 9           '摩羯座的特点','水瓶座的特点','双鱼座的特点']               #星座字典的值列表
10 sign_dict = dict(zip(sign_all,nature))                                 #生成星座字典
11 print("【香凝】的星座是",person_dict.get("香凝"))                     #输出星座
12 print("\n她的性格特点是:\n\t",sign_dict.get(person_dict.get("香凝"))) #输出性格特点

运行结果:

【香凝】的星座是 双鱼座

她的性格特点是:
     双鱼座的特点
实例10:

使用字典推导式,将列表转化为字典

代码如下:

1 name = ["绮梦","冷凝一","香凝","黛香"]         #作为键的列表  
2 sign = ["水瓶座","射手座","双鱼座","双子座"]   #作为值的列表
3 dictionary = {i:j+'座' for i,j in zip(name,sign)}    #使用列表推导式生成字典
4 print(dictionary)

运行结果:

{'绮梦': '水瓶座座', '冷凝一': '射手座座', '香凝': '双鱼座座', '黛香': '双子座座'}
实例11:

创建一个集合保存学生选课信息

代码如下:

1 python = {'绮梦','冷凝一','香凝','梓轩'}     #保存选择python的学生
2 c = {'冷凝一','零语','梓轩','圣博'}          #保存选择c语言的学生
3 print("选择python的学生有:",python,'\n')
4 print("选择C语言的学生有: ",c)               #输出全部学生

运行结果:

选择python的学生有: {'冷凝一', '香凝', '绮梦', '梓轩'} 

选择C语言的学生有:  {'零语', '冷凝一', '梓轩', '圣博'}
实例12:

使用集合实现学生更改选学课程

代码如下:

1 python = set(['绮梦','冷凝一','香凝','梓轩'])    #保存选择python的学生
2 python.add('零语')                               #添加元素到集合中
3 c = set(['冷凝一','零语','梓轩','圣博'])         #保存选择c的学生
4 c.remove('零语')                                 #删除集合中的指定元素
5 print('选择python的学生有:',python,'\n')
6 print('选择c语言的学生有: ',c)

运行结果:

选择python的学生有: {'香凝', '梓轩', '冷凝一', '零语', '绮梦'} 

选择c语言的学生有:  {'圣博', '梓轩', '冷凝一'}
实例13:

对现有集合进行交集,并集和差集运算

代码如下:

1 python = set(['绮梦','冷凝一','香凝','梓轩'])    #保存选择python的学生
2 c = set(['冷凝一','零语','梓轩','圣博'])         #保存选择c的学生
3 print('选择python的学生有:',python,'\n')
4 print('选择c语言的学生有: ',c,'\n')
5 print('交集运算: ',python & c)
6 print('并集运算:',python | c)
7 print('差集运算:',python - c)

运行结果:

选择python的学生有: {'梓轩', '冷凝一', '绮梦', '香凝'} 

选择c语言的学生有:  {'梓轩', '圣博', '冷凝一', '零语'} 

交集运算:  {'梓轩', '冷凝一'}
并集运算: {'绮梦', '零语', '梓轩', '圣博', '香凝', '冷凝一'}
差集运算: {'绮梦', '香凝'}

Part2 实战:

实战1:

使用列表存储并输出王者荣耀中的英雄,按英雄定位分开输出

代码如下:

注 代码中使用了列表和字典两种形式

 1 print("列表输出:\n")
 2 print("“王者荣耀”游戏角色:")
 3 position = ['坦克','战士','刺客','法师','射手','辅助']
 4 name = [['苏烈','刘邦','张飞','牛魔'],['狂铁','吕布','哪吒','铠'],
 5         ['元歌','李白','阿珂','韩信'],['奕星','女娲','妲己','貂蝉'],
 6         ['后羿','黄忠','虞姬','艾琳'],['孙膑','瑶','桑启','钟馗']]
 7 for i in range(0,6):
 8     print("===",position[i],"===")
 9     for j in range(0,4):
10         print(name[i][j],'\t',end='')
11         if j == 3:
12             print('')
13 ######分割线##########
14 print('\n\n')
15 ######分割线##########
16 print('字典形式:\n')
17 print("“王者荣耀”游戏角色:")
18 all_name = {i:j for i,j in zip(position,name)}
19 for i in position:
20     print('===',i,'===')
21     print(all_name[i])

运行结果:

列表输出:

“王者荣耀”游戏角色:
=== 坦克 ===
苏烈     刘邦     张飞     牛魔     
=== 战士 ===
狂铁     吕布     哪吒     铠     
=== 刺客 ===
元歌     李白     阿珂     韩信     
=== 法师 ===
奕星     女娲     妲己     貂蝉     
=== 射手 ===
后羿     黄忠     虞姬     艾琳     
=== 辅助 ===
孙膑     瑶     桑启     钟馗     



字典形式:

“王者荣耀”游戏角色:
=== 坦克 ===
['苏烈', '刘邦', '张飞', '牛魔']
=== 战士 ===
['狂铁', '吕布', '哪吒', '铠']
=== 刺客 ===
['元歌', '李白', '阿珂', '韩信']
=== 法师 ===
['奕星', '女娲', '妲己', '貂蝉']
=== 射手 ===
['后羿', '黄忠', '虞姬', '艾琳']
=== 辅助 ===
['孙膑', '瑶', '桑启', '钟馗']
实战2:

使用序列模拟火车订票系统

代码如下:

 1 print('''
 2 车次    出发站—到达站     出发时间     到达时间     历时
 3 T40     长春—北京         00:12        12:00        12:08
 4 T298    长春—北京         00:06        10:50        10:44
 5 Z158    长春—北京         12:46        21:06        08:18
 6 Z62     长春—北京         21:56        06:08        8:20
 7 ''')
 8 key = input("请输入要购买的车次:")
 9 name = input("请输入乘车人,用“,”隔开:")
10 system = {"T40":"长春—北京 00:12","T298":"长春—北京 00:06","Z158":"长春—北京 12:46",
11           "Z62":"长春—北京 21:56"}
12 print("您已购买 ",key," 次列车  ",system[key],"开,请",name,"准时乘车。【铁路客服】")

运行结果:

使用例子  Z62 小明

输入部分使用加粗斜体

车次    出发站—到达站     出发时间     到达时间     历时
T40     长春—北京         00:12        12:00        12:08
T298    长春—北京         00:06        10:50        10:44
Z158    长春—北京         12:46        21:06        08:18
Z62     长春—北京         21:56        06:08        8:20

请输入要购买的车次:Z62
请输入乘车人,用“,”隔开:小明
您已购买  Z62  次列车   长春—北京 21:56 开,请 小明 准时乘车。【铁路客服】
实战3:

应用列表和元组将电视剧收视率数据进行排序

代码如下:

 1 #定义列表,成员为每个节目名和收视率组成的元组
 2 name = [('0.93','《My father-in-law will do martiaiarts》'),
 3         ('1.343','《The private dishes of the husbands》'),
 4         ('1.4','《Give up,hold on to me》'),
 5         ('0.862','《North Canton still believe in love》'),
 6         ('0.553','《Impossible task》'),
 7         ('0.411','《Sparrow》'),
 8         ('0.164','《East of dream Avenue》'),
 9         ('0.259','《The prodigal son of the new frontier town》'),
10         ('0.394','《Distant distance》'),
11         ('0.562','《Music legend》')]
12 #sort函数排序
13 name.sort(reverse = True)
14 #输出排序后的列表
15 for item in name:
16     print(item[1],'收视率:',item[0],'%')

运行结果:

《Give up,hold on to me》 收视率: 1.4 %
《The private dishes of the husbands》 收视率: 1.343 %
《My father-in-law will do martiaiarts》 收视率: 0.93 %
《North Canton still believe in love》 收视率: 0.862 %
《Music legend》 收视率: 0.562 %
《Impossible task》 收视率: 0.553 %
《Sparrow》 收视率: 0.411 %
《Distant distance》 收视率: 0.394 %
《The prodigal son of the new frontier town》 收视率: 0.259 %
《East of dream Avenue》 收视率: 0.164 %

在笔者学习至函数部分后,对该题用lambda函数再重新做了一遍

代码如下:

 1 #定义列表,成员为每个节目名和收视率组成的元组
 2 name = [('《My father-in-law will do martiaiarts》','0.93'),
 3         ('《The private dishes of the husbands》','1.343'),
 4         ('《Give up,hold on to me》','1.4'),
 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 #使用匿名函数和sort函数排序
13 name.sort(key = lambda x:x[1] ,reverse = True)
14 #输出排序后的列表
15 for item in name:
16     print(item[0],'收视率:',item[1],'%')

运行结果:

《Give up,hold on to me》 收视率: 1.4 %
《The private dishes of the husbands》 收视率: 1.343 %
《My father-in-law will do martiaiarts》 收视率: 0.93 %
《North Canton still believe in love》 收视率: 0.862 %
《Music legend》 收视率: 0.562 %
《Impossible task》 收视率: 0.553 %
《Sparrow》 收视率: 0.411 %
《Distant distance》 收视率: 0.394 %
《The prodigal son of the new frontier town》 收视率: 0.259 %
《East of dream Avenue》 收视率: 0.164 %
实战4:

使用循环和列表统计需要取快递的人员名单

代码如下:

i = 1               #设置循环条件
name = set()        #创建空集合
while i:
    key = input("请输入收到快递人员的名单(输入0退出): ")    
    if key == '0':                                      #判断输入为0
        i=0                                             #设置结束循环条件
        print("需要通知取快递的人员名单:")
        for j in name:                                  #循环输出名单
            print(j)
    elif key in name:                                   #判断人员是否已经在名单中
        print("取快递人员已存在!")
    else:
        name.add(key)                                   #加入名单中

运行结果:

使用例子 小明 小红 小王 0

输入部分使用加粗斜体

请输入收到快递人员的名单(输入0退出): 小明
请输入收到快递人员的名单(输入0退出): 小红
请输入收到快递人员的名单(输入0退出): 小王
请输入收到快递人员的名单(输入0退出): 小明
取快递人员已存在!
请输入收到快递人员的名单(输入0退出): 0
需要通知取快递的人员名单:
小红
小明
小王

 

本篇完~~~~

标签:03,name,Python,列表,收视率,香凝,print,python,实验报告
From: https://www.cnblogs.com/AZhua/p/16771600.html

相关文章

  • python函数内容
    目录今日内容概要1.函数简介2.函数语法结构3.函数的定义以及调用4.函数的分类5.函数参数(重中之重)6.函数的返回值7.练习题及答案今日内容概要函数简介函数的语法结构函......
  • Python中使用Mysql(编码实践)
    文档或者看源码​​http://mysql-python.sourceforge.net/MySQLdb-1.2.2/public/MySQLdb-module.html​​开篇在上一篇Python中使用Mysql(安装篇)中,我们为Python安装了支持My......
  • Python中使用Mysql(安装篇)
    准备工作importMySQLdbLinux系统自带了Python,但并不是都有这个包,至少我每次拿到一台全新的服务器时候,都发现没有装这个包。这个东西的下载地址是​​http://sourceforge.n......
  • 使用c调用python
    windowc调用python的原理大概是将python当做一个c++库来调用导入头文件将python的头文件复制到项目中,头文件在python安装目录中在vs项目属性中的vc++目录的包含目录添......
  • Kerberos 认证错误 :Can't get Kerberos realm
    原始代码为:org.apache.hadoop.security.UserGroupInformation.setConfiguration(conf)出现错误:Can'tgetKerberosrealm 原因:程序读取不到krb5.conf 解决办法......
  • 【Java复健指南03】递归思想
    【递归】递归重要规则1.执行一个方法时,就创建一个新的受保护的独立空间(栈空间)方法的局部变量是独立的,不会相互影响,比如n变量如果方法中使用的是引用类型变量(比......
  • python递归算法
    递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调自己”,一个使用递归技术的方法将会直接或间接的调用自己。利用递归可以用简单的程序来解决......
  • 003Java的诞生
    003Java的诞生1、计算机语言发展史(1)第一代语言机器语言我们都知道计算机的基本计算方式都是基于二进制的方式。二进制:010111001010110010110100这种代码是直接输......
  • 挑战Python的语法练习
    前面的文章中我们已经学习了Python的许多知识点,了解了Python的基本概念和一些语法知识,算是对Python有了一个很好的了解。在接下来的最后一关,我们来一场华丽的华山论剑,我们......
  • 【Web开发】Python实现Web服务器(Sanic)
    1、简介https://sanic.dev/zh/https://github.com/sanic-org/sanicSanic是Python3.7+Web服务器和Web框架,旨在提高性能。它允许使用Python3.5中添加的async/awa......