300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 全国计算机等级考试二级Python精品题库学习笔记1

全国计算机等级考试二级Python精品题库学习笔记1

时间:2023-04-02 13:39:01

相关推荐

全国计算机等级考试二级Python精品题库学习笔记1

全国计算机等级考试二级Python精品题库学习笔记1

精品试卷01精品试卷01程序题基本操作题 2:随机验证码基本操作题 3:比赛成绩计算Turtle 绘图题:同心圆简单应用题 2:员工工资表综合应用题:《从清华到MIT》词频统计精品试卷02zip函数与字典创建center函数的用法:精品试卷02程序题基本操作题 计算两点间距离简单应用题 2:分词去重综合应用题:十二星座日期范围之一综合应用题:十二星座日期范围之二综合应用题:十二星座日期范围之三

精品试卷01

Python123链接

精品试卷01程序题

基本操作题 2:随机验证码

import random as rzmb = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'r.seed(1)code=""for i in range(4):code+=r.choice(zmb)print(code)

基本操作题 3:比赛成绩计算

要点:

列表里每一个元素又是一个列表,对应一组的竞赛成绩

利用 len(score) 求得总的组数;

为了在输出语句里输出各组的编号数,所以需要使用带循环变量 i 的 for 循环

在这个循环结构中,按照计算公式计算每一组的总成绩,并显示输出计算结果

因为结果要求显示整数,格式定义里使用了int(final)。

score = [[87,79,90],[99,83,93],[90,75,89],[89,87,94],[95,85,84]]final=0for i in range(len(score)):final=score[i][0]*0.6+score[i][1]*0.3+score[i][2]*0.1print('the {} final score is {}'.format(i+1, int(final)))

Turtle 绘图题:同心圆

要点注释:

题目给出了基本数据的定义,后面要使用这些变量

在 for 循环里面,主要问题是画笔的定位,要考虑圆心的位置是(0,0)的时候,画笔要移动到圆心位置正下方,因此坐标点是(0,-ra[i])

画笔颜色要从颜色列表里选取

画圆的半径也从变量里面获取

import turtlecolor=['red','pink','green']r=[20,50,100]for i in range(3):turtle.penup()turtle.goto(0,-r[i])turtle.pendown()turtle.pencolor(color[i])turtle.circle(r[i])turtle.hideturtleturtle.done

简单应用题 2:员工工资表

要点:

字典 members 里的 value 是个列表,所以需要用到列表的索引

对着字典 members 遍历,按照要求显示每个员工的工资和部门信息,另外还要取得工资和部门的名称存入字典 sal_dep

为了统计工资最高的部门的工资,需要字典 sal_dep 来保存这两个信息并且这个字典的 key 应该是工资数

用 max 函数对字典 sal_dep 的 key 进行求最大值的计算,并将最大值赋给变量 max_val

再从字典里,取出 key 为 max_val 的 value 赋给变量 max_name

最后按照要求显示结果

# 简单应用题 2:员工工资表members = {'张三':['人力部',5500],'李四':['后勤部',4500],'王三':['市场部',6500],'赵六':['开发部',8500]}sal_dep={}for key in members:print("{}的工资是:{},部门是{}".format(key,members[key][0],members[key][1]))sal_dep[members[key][1]]=members[key][0]#print(sal_dep)#显示:#{5500: '人力部', 4500: '后勤部', 6500: '市场部', 8500: '开发部'}max_val=max(sal_dep)max_name=sal_dep[max_val]print("工资最高的部门是:{},该部门工资是:{}".format(max_name,max_val))

综合应用题:《从清华到MIT》词频统计

使用with后不管with中的代码出现什么错误,都会进行对当前对象进行清理工作。

例如file的file.close()方法,无论with中出现任何错误,都会执行file.close()方法

以指定utf-8编码只读方式打开data.txt文件,文件句柄命名为f

参考代码:

# -*- coding:utf-8 -*-'''This is a python123.io file.'''import jieba # 导入jieba中文分词库dk = {} # 定义dk字典变量 type(dk):<class 'dict'>#使用with后不管with中的代码出现什么错误,都会进行对当前对象进行清理工作。#例如file的file.close()方法,无论with中出现任何错误,都会执行file.close()方法#以指定utf-8编码只读方式打开data.txt文件,文件句柄命名为fwith open('data.txt','r',encoding = "utf-8") as f: sl = f.readlines()#print(type(f)) f是<class '_io.TextIOWrapper'>文件句柄的类型#print(type(sl)) sl是一个列表,包含了文件中每一行内容#print(type(sl[0])) sl[0]是列表sl中第一个元素,是文件中第一行所有内容for s in sl: #循环读取列表元素k =jieba.lcut(s, cut_all = True)#对每个s,使用jieba.lcut函数以全模式方式返回一个列表(由词语组成)for wo in k: #对每个词语进行筛选if len(wo) == 2: #如果词语的长度为2,进行统计dk[wo] = dk.get(wo,0) + 1#逐步构建统计字典,形式如{"大学":1,"设计":2,...},备注,这里的1、2是逐渐变化中dp = list(dk.items()) #转换为列表,列表中元素为元组。dp.sort(key= lambda x:int(x[1]), reverse = True)for i in range(10): #输出排序后的内容print("{}:{}".format(dp[i][0],dp[i][1]))

