藍橋杯從零開始備戰(Python組)---基礎知識篇

第一次嘗試報名藍橋杯的Python組,好好備戰,希望省賽可以拿獎!目前是整理了一些Python的常用函數和常用內置庫,后面可能會開始刷題,如果有比較需要記住的知識點,會再寫一篇刷題篇

一、輸入輸出

1.輸入字符串和浮點數

n = input()
#字符串可以直接遍歷,輸入字符串時遇到需要輸出字符串的題,可以再建一個字符串用來更新,比如這道題
#輸入一個由小寫英文字母組成的字符串,請將其中的元音字母(a, e, i, o, u)轉換成大寫,其它字母仍然保持小寫
n= input()
res=''
for i in n:if i in 'aeiou':res +=i.upper()else:res+=i
print(res)n = float(input())#浮點數

2.一行輸入多個字母或數字

m,n=map(int,input().split())
#輸入一個列表
a=list(map(int,input().split()))

3.轉換時間格式

#12:00:00
h,m,s = map(int,t.split(':'))
#h=12 m=00 s=00

4.輸入一串數字

s = [int(i) for i in input().split()]

5.輸入二維矩陣

for i in range(n):mp.append(list(map(int,input().split())))#矩陣中都是數字for i in range(n):mp.append(list(input()))#矩陣中都是字符

6.輸入例如:

220000

000000

002202時

map=[]
for i in range(N):#N是行數map.append(list(input()))

7.向字符串里添加符號

words=['www','ccc','aaa']
print('\n'.join(words))
#使用 join() 方法合并字符串時,它會將列表(或元組)中多個字符串采用固定的分隔符連接在一起。
#join() 方法也是非常重要的字符串方法,它是 split() 方法的逆方法,用來將列表(或元組)中包含的多個字符串連接成一個字符串。#例如
# 隔空輸出
a = [1,2,3,4]
print(' '.join(map(str,a)))   #1 2 3 4

8.保留兩位小數

a = 3.1415926
print("%.2f"%a)

9.字符串轉化為數字

n = input()
int(i) for i in str(n)

10.字符串格式化的三種方法

v1 = "我是{},今年{}".format("李明",22)v2 = "我是%s,今年%d歲“ %(”李明“.22)name = "李明"
age = 22
v3 = f"我是{name},今年{age}歲"%s 字符串  {:s} 
%d 整數    {:d}
%.2f 浮點數字(用小數點符號,45)   {:.2f}
%.2e 浮點數字(科學計數法)     {:.2e}

11.輸出

for i in range(10):print(i,end='')#打印在一行print(i,end='\n')#換行符結尾

12.切片列表,字符串

a=[起始位置:截止位置:步長]

13.常用內置函數

round(number, digits)    # 對數字number四舍五入保留digits位小數,四舍,五不進,六入
enumerate()    # 迭代器,返回index和value,可用于循環遍歷或查找
set(x)    # 將x轉化為集合,即去重set1 & set2    # 求交集
set1 | set2    # 求并集
set2 - set1    # 求差集

二、關于string類型的一些常用函數

S.lower() # 小寫
S.upper() # 大寫
S.swapcase() #大小寫互換 
S.capitalize()  # 只有首字母大寫 L love you
S.title# 只要遇到空格都會大寫    L Love You
S.ljust(width,[fillchar]) # 輸出width個字符,S左對齊,不足部分用fillchar填充,默認的為空格。 
返回字符串第一次出現的索引,如果沒有匹配項則返回-1,索引從0開始
S.find#針對字符串,會返回-1
S.index()#針對列表,找不到直接報錯
S.find('a', 0,3)#在0-2的索引中找,只返回首次出現的位置
print(s.find('l',1,-1))#指定位置查詢
S.rfind('a',0,3)#從右側開始查找,返回找到的第一個的位置
S.count(substr, start, end) # 計算substr在S中出現的次數 
S.replace(oldstr, newstr, count)#把S中的oldstar替換為newstr,count為替換次數
S.strip(chars)#移除s list中指定的chars字符
S.split(sep, maxsplit) # 以sep為分隔符,把S分成一個list。maxsplit表示分割的次數。
S.join(seq)#.join(): 連接字符串數組。將字符串、元組、列表中的元素以指定的字符(分隔符)連接生成一個新的字符串
例:a='-'
b='helloword'
print(a.join(b))
>h-e-l-l-o-w-o-r-d

三、關于list的一些常用函數

