一、实验目的
1、掌握列表的概念,使用场景和使用步骤;
2、掌握元组的概念,使用场景和使用步骤;
3、掌握字典的概念,使用场景和使用步骤;
二、实验环境
装有Python运行环境、Pycharm平台的PC电脑一台
三、实验内容
1、用列表实现:输入三个整数x,y,z,请把这三个数由小到大输出。
2、现有一个班级的学生数学成绩list(可随机生成40名同学的数学成绩),要求统计及格人的平均成绩。
"""2、现有一个班级的学生数学成绩list(可随机生成40名同学的数学成绩),要求统计及格人的平均成绩。"""import randomdef get_level(score):if 90 < score <= 100:return '非常优秀'elif 80 < score <= 90:return '优秀'elif 60 < score <= 80:return '及格'else:return '不及格'def main():for i in range(40):score = random.randint(1, 100)level = get_level(score)print("成绩: %s, 等级: %s" % (score, level))if __name__ == "__main__":main()

3、编写程序,输入一个大于 2 的自然数,然后输出小于该数字的所有素数组成的列表;
4、求一个3*3矩阵主对角线元素之和。
5、计算两个矩阵相加。
6、利用列表实现石头剪刀布游戏;
"""6、利用列表实现石头剪刀布游戏;"""import randomallList=['石头','剪刀','布']winList=[['石头','剪刀'],['剪刀','布'],['布','石头']] #定义胜的情况chum=-1prompt='''欢迎参加游戏,请选择对应的数字0 石头,1 剪刀,2 布,3 我不想玩了'''while True:chnum=input(prompt)if chnum not in['0','1','2','3']:print("无效的选择,请选择0/1/2/3")continueif chnum=='3':breakcchoice=random.choice(allList) #电脑随机选择'石头','剪刀','布'uchoice=allList[int(chnum)]print("您选择了:{}\n计算机选择了:{}".format(uchoice,cchoice))if uchoice==cchoice:print("平局")elif [uchoice,cchoice] in winList: #胜的情况print("你赢了!!!")else:print("你输了!!!")print("游戏结束!")

7、编写程序,模拟抓狐狸小游戏。假设一共有一排 5 个洞口,小狐狸最开始的时候在其中一个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就抓到了。如果洞口里没有狐狸就第二天再来抓,但是第二天狐狸会在玩家来抓之前跳到隔壁洞口里。
"""7、编写程序,模拟抓狐狸小游戏。假设一共有一排 5 个洞口,小狐狸最开始的时候在其中一个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就抓到了。如果洞口里没有狐狸就第二天再来抓,但是第二天狐狸会在玩家来抓之前跳到隔壁洞口里。"""import randomdef sj():csj = random.randint(1, 5)return csja = sj() #小狐狸最开始的时候在其中一个洞口aCount = 0while True:# for i in range(5):x = int(input('请输入要打开的洞口编号(1-5),输入6退出:'))if x not in [0, 1, 2, 3, 4, 5]:print("无效的选择,请选择0/1/2/3/4/5")continueif(x==6):breakCount += 1if x == a: #玩家随机打开一个洞口,抓到了print('玩家胜利,您共猜了:%d次'%(Count))breakelse:print("选择了{},未猜中".format(x))a += random.choice([-1, 1]) #跳到隔壁洞口

8、编写程序,模拟打字练习程序的成绩评定。假设 origin 为原始内容,userInput 为用户练习时输入的内容,要求用户输入的内容长度不能大于原始内容的长度,如果对应位置的字符一致则认为正确,否则判定输入错误。最后成绩为:正确的字符数量/原始字符串长度,按百分制输出,要求保留 2 位小数。
"""8、编写程序,模拟打字练习程序的成绩评定。假设 origin 为原始内容,userInput 为用户练习时输入的内容,要求用户输入的内容长度不能大于原始内容的长度,如果对应位置的字符一致则认为正确,否则判定输入错误。最后成绩为:正确的字符数量/原始字符串长度,按百分制输出,要求保留 2 位小数。"""import randomimport stringorder = 'y'while (order == 'y' or order == 'Y'):print('----------模拟打字练习程序----------')original = ''.join(random.sample('abcdefghijklmnopqrstuvwxyz', 10)) # 随机生成由10个小写英文字符构成的字符串,字符数可改变print('输出:' + original)userInput = input('输入:')combination = list(zip(original, userInput))true_word = 0.0 #记录正确的字符数# 统计正确字符数for word in combination:if word[0] == word[1]:true_word += 1# 评定等级score = round(true_word / len(original), 3) * 100if (score >= 90):grade = '优'elif (score >= 80):grade = '良'elif (score >= 70):grade = '中'elif (score >= 60):grade = '及格'else:grade = '不及格'print('分数:' + str(score) + '分\n成绩等级:' + grade)order = input('\n是否继续练习(输入Y(y)orN(n)):')print('退出程序!')

9、利用字典实现金庸小说中的大侠个人信息查询程序(至少得有三个人);
"""9、利用字典实现金庸小说中的大侠个人信息查询程序(至少得有三个人);"""people={'乔峰':{'绝技':'降龙十八掌','门派':'丐帮'},'张无忌':{'绝技': '乾坤大挪移','门派': '明教'},'令狐冲': {'绝技': '乾坤大挪移','门派': '华山派'}}labels={'绝技': '行走在江湖的绝技','门派': '所在的门派'}#初始化名字name =input ('请输入大侠的名字:')#获取选项r=input ('请选择大侠的绝技(q)或者门派(a):')#获取键if r=='q':y='绝技'if r =='a':y='门派'#查找if name in people:print("{}大侠{}是{}".format(name,labels[y],people[name][y]))

10、将一个N=10个元素的列表转换为字典。
心得体会
练习了python的列表,元组和字典的基本使用
