第1套
使用turtle库的turtle. right()函数和turtle.fd()函数绘制一个菱形,边长为200像素,4个内角度数为2个60度和2个120度
键盘输入一组人员的姓名、性别、年龄等信息,信息间采用空格分隔,每人一行,空行回车结束录入,示例格式如下:
张三 男 23
李四 女 21
王五 男 18
计算并输出这组人员的平均年龄(保留2位小数)和其中男性人数,格式如下:
平均年龄是20.67 男性人数是2
# 以下代码为提示框架 # 请在...处使用一行或多行代码替换 # 请在______处使用一行代码替换 # # 注意:提示框架代码可以任意修改,以完成程序功能为准 data = input() # 姓名 性别 年龄 s=0 n=0 i=0 while data: i=i+1 ls=data.split() s=s+int(ls[2]) if ls[1]=='男': n=n+1 data = input() s=s/i print("平均年龄是{:.2f} 男性人数是{}".format(s,n))
第2套
使用turtle库的turtle.fd()函数和turtle. seth()函数绘制一个边长为200的正菱形,菱形4个内角均为90度。
效果如下图所示,箭头与下图严格一致。
# 请在______处使用一行代码替换 # # 注意:请不要修改其他已给出代码 import turtle turtle.pensize(2) d = -45 for i in range(4): turtle.seth(d) d += 90 turtle.fd(200)
键盘输入某班各个同学就业的行业名称,行业名称之间用空格间隔(回车结束输入)。完善Python代码,统计各行业就业的学生数量,按数量从高到低方式输出。例如输入:
交通 金融 计算机 交通 计算机 计算机
输出参考格式如下,其中冒号为英文冒号:
计算机:3
交通:2
金融:1
# 以下代码为提示框架 # 请在...处使用一行或多行代码替换 # 请在______处使用一行代码替换 # # 注意:提示框架代码可以任意修改,以完成程序功能为准 names=input("请输入各个同学行业名称,行业名称之间用空格间隔(回车结束输入):") t=names.split() d = {} for c in range(len(t)): d[t[c]]=d.get(t[c],0)+1 ls = list(d.items()) ls.sort(key=lambda x:x[1], reverse=True) # 按照数量排序 for k in range(len(ls)): zy,num=ls[k] print("{}:{}".format(zy,num))
第3套
和第2套差不多
第4套
还是画图化等边三角形
第二题,
键盘输入小明学习的课程名称及考分等信息,信息间采用空格分隔,每个课程一行,空行回车结束录入,示例格式如下:
数学 90
语文 95
英语 86
物理 84
生物 87
屏幕输出得分最高的课程及成绩,得分最低的课程及成绩,以及平均分(保留2位小数)。
注意,其中逗号为英文逗号,格式如下:
最高分课程是语文 95,最低分课程是物理 84,平均分是88.40
# 以下代码为提示框架 # 请在...处使用一行或多行代码替换 # 请在______处使用一行代码替换 # # 注意:提示框架代码可以任意修改,以完成程序功能为准 data = input() # 课程名 考分 ls = data.split() min_score=int(ls[1]) min_name = ls[0] max_score=int(ls[1]) max_name = ls[0] n = 0 sum = 0 while data: n+=1 lt = data.split() if min_score > int(lt[1]): min_score = int(lt[1]) min_name = lt[0] if max_score < int(lt[1]): max_score = int(lt[1]) max_name = lt[0] sum+=int(lt[1]) data = input() avg = sum/n print("最高分课程是{} {}, 最低分课程是{} {}, 平均分是{:.2f}".format(max_name,max_score,min_name,min_score,avg))
第5套
使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个边长为100的正八边形
难的题目出现!
加了文件读写
使用字典和列表型变量完成村长选举。某村有40名有选举权和被选举权村民,名单由考生文件夹下文件name.txt给出,从这40名村民中选出一人当长,40人的投票信息由考生文件夹下文件vote.txt给出,每行是一张选票的信息,有效票中得票最多的村民当选。
问题1:请从vote.txt中筛选出无效票写入文件vote1.txt。有效票的含义是:选票中只有一个名字且该名字在name.txt文件列表中,不是有效票的票称为无效票。
问题2:给出当选村长的名字及其得票数。
''' ''' f=open("name.txt") names=f.readlines() f.close() f=open("vote.txt") votes=f.readlines() f.close() f=open("vote1.txt","w") D={} NUM=0 for vote in votes: num = len(vote.split()) #分解成列表,并求列表长度(元素个数) if num==1 and vote in names: #仅一个且在姓名中,有效 D[vote[:-1]]=D.get(vote[:-1],0)+1 NUM+=1 else: f.write(vote) f.close() l=list(D.items()) l.sort(key=lambda s:s[1],reverse=True) name=l[0][0] score=l[0][1] print("有效票数为:{} 当选村长村民为:{},票数为:{}".format(NUM,name,score))
挖空地方:
第6套
五边形÷的是72
使用字典和列表型变量完成最有人气的明星的投票数据分析。投票信息由考生文件夹下文件vote.txt给出,一行只有一个明星姓名的投票才是有效票。有效票中得票最多的明星当选最有人气的明星。
问题1:请统计有效票张数。在考生文件夹下给出了程序框架文件PY202-1.py,补充代码完成程序(7分)
问题2:请给出当选最有人气明星的姓名和票数,在考生文件夹下给出了程序框架文件PY202-2.py,补充代码完成程序(8分)。
# 请在______处使用一行代码或表达式替换 # # 注意:请不要修改其他已给出代码 f = open("vote.txt") names = f.readlines() f.close() n = 0 for name in names: num = len(name.split()) if num==1: n+=1 print("有效票{}张".format(n))
# 请在______处使用一行代码或表达式替换 # # 注意:请不要修改其他已给出代码 f = open("vote.txt") names = f.readlines() f.close() D = {} for name in names: if len(name.split())==1: D[name[:-1]]=D.get(name[:-1],0) + 1 l = list(D.items()) l.sort(key=lambda s:s[1],reverse=True) name = l[0][0] score = l[0][1] print("最具人气明星为:{},票数为:{}".format(name,score))
第7套
十二边形,30
计算两个列表ls和lt此对应元素乘积的和(即向量积),补充PY202.py文件。
ls = [111,222,333,444,555,666,777,888,999]
lt = [999,777,555,333,111,888,666,444,222]
第8套
使用turtle库的turtle.fd()函数和turtle.left()函数绘制一个边长为200像素的正方形及一个紧挨四个顶点的圆形
获得用户的非数字输入,如果输入中存在数字,则要求用户重新输入,直至满足条件为止,并输出用户输入字符的个数,
第9套
在考生文件夹下有个文件PY201.py,在横线处填写代码,完成如下功能。根据列表中保存的数据采用turtle库画图直方图,显示输出在屏幕上
# # 在____________上补充代码 # 请不要修改其他代码 # import turtle as t #更简洁地调用turtle库 ls = [69, 292, 33, 131, 61, 254] X_len = 400 Y_len = 300 x0 = -200 y0 = -100 t.penup() t.goto(x0, y0) t.pendown() t.fd(X_len) t.fd(-X_len) t.seth(90) #设置笔的起始角度 t.fd(Y_len) t.pencolor('red') t.pensize(5) for i in range(len(ls)): t.penup() #提起画笔 t.goto(x0 + (i+1)*50, y0) #移到绝对坐标处,这里x坐标动,y坐标不动 t.seth(90) t.pendown() #放下画笔 t.fd(ls[i]) #表示直线爬行的距离 t.done()
在已定义好的字典pdict里有一些人名及其电话号码。请用户输入一个人的姓名,在字典中查找该用户的信息,如果找到,生成一个四位数字的验证码,并将名字、电话号码和验证码输出在屏幕上,如示例所示。如果查找不到该用户信息,则显示“对不起,您输入的用户信息不存在。”
# # 在......上补充一行或多行代码 # 不得修改其他代码 # import random random.seed(2) pdict= {'Alice':['123456789'], 'Bob':['234567891'], 'Lily':['345678912'], 'Jane':['456789123']} name = input('请输入一个人名:') if name in pdict: print("{} {} {}".format(name,pdict.get(name)[0],random.randint(1000,9999))) else: print("对不起,您输入的用户信息不存在。")
第10套
利用random库和turtle库,在屏幕上绘制5个圆圈,圆圈的半径和圆心的坐标由randint()函数产生,圆的X和Y坐标范围在[-100,100]之间;半径的大小范围在[20,50]之间,圆圈的颜色随机在color列表里选择。
# # 在____________上补充代码 # 请不要修改其他代码 # import turtle as t import random as r color = ['red','orange','blue','green','purple'] r.seed(1) for i in range(5): rad = r.randint(20,50) x0 = r.randint(-100,100) y0 = r.randint(-100,100) t.color(r.choice(color)) t.penup() t.goto(x0,y0) t.pendown() t.circle(rad) t.done()
在考生文件夹下有个文件PY202.py,定义了一个6个浮点数的一维列表lt1和一个包含3个数的一维列表lt2。
示例如下:
lt1=[0.69,0.292,0.33,0.131,0.61,0.254]
lt2=[0.1,0.8,0.2]
在横线处填写代码,完成如下功能。计算lt1列表跟lt2列表的向量内积,两个向量X=[x1,x2,x3]和Y=[y1,y2,y3]的内积计算公式如下:
k=x1*y1+x2*y2+x3*y3
将每次计算的两组对应元素的值、以及对应元素乘积的累计和(k)的值显示在屏幕上格式如下所示。
k=0.069,lt2[0]=0.100,lt1[0+0]=0.690
k=0.303,lt2[1]=0.800,lt1[0+1]=0.292
k=0.369,It2[2]=0.200,lt1[0+2]=0.330
... (略)