##二維列表:列表中的元素是列表,本質:一維列表
a=[[1,2,3],[3,4,5]]
list.append(lista)#lista當成一個元素加到前面的列表中
lista+listb #才是拼接
list.extend(str)extend()#接受參數為可迭代的值,會把str加入到list中
list.insert(index,obj)
list.remove(obj)#移除第一個匹配項
list.index(obj)#找出某個值第一個匹配項的下標
list.sort()# 由小到大排序
list.reverse() # 將列表進行翻轉
list.count(obj) # 返回某個元素在列表里面的個數
list.clear()# 清除列表元素
list(seq)#將字符串轉為列表
zip(list1,list2)#用zip封裝列表,在for遍歷
max(a)#求列表a的最大值
min(a)#求列表a的最小值
sum(a)#求列表a的和

四、關于math庫的一些常用函數

1.數學常數
math.e:自然常數 e 的值,約等于 2.71828。

math.pi:圓周率 π 的值,約等于 3.14159。

2.常用數學函數
math.sqrt(x):返回 x 的平方根。

math.pow(x, y):返回 x 的 y 次方。

math.exp(x):返回 e 的 x 次方。

math.log(x, base=math.e):返回 x 的對數。base 參數為對數的底數,默認為自然對數 e。

math.sin(x)、math.cos(x)、math.tan(x):返回 x 的正弦、余弦和正切值。

math.asin(x)、math.acos(x)、math.atan(x):返回 x 的反正弦、反余弦和反正切值。

3.數值運算函數
math.ceil(x):返回不小于 x 的最小整數。

math.floor(x):返回不大于 x 的最大整數。

math.trunc(x):返回 x 的整數部分。

math.modf(x):返回 x 的小數部分和整數部分,以元組形式返回。

math.fabs(x):返回 x 的絕對值。

math.factorial(x):返回 x 的階乘。

math.gcd(a, b):返回 a 和 b 的最大公約數。

a*b//gcd(a,b)#返回a,b的最小公倍數

4.特殊函數
math.erf(x)、math.erfc(x):返回 x 的誤差函數和余誤差函數的值。

math.gamma(x)、math.lgamma(x):返回 x 的伽馬函數和它的自然對數。

math.comb(n, k)#返回不重復且無順序地從 n 項中選擇 k 項的方式總數

五、關于datetime庫的一些函數

1.日期加減

print(datetime.datetime.now() + datetime.timedelta(hours=1))
print(datetime.datetime.now() + datetime.timedelta(days=1))
print(datetime.datetime.now() + datetime.timedelta(weeks=1))

2.修改時間為指定時間

print((datetime.datetime.now() + datetime.timedelta(days=1)).strftime("%Y-%m-%d 00:00:00"))

六、關于re庫的一些常用函數

re.match(pattern, string[, flags]):從字符串的開頭開始匹配,如果字符串的開頭能夠匹配正則表達式,就返回匹配對象,否則返回None。其中,pattern是正則表達式,string是需要匹配的字符串,flags是可選的匹配標志。

re.search(pattern, string[, flags]):在字符串中搜索正則表達式的第一個匹配結果,如果找到了匹配結果就返回匹配對象,否則返回None。其中,pattern是正則表達式,string是需要匹配的字符串,flags是可選的匹配標志。

re.findall(pattern, string[, flags]) 搜索字符串中所有滿足正則表達式的匹配結果,并以列表形式返回這些匹配結果。其中,pattern是正則表達式,string是需要匹配的字符串,flags是可選的匹配標志。

re.sub(pattern, repl, string[, count, flags]) 用repl替換字符串中所有滿足正則表達式的匹配結果,并返回替換后的字符串。其中,pattern是正則表達式,repl是替換字符串,string是需要匹配的字符串,count是可選的替換次數,默認是0

七、關于queue的一些常用函數

1.創建一個FIFO隊列對象:

q = queue.Queue()
q.put(1)#向隊列中添加元素
q.put(2)
print(q.get())  # 輸出1 get()從隊列中獲取元素
print(q.get())  # 輸出2
q.qsize()    # 返回隊列長度
q.empty()    # 判斷隊列是否為空

3.雙端隊列

q = deque()    # 創建
q.append()    # 入隊,從隊尾插入
q.appendleft()    # 入隊,從隊頭插入
q.pop()    # 出隊,從隊尾刪除,并返回該值
q.popleft()    # 出隊,從隊頭刪除,并返回該值

八、關于itertools的一些常用函數

itertools.permutations()

此函數來生成一個序列的全排列。這個函數接受兩個參數,第一個參數是需要排列的序列,第二個參數是排列的長度(可選,默認為序列的長度)。
生成1~3的全排列

