当前位置:首页 » 《随便一记》 » 正文

python二级大题总结_小忐忑的博客

14 人参与  2021年11月20日 14:03  分类 : 《随便一记》  评论

点击全文阅读


还有10天左右python二级考试,临考刷题,分享一些心得

一共有三类大题

1.三个基本题

random库详解

seed(a=None)  初始化随机数种子,默认值为当前系统时间
random()  生成一个[0.0, 1.0)之间的随机小数
randint(a, b)  生成一个[a,b]之间的整数
getrandbits(k)  生成一个k比特长度的随机整数
randrange(start, stop[, step]) 生成一个[start, stop)之间以step为步数的随机整数
uniform(a, b)  生成一个[a, b]之间的随机小数
choice(seq)  从序列类型(例如:列表)中随机返回一个元素
shuffle(seq)  将序列类型中元素随机排列,返回打乱后的序列
sample(pop, k)   从pop类型中随机选取k个元素,以列表类型

format概述

{<参数序号>: <格式控制标记>}
格式控制标记包括:<填充><对齐><宽度>,<.精度><类型>6个字段,这些字段都是可选的,可以组合

## <填充>、<对齐>和<宽度>主要用于对显示格式的规范。

宽度指当前槽的设定输出字符宽度,如果该槽参数实际值比宽度设定值大,则使用参数实际长度。如果该值的
实际位数小于指定宽度,则按照对齐指定方式在宽度内对齐,默认以空格字符补充。

对齐字段分别使用<>和^三个符号表示左对齐、右对齐和居中对齐。
填充字段可以修改默认填充字符,填充字符只能有一个。

## <.精度><类型>主要用于对数值本身的规范

<.精度>由小数点(.)开头。对于浮点数,精度表示小数部分输出的有效位数。
对于字符串,精度表示输出的最大长度。小数点可以理解为对数值的有效截断。

## <类型>表示输出整数和浮点数类型的格式规则。

n 对于整数类型,输出格式包括6种:
b: 输出整数的二进制方式;
c: 输出整数对应的Unicode字符;
d: 输出整数的十进制方式;
o: 输出整数的八进制方式;
x: 输出整数的小写十六进制方式;
X: 输出整数的大写十六进制方式;

## 对于浮点数类型,输出格式包括4种:

e: 输出浮点数对应的小写字母e的指数形式;
E: 输出浮点数对应的大写字母E的指数形式;
f: 输出浮点数的标准浮点形式;
%: 输出浮点数的百分形式。

jieba库概述

jieba.lcut(s)是最常用的中文分词函数,用于精准模式,即将字符分割成等量的中文词组,返回结果是列表类型。
jieba.add_word()函数,顾名思义,用来向jieba词库增加新的单词

注意细节,不算太难
没啥好说的

2.一个画图题

turtle库详解

## 窗体函数
turtle.setup(width, height, startx, starty)
作用:设置主窗体的大小和位置
参数:
width :窗口宽度,如果值是整数,表示的像素值;如果值
是小数,表示窗口宽度与屏幕的比例;
height: 窗口高度,如果值是整数,表示的像素值;如果
值是小数,表示窗口高度与屏幕的比例;
startx:窗口左侧与屏幕左侧的像素距离,如果值是None
,窗口位于屏幕水平中央;
starty:窗口顶部与屏幕顶部的像素距离,如果值是None
,窗口位于屏幕垂直中央;

## 画笔状态函数

pendown() 放下画笔
penup()  提起画笔,与pendown()配对使用
pensize(width)  设置画笔线条的粗细为指定大小
pencolor()  设置画笔的颜色
begin_fill()  填充图形前,调用该方法
end_fill()  填充图形结束
filling()  返回填充的状态,True为填充,False为未填
clear()  清空当前窗口,但不改变当前画笔的位置
reset()  清空当前窗口,并重置位置等状态为默认值
screensize()  设置画布的长和宽
hideturtle()  隐藏画笔的turtle形状
showturtle()  显示画笔的turtle形状i
svisible()  如果turtle可见,则返回Tr

## 画笔运动函数

