一、实验目的
1、掌握列表的概念,使用场景和使用步骤;
2、掌握元组的概念,使用场景和使用步骤;
3、掌握字典的概念,使用场景和使用步骤;
二、实验环境
装有Python运行环境、Pycharm平台的PC电脑一台
三、实验内容
1、用列表实现:输入三个整数x,y,z,请把这三个数由小到大输出。
2、现有一个班级的学生数学成绩list(可随机生成40名同学的数学成绩),要求统计及格人的平均成绩。
"""
2、现有一个班级的学生数学成绩list(可随机生成40名同学的数学成绩),要求统计及格人的平均成绩。
"""
import random
def 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 random
allList=['石头','剪刀','布']
winList=[['石头','剪刀'],['剪刀','布'],['布','石头']] #定义胜的情况
chum=-1
prompt='''
欢迎参加游戏,请选择对应的数字
0 石头,1 剪刀,2 布,3 我不想玩了
'''
while True:
chnum=input(prompt)
if chnum not in['0','1','2','3']:
print("无效的选择,请选择0/1/2/3")
continue
if chnum=='3':
break
cchoice=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 random
def sj():
csj = random.randint(1, 5)
return csj
a = sj() #小狐狸最开始的时候在其中一个洞口a
Count = 0
while 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")
continue
if(x==6):
break
Count += 1
if x == a: #玩家随机打开一个洞口,抓到了
print('玩家胜利,您共猜了:%d次'%(Count))
break
else:
print("选择了{},未猜中".format(x))
a += random.choice([-1, 1]) #跳到隔壁洞口
8、编写程序,模拟打字练习程序的成绩评定。假设 origin 为原始内容,userInput 为用户练习时输入的内容,要求用户输入的内容长度不能大于原始内容的长度,如果对应位置的字符一致则认为正确,否则判定输入错误。最后成绩为:正确的字符数量/原始字符串长度,按百分制输出,要求保留 2 位小数。
"""
8、编写程序,模拟打字练习程序的成绩评定。假设 origin 为原始内容,userInput 为用户练习时输入的内容,要求用户输入的内容长度不能大于原始内容的长度,
如果对应位置的字符一致则认为正确,否则判定输入错误。最后成绩为:正确的字符数量/原始字符串长度,按百分制输出,要求保留 2 位小数。
"""
import random
import string
order = '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) * 100
if (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的列表,元组和字典的基本使用