for p in permutations:print(p)
1
2
輸出結果:(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)

如果想生成指定長度的排列,可以在第二個參數中指定排列的長度,如下所示:
生成1~3的2個元素排列

permutations = itertools.permutations([1, 2, 3], 2)
for p in permutations:print(p)
輸出結果:(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)
itertools.count(start=0, step=1)

這個函數返回一個無限迭代器,從 start 開始,以 step 為步長不斷地生成整數。可以使用 itertools.islice() 函數來控制生成的元素個數。

itertools.islice(iterable, start, stop[, step])

iterable:可迭代對象,如列表、元組、字符串等。
start:切片的起始索引。
stop:切片的結束索引,切片生成的元素不包含該索引對應的元素。
step(可選):切片的步長,默認為 1,表示連續的元素。

itertools.cycle(iterable)

這個函數接受一個可迭代對象作為參數,并不斷重復生成該對象中的元素。可以使用 itertools.islice() 函數來控制生成的元素個數。

itertools.repeat(object, times=None)

這個函數返回一個無限迭代器,不斷重復生成指定的對象。如果指定了 times 參數,則迭代指定的次數。

itertools.chain(*iterables)

這個函數接受一些可迭代對象作為參數,返回一個迭代器,依次將它們中的元素連接在一起。

itertools.compress(data, selectors)

這個函數接受兩個可迭代對象作為參數,data 和 selectors。它返回一個迭代器,依次返回 data 中與 selectors 中對應位置為 True 的元素。

itertools.filterfalse(function or None, iterable)

這個函數接受一個函數和一個可迭代對象作為參數,返回一個迭代器,依次返回 iterable 中不滿足函數 function 的元素。

itertools.groupby(iterable, key=None)

這個函數接受一個可迭代對象和一個 key 函數作為參數,返回一個迭代器,將 iterable 中的元素按照 key 函數的結果進行分組。

itertools.product(*iterables, repeat=1)

這個函數接受一些可迭代對象作為參數,返回一個迭代器,依次返回它們中的元素的笛卡爾積。

itertools.permutations(iterable, r=None)

這個函數接受一個可迭代對象和一個整數 r 作為參數,返回一個迭代器,依次返回它們中的元素的 r 元排列。

itertools.combinations(iterable, r)

這個函數接受一個可迭代對象和一個整數 r 作為參數,返回一個迭代器,依次返回它們中的元素的 r 元組合。

九、進制轉換

bin()用來將任意進制整數轉換為二進制數。
oct()用來將任意進制整數轉換為八進制數。
hex()用來將任意進制整數轉換為十六進制數。
int(x, 2) 將x由二進制轉為十進制,其它進制轉十進制類似

十、大小寫轉換

#upper() 方法將字符串中的小寫字母轉為大寫字母。
#lower():所有字母小寫
str.upper()
str.lower()

十一、sort和sorted

list.sort(cmp=None, key=None, reverse=False)
#cmp -- 可選參數, 如果指定了該參數會使用該參數的方法進行排序。
#key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自于可迭代對象中,指定可迭代對象中的一個元素來進行排序。
#reverse -- 排序規則,reverse = True 降序, reverse = False 升序(默認)。
sort 與 sorted 區別:
sort 是應用在 list 上的方法,sorted 可以對所有可迭代的對象進行排序操作。
list 的 sort 方法返回的是對已經存在的列表進行操作,無返回值,而內建函數 sorted 方法返回的是一個新的 list,而不是在原來的基礎上進行的操作。

十二、哈希表和字典

enumerate(sequence, [start=0])#同時列出數據下表和數據
d = {key1 : value1, key2 : value2, key3 : value3 }
print(d[key1])#  values1
del d[key2] # 刪除鍵key2
d.clear()     # 清空字典
del d         # 刪除字典
len(dict)#計算字典元素個數,即鍵的總數。
str(dict)#輸出字典,可以打印的字符串表示。
dict.get(key[, value]) 
print ("key1 : ", d.get(key1))#value1d={1:[1,10,199],3:[2,9,16]}
d.items()
含義:返回字典中的鍵值對列表。
d.items()返回包含鍵值對的元組列表。每個元組中的第一項是鍵,第二項是鍵的值。
list(d.items()) =[(1, [1,10,199]), (3, [2,9,16])] 
for o in d.items():ids, ts_ = (i for i in o)    # ids是1,3...號, ts_是[1,10,199],[2,9,16]ts_ = sorted(ts_)
print(ids,ts_)#1 [1,10,199]  3 [2,9,16]d.keys()
含義:返回字典中的鍵列表。d.values()
含義:返回字典中的值列表。