精品试卷02

zip函数与字典创建

zip():将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

pip常用的子命令有:

install、download、uninstall、freeze、list、show、search、wheel、hash、completion、help。

center函数的用法:

精品试卷02程序题

基本操作题 计算两点间距离

注意点:

如果输入不符合要求,例如1 1,则会出现SyntaxError: unexpected EOF while parsing

如果输入的包含字符,例如1 1 a b,则会出现NameError: name ‘a’ is not defined

ntxt = input("") #从键盘上接受输入1 1 2 2,返回字符串"1 1 2 2"赋值给ntxtnls = ntxt.split(" ")#使用split(" ")函数分割字符串内容," "中包含了一个英文空格,并返回了一个列表给nlsx1 = eval(nls[0]) #将列表nls中第一个元素被eval函数识别为数字:1y1 = eval(nls[1]) #将列表nls中第二个元素被eval函数识别为数字:1x2 = eval(nls[2]) #将列表nls中第三个元素被eval函数识别为数字:2y2 = eval(nls[3]) #将列表中第四个元素被eval函数识别为数字:2r = pow(pow(x2-x1, 2) + pow(y2-y1, 2), 0.5) #根据两点间距离的数学公式求出距离print("{:.2f}".format(r)) #保留2位小数输出距离1.41

简单应用题 2:分词去重

#代码中改为data2.txt是区别于精品题01下载的文件import jiebaf = open('out1.txt','w')#因为题库题目多,所以改为data2.txtfi = open("data2.txt","r",encoding="utf-8")lst=jieba.lcut(fi.read())#或者ls=list(sorted(set(lst)))s = set(lst) #使用set函数将列表lst转换为集合,实现元素去重s1 = sorted(s) #将列表按字符顺序排序ls = list(s1) #将集合重新变成列表lsfor i in ls:if len(i)>=3:f.write(i+"\n")fi.close()f.close()

答案注解版:

import jieba #导入中文分词库f = open('out1.txt','w') #以写的方式打开out1.txt文件fi = open("data.txt","r",encoding="utf-8") #以读的方式打开data.txt文件#使用jieba.lcut()对data.txt文件读出字符串进行中文分词,返回列表lstlst = jieba.lcut(fi.read())s = set(lst) #使用set函数将列表lst转换为集合,实现元素去重 s1 = sorted(s) #将列表按字符顺序排序ls = list(s1) #将集合重新变成列表lsfor item in ls: #遍历去重后ls每一个元素if len(item) >=3:f.write(item + "\n") #将符合条件的字符串写入out1.txt中fi.close() #关闭文件fif.close() #关闭文件f

综合应用题:十二星座日期范围之一

f=open("PY301-SunSign.csv","r",encoding="utf-8")ls = []for line in f.readlines():line=line.replace("\n","")ls.append(line.split(","))#或者ls.append(line.replace("\n", '').split(','))# 或者ls.append(line.strip().split(','))s=input("请输入星座中文名称(例如, 双子座):")for i in range(len(ls)):if s==ls[i][1]:print("{}的生日位于{}-{}之间".format(s,ls[i][2],ls[i][3]))f.close()

综合应用题:十二星座日期范围之二

f=open("PY301-SunSign.csv","r",encoding="UTF-8")ls = []for line in f.readlines():line=line.replace("\n","")ls.append(line.split(","))sl=input("请输入星座序号(例如,5 10):")while sl!="":lsNum=sl.split()for s in lsNum:for i in range(len(ls)):if s==ls[i][0]:print("{}({})的生日是{}月{}日至{}月{}日之间".format(ls[i][1],ls[i][4],ls[i][2][:-2],ls[i][2][-2:],ls[i][3][:-2],ls[i][3][-2:]))sl = input("请输入星座序号(例如,5):")

综合应用题:十二星座日期范围之三

f=open("PY301-SunSign.csv","r",encoding="UTF-8")ls = []for line in f.readlines():ls.append(line.strip().split(","))#line=line.replace("\n","")#ls.append(line.split(","))sl=input("请输入星座序号(例如,5 10):")while sl!=0:lsNum=sl.split()for s in lsNum:if 1<=int(s)<=12:for i in range(len(ls)):if s==ls[i][0]:print("{}({})的生日是{}月{}日至{}月{}日之间".format(ls[i][1],ls[i][4],ls[i][2][:-2],ls[i][2][-2:],ls[i][3][:-2],ls[i][3][-2:]))else:print("输入星座序号有误!")sl=input("请输入星座序号(例如,5 10):")

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。