還有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: 即可
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/301042.html
標籤:python