十三、分數

#求1+1/2+1/4+1/8+?1/2**19的和
from fractions import Fraction#插入分數模塊
sum = 1
for i in range(1,20):
#輸入分數時,Fraction開頭字母必須大寫,否則會報錯。sum+=Fraction(1,2**i)#表示1/2+......+1/2^19
print(sum)#1048575/524288

十四、求質數

m=[]
for i in range(1,n):if i>1:for j in range(2,i):if i%j==0:breakelse:m.append(i)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/206713.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/206713.shtml
英文地址,請注明出處:http://en.pswp.cn/news/206713.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

游戲被攻擊怎么辦

隨著科技的進步和互聯網的普及,游戲行業也正在經歷前所未有的變革。玩家們不再滿足于傳統的線下游戲,而是轉向了線上游戲。然而,隨著游戲的線上化,游戲安全問題也日益凸顯。游戲受到攻擊是游戲開發者永遠的痛點,談“D“…

HomeAssistant添加HACS插件并實現公網控制米家,HomeKit等智能家居

HomeAssistant添加HACS插件并實現公網控制米家,HomeKit等智能家居 文章目錄 HomeAssistant添加HACS插件并實現公網控制米家,HomeKit等智能家居基本條件一、下載HACS源碼二、添加HACS集成三、綁定米家設備 ? 上文介紹了如何實現群暉Docker部署HomeAssist…

【嵌入式開發 Linux 常用命令系列 4.1 -- git push 遠程分支與本地分支查看】

文章目錄 概述git push 語法步驟1:git 遠程主機名查看步驟2:git 遠程分支名查看步驟3:git 本地分支名查看示例演示 概述 在日常工作中,將代碼 git clone 本地之后,或者使用repo init && repo sync 之后不知道…

SQLserver截取字符串

當我們存的數據是json的時候可以全部取出在模糊查詢但是有多個重復數據的時候就沒辦法準確的模糊出來這個時候我們就需要用的字符串截取 --創建函數create FUNCTION [dbo].[Fmax] (str varchar(50),start VARCHAR(50),length VARCHAR(50)) RETURNS varchar(max) AS BEGINDEC…

商品詳情頁評論和評論列表評論的排序html代碼

以下是一個簡單的商品詳情頁的 HTML 代碼示例&#xff1a; <!DOCTYPE html> <html> <head><title>商品詳情頁</title><style>/* CSS 樣式可以在這里添加 */</style> </head> <body><h1>商品詳情頁</h1><…

7-1 查找書籍

給定n本書的名稱和定價&#xff0c;本題要求編寫程序&#xff0c;查找并輸出其中定價最高和最低的書的名稱和定價。 輸入格式: 輸入第一行給出正整數n&#xff08;<10&#xff09;&#xff0c;隨后給出n本書的信息。每本書在一行中給出書名&#xff0c;即長度不超過30的字…

條碼生成器與Zint使用

文章目錄 目的條形碼zint支持條形碼種類下載編譯qt pro配置code保存條形碼目的 1: 了解條形碼數據理論知識 2: 了解zint第三方庫相關, 如何編譯引用到項目中 條形碼 條形碼(Barcode)一維碼 和二維碼(QR code)都是用于存儲信息的圖形化表示方式,通常應用于商品標識、庫…

無頭瀏覽器與Selenium:探索無界爬蟲的奇妙世界

selenium設置無頭瀏覽器 背景 ? 我們之前的selenium都是瀏覽器驅動自動打開一個網頁&#xff0c;執行相關操作&#xff0c;其實也可以讓其后臺顯示&#xff0c;不用在前臺顯示。 ? 要設置無頭瀏覽器&#xff0c;可以使用Selenium的Headless模式。在Headless模式下&#xf…

鴻蒙(HarmonyOS)應用開發——web組件

簡述 在開發的工作中&#xff0c;可能存在一個場景&#xff0c;我們有一個問卷調查的h5頁面&#xff0c;需要切入到app 中。這個時候&#xff0c;就需要從app 端操作&#xff0c;切換到web端操作。不管是安卓、ios、小程序都提供有web組件。那么harmonyos 中也提供web組件來在…

Kafka中的Topic

在Kafka中&#xff0c;Topic是消息的邏輯容器&#xff0c;用于組織和分類消息。本文將深入探討Kafka Topic的各個方面&#xff0c;包括創建、配置、生產者和消費者&#xff0c;以及一些實際應用中的示例代碼。 1. 介紹 在Kafka中&#xff0c;Topic是消息的邏輯通道&#xff0…

