计算机二级python简单应用题刷题笔记(一)
- 1、词频统计:键盘输入一组我国高校所对应的学校类型,以空格分隔,共一行。
- 2、找最大值、最小值、平均分:键盘输入小明学习的课程名称及考分等信息,信息间采用空格分隔,每个课程一行,空行回车结束录入。
- 3、使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个等边三角形,边长为200像素,效果如下下图所示:
- 4、使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个每方向为100像素长度的十字形
- 5、使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个边长为100的正八边形
- 6、村长选举
- 7、使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个边长为100的正五边形
- 8、使用字典和列表型变量完成最有人气的明星的投票数据分析
- 9、使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个边长为40像素的正12边型
- 10、计算两个列表ls和lt对应元素乘积的和(即向量积)
- 11、使用turtle库的turtle.fd()函数和turtle.left()函数绘制一个边长为200像素的正方形及一个紧挨四个顶点的圆形
- 12、获得用户的非数字输入,如果输入中存在数字,则要求用户重新输入,直至满足条件为止,并输出用户输入字符的个数
- 13、根据列表中保存的数据采用turtle库画直方图,显示输出在屏幕上。
- 14、在已定义好的字典pdict里有一些人名及其电话号码,请用户输入一个人的姓名,在字典中查找该用户的信息,如果找到生成一个四位数字的验证码,并将名字、电话号码和验证码输出在屏幕上,如果找不到该用户信息,则显示“对不起,您输入的用户信息不存在”。
接下来就进入简单应用题啦~感觉会越来越难就连视频时长都变成十几分钟了一起加油吧
许愿许愿我要优秀!
其中代码可以任意修改,以完成程序功能为准。
1、词频统计:键盘输入一组我国高校所对应的学校类型,以空格分隔,共一行。
代码提示框架:
txt = input("请输入类型序列:")
...
d = {}
...
ls = list(d.item())
ls.sort(key=lambda x:x[1],reverse=True)
for k in ls:print("{}:{}".format(k[0],k[1]))
参考示例
txt = input("请输入类型序列:")
a = txt.split()#将得到的txt文件分隔开 a = ['综合','理工',...]
d = {}
for i in range(len(a)):#词频统计d[a[i]] = d.get(a[i],0) + 1#第一次综合不存在则将0赋给综合,综合 = 0+1#第二次理工不存在则理工 = 0+1#第三次综合存在则综合+1...
ls = list(d.items()) #包含d这个字典键值对信息的列表
#print(ls)
ls.sort(key=lambda x:x[1], reverse=True) #按照数量排序
for k in ls:print("{}:{}".format(k[0],k[1]))
当然这个词频统计也可以直接将其背下,后面关于这方面的直接写就好~不过据说这个搞得很复杂,直接遍历好像更简单点,感兴趣的小伙伴可以尝试一下这里就不做了我们直接看下一题
2、找最大值、最小值、平均分:键盘输入小明学习的课程名称及考分等信息,信息间采用空格分隔,每个课程一行,空行回车结束录入。
这个题主要分为三个部分:
1、数据输入
这部分的要求是一直保持输入状态,直到输入回车后结束输入
2、数据处理
排序功能(字典作为辅助,然后用列表方法进行排序),计算平均分
3、数据输出
data = input()
d = {}
while data:tem = data.split()#tem = [课程名,考分]d[tem[0]] = tem[1]#使tem的键课程名等于它的值考分data = input()
#排序 背背背
ls = list(d.items())#将字典d转换为一个包含键-值对元组的列表(item用法)
ls.sort(key = lambda x:x[1], reverse = True)#对列表ls进行降序排序
#计算平均分
ag = 0
for i in d.values():ag = ag + int(i)
ag = ag/len(ls)
print("最高分课程是{} {},最低分课程是{} {},平均分是{:.2f}".format(ls[0][0],ls[0][1],ls[-1][0],ls[-1][1],ag))
3、使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个等边三角形,边长为200像素,效果如下下图所示:
turtle库常用函数
pendown(): 放下画笔
penup():提起画笔,与pendown()配对
forward(distance):沿着当前方向前进指定距离
backward(distance):沿着当前相反方向后退指定距离
right(angle):向右旋转angle角度
left(angle):向左旋转angle角度
goto(x,y):移动到绝对坐标(x,y)处
seth(angle):设置当前朝向为angle角度
circle(radius,e):绘制一个指定半径r和角度e的圆或弧形
pensize(width):设置画笔线条的粗细为指定大小
pencolor():设置画笔的颜色
import turtle as
for i in range():(i*120)t.fd(200)
import turtle as t
for i in range(3):t.seth(i*120)t.fd(200)
这个新题型但是题目给出了要用的函数还是简单的,如果没有给的话,抓紧看看上面的函数
4、使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个每方向为100像素长度的十字形
import turtle
for i in range(4):turtle.fd(100)(-100)((i+1)*90)
import turtle
for i in range(4):turtle.fd(100)turtle.fd(-100)turtle.seth((i+1)*90)
5、使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个边长为100的正八边形
import turtle
turtle.pensize(2)
d=0
for i in range(1,):d+=turtle.seth(d)
import turtle
turtle.pensize(2)
d = 0
for i in range(1,9):turtle.fd(100)d += 40turtle.seth(d)
6、村长选举
f=open("name.txt")
names=f.readlines()
f.close()
f=open("vote.txt")
votes=f.readlines()
f.close()
f.close()
f=open("votel.txt","w")
D={}
NUM=0
for vote in :num = len(vote.split())if num==1 and vote in :D[vote[:-1]]= +1 NUM+=1else:f.write()
f.close()
l=list(D.item())
l.sort(key=lambda s:s[1], )
name=
score=
print("有效票数为:{} 当选村长村民为:{},票数为:{}".format(NUM,name,score))
f=open("name.txt")
names=f.readlines()
f.close()
f=open("vote.txt")
votes=f.readlines()
f.close()
f.close()
f=open("votel.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+=1else:f.write(vote)
f.close()
l=list(D.item())
l.sort(key=lambda s:s[1],reverse=True)
name=l[0][0]
score=l[0][1]
print("有效票数为:{} 当选村长村民为:{},票数为:{}".format(NUM,name,score))
7、使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个边长为100的正五边形
import turtle
turtlr.pensize=(2)
d=0
for i in range(1,):d += turtle.seth(d)
import turtle
turtle.pensize = (2)
d = 0
for i in range(1,6):turtle.fd(100)d += 72turtle.seth(d)
8、使用字典和列表型变量完成最有人气的明星的投票数据分析
1、统计有效票
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))
2、请给出当选最具人气明星的姓名和票数
f = open("open.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.item())
l.sort(key=lambda s:s[1],reverse=True)
name = l[0][0]
score = l[0][1]
print("最具人气明星为:{},票数为:{}".format(name,score))
记住不划横线的地方不能动,空格也不行!
9、使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个边长为40像素的正12边型
import turtle
turtle.pensize(2)
d=0
for i in range(1,13):turtle.fd(40)d+=30turtle.seth(d)
10、计算两个列表ls和lt对应元素乘积的和(即向量积)
ls = [111,222,333,444,555,666,777,888,999]
lt = [999,777,555,333,111,888,666,444,222]
ls = [111,222,333,444,555,666,777,888,999]
lt = [999,777,555,333,111,888,666,444,222]
s=0
for i in range(len(ls)):s += ls[i]*lt[i]
print(s)
2402595
11、使用turtle库的turtle.fd()函数和turtle.left()函数绘制一个边长为200像素的正方形及一个紧挨四个顶点的圆形
import turtle
turtle.pensize(2)
for i in range(1,5):turtle.fd(200)turtle.left(90)
turtle.left(315)
turtle.circle(100*pow(2,0.5))
12、获得用户的非数字输入,如果输入中存在数字,则要求用户重新输入,直至满足条件为止,并输出用户输入字符的个数
while True:s = input("请输入不带数字的文本:")flag = False #是一个标志变量,用于判断是否存在数字for i in s:if '0' <= i <= '9':#isdigitflag = Trueif flag == False:break
print(len(s))
while True:s = input("请输入不带数字的文本:")if not any(char.isdigit() for char in s):break
print(len(s))
13、根据列表中保存的数据采用turtle库画直方图,显示输出在屏幕上。
ls = [69,292,33,131,61,254]
ls = [69,292,33,131,61,254]
X_len = 400
Y_len = 300
x0 = -200
y0 = -100t.penup()
t.goto(x0,y0)
t.pendown()t.fd(X_len)
t.fd(-X_len)
t.seth()
t.fd(Y_len)t.pencolor('red')
t.pensize(5)
for i in range(len(ls)):t.t.goto(x0 + (i+1)*50,)t.seth(90)t.pendown()t.fd()
t.done()
import turtle as t
ls = [69,292,33,131,61,254]
X_len = 400
Y_len = 300
x0 = -200
y0 = -100t.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)t.seth(90)t.pendown()t.fd(ls[i])
t.done()
14、在已定义好的字典pdict里有一些人名及其电话号码,请用户输入一个人的姓名,在字典中查找该用户的信息,如果找到生成一个四位数字的验证码,并将名字、电话号码和验证码输出在屏幕上,如果找不到该用户信息,则显示“对不起,您输入的用户信息不存在”。
import random
random.seed(2)
pdict={'Alice':['123456789'],'Bob':['234567891'],'Lily':['345678912'],'Jane':['456789123']}
name = input('请输入一个人名:')
.....
如何生成四位数字验证码
1、使用random.randint()生成随机整数
random.randint(1000, 9999)
2、使用random.sample()随机选择
digits = [str(i) for i in range(10)]
code_list = random.sample(digits, 4)
code = ''.join(code_list)
使用random.sample(population, k)函数从给定的population中随机选择k个不重复的元素。我们将数字0到9转换为字符串列表digits,然后使用random.sample()函数从中选择4个元素。最后,使用’'.join()将列表中的元素连接在一起,得到一个四位数字验证码。
3、 使用random.choice()随机选择
code_list = [str(random.randint(0, 9)) for _ in range(4)]
code = ''.join(code_list)
使用了列表推导式和random.choice()函数。列表推导式[str(random.randint(0, 9)) for _ in range(4)]生成一个包含四个随机数字的列表。然后,使用’'.join()将列表中的元素连接在一起,得到一个四位数字验证码。
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("对不起,您输入的用户信息不存在")
祝大家二级都顺利通过~