主頁 > 後端開發 > python二級大題總結

python二級大題總結

2021-09-18 14:11:09 後端開發

還有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

上一篇:可以用 Python 編程語言做哪些神奇好玩的事情?

下一篇:音視頻剪輯 DIY:用 Python 快速入門音視頻剪輯

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more