forward()  沿着当前方向前进指定距离
backward()  沿着当前相反方向后退指定距离
right(angle)  向右旋转angle角度
left(angle)  向左旋转angle角度
goto(x,y)  移动到绝对坐标(x,y)处
setx( )   将当前x轴移动到指定位置
sety( )   将当前y轴移动到指定位置
setheading(angle 设置当前朝向为angle角度
home()  设置当前画笔位置为原点,朝向东。
circle(radius,e)  绘制一个指定半径r和角度e的圆或弧形
dot(r,color)  绘制一个指定半径r和颜色color的圆点
undo()  撤销画笔最后一步动作
speed()  设置画笔的绘制速,参数为0-10

刷完历年经典13个题,对几个函数稍加理解,就不会有什么问题,简单题,13个题的代码放在下面,统一复习
常用的也就那几个函数,套路比较固定,注意区分相对角度和绝对角度

# import turtle
# turtle.pensize(2)                 #设置画笔的宽度
# for i in range(4):
#     turtle.fd(200)                #指沿着海龟的前方向运行
#     turtle.left(90)               #逆时针改变角度,相对角度
# turtle.left(-45)
# turtle.circle(100*pow(2,0.5))





# turtle.pensize(2)
# d = 0
# for i in range(1, 6):
#     turtle.fd(100)                  #指沿着海龟的前方向运行
#     d += 72
#     turtle.seth(d)                  #只改变海龟的行进方向(角度按逆时针),绝对角度





# turtle.right(-30)
# turtle.fd(200)
# turtle.right(60)
# turtle.fd(200)
# turtle.right(-240)
# turtle.fd(200)
# turtle.right(60)
# turtle.fd(200)                         #指沿着海龟的前方向运行
# turtle.right(120)                      #顺时针改变角度,相对角度





# turtle.pensize(2)
# d = 315
# for i in range(4):
#     turtle.seth(d)
#     d  += 90
#     turtle.fd(200)





# for i in range(4):
#     turtle.fd(100)
#     turtle.fd(-100)
#     turtle.seth((i+1)*90)





# for i in range(3):
#     turtle.seth(i*120)
#     turtle.fd(200)





# turtle.pensize(2)
# d = 0
# for i in range(1, 9):
#     turtle.fd(100)
#     d += 360/8
#     turtle.seth(d)

# turtle.pensize(2)
# d=0
# for i in range(1, 13):
#     turtle.fd(40)
#     d += 30
#     turtle.seth(d)





# import turtle as t
# 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(20)
# 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()





# 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()





# import turtle as t
# import random as r
#
# r.seed(1)
# t.pensize(2)
# t.color('red')
# angles = 6
# points= [[0,0],[50,40],[70,80],[-40,30]]
#
# for i in range(4):
#     x0,y0 = points[i]
#     t.penup()
#     t.goto(x0,y0)
#     t.pendown()
#
#     length = r.randint(6, 16)
#     for j in range(angles):
#         t.forward(length)
#         t.backward(length)
#         t.right(360 / angles)
# t.done()







# import turtle as t
# import random as r
# r.seed(1)
# t.pensize(2)
# for i in range(3):
#     length = r.randint(20,80)
#     x0 = r.randint(-100, 100)
#     y0 = r.randint(-100, 100)
#
#     t.penup()
#     t.goto(x0,y0)
#     t.down()
#     for j in range(4):
#         t.fd(length)
#         t.seth(90*(j+1))
# t.done()






# from turtle import *
#
# color = ['red', 'green', 'blue']
# rs = [10, 30, 60]
#
# for i in range(3):
#     penup()
#     goto(0,-rs[i])
#     pendown()
#     pencolor(color[i])
#     circle(rs[i])
# done()






3.两个应用题

第一个题都是统计票数的
大概流程

## 1.获取数据
①打开本地文件f = open("name.txt", encoding="utf-8")
open中的encoding="utf-8" 一定要写,一定要写,一定要写
②获取键盘输入txt = input("请输入:")

## 2.转化成列表
open来的数据一般使用f.readlines()转化成列表
input输入的一般是split()

## 3.循环计数
d[key]=d.get(key,0)+1
使用字典计数关键语句
open来的数据一般是d[key[:-1]]=d.get(key[:-1],0)+1
[:-1]这是为了去除末尾空格或换行

## 4.字典转列表
l = list(d.items())
通用格式

## 5.列表排序
ls.sort(key=lambda x:x[1], reverse=True)
通用格式
reverse=True表示降序,默认为升序False
x:x[1]表示对x以x[1]为依据进行排序

## 6.输出
输出就输出,,,

准备整两个例题分析一下,就刷了(历年1和2两题)往后面一看,好像都不难,后面遇到有意思的题再补,或者你们有想看的题,评论区告诉我

最后一个大题
一般分为好几问
下面是常用操作

## 写入文件
f = open("name.txt", "w", encoding="utf-8")
f.write(string)
f.close()

## 字符串替换
txt = txt.replace(ch, "")

## 字符串分隔
list=txt.split()

## 字符串移除
line.strip()

## jieba分词
import jieba
wordList=jieba.lcut(txt)

## 字符拼接
'str'.join(wordList)

例题后面补
评论区写你想看的题
例题一 03论语1


## 题目要求

在模板中修改代码,提取“论语.txt”文件中的原文内容,输出保存到考
生文件夹下,文件名为“论语-原文.txt”。具体要求:仅保留“论
语.txt”文件中所有【原文】标签下面的内容,不保留标签,并去掉每行
行首空格及行尾空格,无空行。原文小括号及内部数字是源文件中注释项
的标记,请保留。示例输出文件格式请参考“论语-原文-输出示例.txt”
文件。

## 人话

去除空行、原文标签和注释标签以及注释内容,
只保留正文(正文前面的空格去除,每行一句)。

看一下原文件
在这里插入图片描述


## 来自群友林夕的代码
fi = open("论语.txt", "r",encoding="utf-8")       读文件
fo = open("论语-原文.txt","w",encoding="utf-8")    写文件
isYuan=False                                     控制写入标记
yuanStr=""                                       空白字符串
for line in fi:                                  遍历文件
    line = line.strip()                         去除空行、去除行首行尾空格
    if line:                                    确认非空
        if "【原文】" in line:                      遇到原文标记(原文本也是先原文后注释的)
            isYuan=True                         控制写入标记打开
            continue                            跳过这一行(去除原文标记)
        if "【注释】"in line:                     遇到注释标记
            isYuan=False                        控制写入标记关闭(去除注释标记和注释正文)
        if isYuan:                              判断控制写入标记
            yuanStr+=line+"\n"                  将原文正文暂时保存并换行(如果文件特别大,这样写不好,直接写入文件比较好)
fo.write(yuanStr)                               写入文件
fi.close()                                      关闭文件
fo.close()                                      关闭文件

小结
原文格式不规范,有一行注释标记与注释文本在一起,导致一直不能通过评测
if line=="【原文】":
将判断if的标记都写为if s in str: 即可


点击全文阅读


本文链接:http://zhangshiyu.com/post/31082.html

输出  画笔  整数  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1