【華為數據之道學習筆記】3-2 基礎數據治理

基礎數據用于對其他數據進行分類&#xff0c;在業界也稱作參考數據。基礎數據通常是靜態的&#xff08;如國家、幣種&#xff09;&#xff0c;一般在業務事件發生之前就已經預先定義。它的可選值數量有限&#xff0c;可以用作業務或IT的開關和判斷條件。當基礎數據的取值發生變…

GSAP動畫庫,探究蘋果官網頁面滾動動畫是如何實現的

GSAP動畫庫&#xff0c;探究蘋果官網頁面滾動動畫是如何實現的 前言 每次瀏覽蘋果官網時都在好奇&#xff0c;當我們向下滾動頁面時一個個文字或圖片總能緩緩浮現&#xff0c;往上滾動時又能慢慢收起來&#xff0c;這就究竟是如是實現的呢。在查閱一些資料時發現了Scrollmagi…

基于OpenCV+CNN+IOT+微信小程序智能果實采摘指導系統——深度學習算法應用(含pytho、JS工程源碼)+數據集+模型(五)

目錄 前言總體設計系統整體結構圖系統流程圖 運行環境Python環境TensorFlow 環境Jupyter Notebook環境Pycharm 環境微信開發者工具OneNET云平臺 模塊實現1. 數據預處理2. 創建模型并編譯3. 模型訓練及保存4. 上傳結果5. 小程序開發1&#xff09;查詢圖片2&#xff09;查詢識別結…

paypal貝寶怎么綁卡支付

一、PayPal是什么 PayPal是一個很多國家地區通用的支付渠道&#xff0c;我們可以把它理解為一項在線服務&#xff0c;相當于美國版的支付寶。你可以通過PayPal進行匯款和收款&#xff0c;相比傳統的電匯和西聯那類的匯款方式&#xff0c;PayPal更加簡單和容易&#xff0c;被很…

利用proteus實現串口助手和arduino Mega 2560的串口通信

本例用到的proteus版本為8.13&#xff0c;ardunio IDE版本為2.2.1&#xff0c;虛擬串口vspd版本為7.2&#xff0c;串口助手SSCOM V5.13.1。軟件的下載安裝有很多教程&#xff0c;大家可以自行搜索&#xff0c;本文只介紹如何利用這4種軟件在proteus中實現arduino Mega 2560的串…

Day45| 爬樓梯 (進階)Leetcode 322. 零錢兌換 Leetcode 279. 完全平方數

爬樓梯 &#xff08;進階&#xff09; 題目鏈接 爬樓梯&#xff08;進階版&#xff09; 本題目屬于排列中的背包問題&#xff0c;所以先遍歷背包&#xff0c;后遍歷物品&#xff0c;剩下的就是完全背包的板子了&#xff0c;下面直接上代碼&#xff1a; #include<iostream…

刷題記錄--算法--簡單

第一題 2582. 遞枕頭 已解答 簡單 相關標簽 相關企業 提示 n 個人站成一排&#xff0c;按從 1 到 n 編號。 最初&#xff0c;排在隊首的第一個人拿著一個枕頭。每秒鐘&#xff0c;拿著枕頭的人會將枕頭傳遞給隊伍中的下一個人。一旦枕頭到達隊首或隊尾&#xff0c;傳遞…

高防IP是什么?有什么優勢?

隨著互聯網的普及和快速發展&#xff0c;網絡安全問題日益突出。在眾多安全問題中&#xff0c;DDOS攻擊是一種常見的攻擊手段&#xff0c;它通過發送大量的無效或低效請求&#xff0c;使得目標服務器無法響應正常用戶的請求&#xff0c;從而造成服務不可用的情況。為了解決這個…

部署zabbix

源碼下載地址&#xff1a; Download Zabbix sources nginx: download 防火墻和selinux都需要關閉 1、部署監控服務器 1&#xff09;安裝LNMP環境 Zabbix監控管理控制臺需要通過Web頁面展示出來&#xff0c;并且還需要使用MySQL來存儲數據&#xff0c;因此需要先為Zabbix準備基礎…

vue的el

類型&#xff1a;string | Element 限制&#xff1a; 只在用 new 創建實例時生效。 詳細&#xff1a; 提供一個在頁面上已存在的 DOM 元素作為 Vue 實例的掛載目標。可以是 CSS 選擇器&#xff0c;也可以是一個 HTMLElement 實例。 在實例掛載之后&#xff0c;元素可以用 vm.…