主頁 > 後端開發 > ??小白到精英必備的100多個Python函式匯總??寫代碼都流暢多了

??小白到精英必備的100多個Python函式匯總??寫代碼都流暢多了

2021-08-07 08:22:53 後端開發

新手在做寫代碼的時候容易卡殼,尤其當接觸的函式以及其他知識比較多的時候,經常會看完需求之后不知道自己該用什么方法來實作它,實作的邏輯可能你有,但怎么該用什么函式給忘了,這其實就是知識的儲備不夠,你記不住哪個函式有什么作用,自然一頭霧水,

這幾天我專門整理了Python常用的一些函式,從最基礎的輸入輸出函式到正則等12個板塊的,總共100多個常用函式,方便小伙伴們進行快速地記憶,每天快速過一遍,用的時候再加深一下,慢慢地你就會擺脫寫代碼卡殼的狀況,

雖說自學編程的時候我們強調更多的東西是理解和實際去敲代碼,但有些東西你是要必須牢記的,否則你寫代碼將寸步難行,老手當然已經爛記于心,新手想要快速得心應手開發,記住高頻使用的函式就是一個好法子,

在這里插入圖片描述

在這里插入圖片描述

1.基礎函式

序號函式說明
1print()輸出
2input()輸入
3int()轉整型
4float()轉浮點型
5str()轉字串
6type()回傳物件的型別
7isinstance()回傳布林值(True,False)

案例:將浮點型數值轉換為字串,輸出轉換后的資料型別

f = 30.5
ff = str(f)
print(type(ff))

#輸出結果為 class 'str'

2.流程控制

序號函式說明
1if 陳述句 :執行1條件判斷
2if 條件 :代碼塊1 else:代碼塊2條件判斷
3while判斷回圈
4for計數回圈
5range()范圍函式,可控制開始位置、結束位置和步長
6break跳出回圈
7continue跳過本次回圈,后面的回圈繼續執行

案例:根據用戶輸入的分數判斷成績,低于50分時提示“你的分數低于50分”,5059分時提示“你的分數在60分左右”,大于等于60分為及格,8090分為優秀,大于90分為非常優秀,

s = int(input("請輸入分數:"))
if 80 >= s >= 60:
    print("及格")
elif 80 < s <= 90:
    print("優秀")
elif 90 < s <= 100:
    print("非常優秀")
else:
    print("不及格")
    if s > 50:
        print("你的分數在60分左右")
    else:
        print("你的分數低于50分")
        

3.串列

序號函式說明
1append()向串列中添加物件,并添加到末尾
2extend(可迭代物件)將可迭代物件中資料分別添加到串列中,并添加到末尾
3insert(下標,物件)向指定下標位置添加物件
4clear()清空串列
5pop()洗掉下標指定的元素,如果不加下標則洗掉最后一個元素
6remove(物件)洗掉指定的物件
7del洗掉變數或指定下表的值
8copy()淺拷貝
9count(物件)回傳物件在串列中出現的次數
10index(value,開始下標,結束下標)元素出現的第一次下標位置,也可自定義范圍
11reverse()原地翻轉
12sort(key=None,reverse=False)快速排序,默認從小到大排序,key:演算法
13len()獲取串列的長度(元素)

案例:判斷6這個數在串列[1,2,2,3,6,4,5,6,8,9,78,564,456]中的位置,并輸出其下標,

l = [1,2,2,3,6,4,5,6,8,9,78,564,456]
n = l.index(6, 0, 9)
print(n)

#輸出結果為  4

4.元組

序號函式說明
1list(元祖)元祖轉換成串列
2tuple(串列)串列轉換成元祖
3元祖的函式操作與串列大致相同相同,不贅述

案例:修改元組

#取元組下標在1~4之間的3個數,轉換成串列
t = (1,2,3,4,5)
print(t[1:4])
l = list(t)
print(l)
#在串列下標為2的位置插入1個6
l[2]=6
print(l)
#講修改后的串列轉換成元組并輸出
t=tuple(l)
print(t)
#運行結果為:

(2, 3, 4)
[1, 2, 3, 4, 5]
[1, 2, 6, 4, 5]
(1, 2, 6, 4, 5)

5.字串

序號函式說明
1capitalize()把字串的第一個字符改為大寫,后面的小寫
2casefold()把整個字串都小寫
3encode()編碼 str–bytes(二進制字串)
4decode()解碼
5count(sub,start,stop)回傳字符(sub)出現的次數,star:開始下標,stop:結束下標
6find(sub,start,stop)回傳sub第一次出現的下標,查不到回傳-1
7index(sub,start,stop)回傳sub第一次出現的下標
8upper()將字串轉為大寫
9lower()將字串轉為小寫
10format()將字串按某種格式輸出

案例:用format()的三種方式輸出字串

方式1:用數字占位(下標)

"{0} 嘿嘿".format("Python")
a=100
s = "{0}{1}{2} 嘿嘿"
s2 = s.format(a,"JAVA","C++")
print(s2)

#運行結果為:100JAVAC++ 嘿嘿

方式2:用{} 占位

a=100
s = "{}{}{} 嘿嘿"
s2 = s.format(a,"JAVA","C++","C# ")
print(s2)

#運行結果為:100JAVAC++ 嘿嘿

方式3:用字母占位

s = "{a}{b}{c} 嘿嘿"
s2 = s.format(b="JAVA",a="C++",c="C# ")
print(s2)

#運行結果為:C++JAVAC#  嘿嘿

6.字典

序號函式說明
1clear()清空字典
2copy()淺拷貝
3fromkeys(可迭代物件,value=None)根據可迭代物件中的元素去創建字典
4get(key,[d])獲取鍵所對應的值,key是鍵,d是提示資訊
5items()將字典中的鍵值對封裝成元組并放到類集合中
6pop(key,[d])根據鍵洗掉字典中的鍵值對,key是鍵,d是提示資訊
7values()回傳字典中的值(類集合物件)

案例:在字典中查找資料

d = {"name": "小黑"}
print(d.get("name2", "沒有查到"))
print(d.get("name"))
#運行結果為:
沒有查到
小黑

7.函式

函式這塊重頭戲更多的是自定義函式,常用的內置函式不是很多,主要有以下幾個:

序號函式說明
1函式名.doc獲取函式的檔案內容
2help(函式名)查看函式檔案
3global 變數宣告變數為全域變數(可用于任何地方)
4nonlocal 變數宣告的變數為全域變數(用于函式嵌套,變數存在于上一級函式)

案例:在函式中定義一個區域變數,跳出函式仍能呼叫該變數

def fun1():
    global b
    b=100
    print(b)
fun1()
print(b)
#運行結果為:
100
100

8.行程和執行緒

序號函式說明
1os.getpid()獲取當前行程的編號
2multiprocessing.current_process()獲取當前行程的名字
3os.getppid()獲取當前父行程的編號
4Thread(target=None,name=None,args=(),kwargs=None)target:可執行目標,name:執行緒的名字默認Thread-N,args/kwargs:目標引數
5start()啟動子執行緒
6threading.current_thread()獲取當前行程的名字

案例:繼承Thread類實作

#多執行緒的創建
class MyThread(threading.Thread):
    def __init__(self,name):
        super().__init__()
        self.name = name
    def run(self):
        #執行緒要做的事情
        for i in range(5):
            print(self.name)
            time.sleep(0.2)
 #實體化子執行緒
t1 = MyThread("涼涼")
t2 = MyThread("最親的人")

t1.start()
t2.start()

9.模塊與包

序號函式說明
1import 模塊名匯入模塊
2from 模塊名 import 功能1, 功能2…匯入模塊特定功能
3from 模塊名 import *匯入模塊所有功能
4import 模塊名 as 別名模塊定義別名
5from 模塊名 import 功能 as 別名功能定義別名
6import 包名.模塊名.目標包的匯入方式1
7import 包名.子包名.模塊名.目標包的匯入方式2
8import 包名.模塊名包的使用形式1
9import 包名.模塊名 as 別名包的使用形式2
10from 包名.模塊名 import 功能包的使用形式3
11from 包名 import 模塊名包的使用形式4
12from 包名.模塊名 import *包的使用形式5

案例:包的使用方式4

from my_package1 import my_module3
print(my_module3.a)
my_module3.fun4()

10.檔案操作

(1)常規檔案操作

序號函式說明
1open(name,mode)用于打開一個檔案,回傳一個檔案物件
name:檔案名,–寫全(檔案路徑+檔案名+后綴)
mode:打開檔案的方式,默認是r–只讀
2write(“xxx”)向檔案中寫入內容
3read()讀取檔案中的內容
4close()關閉檔案

關于檔案操作的常規模式:

模式描述
r以只讀的形式打開檔案,檔案的指標在開頭
r+讀寫,檔案指標在開頭
rb以二進制的形式只讀檔案指標在開頭
w只寫,檔案不存在,則創建新的,存在則覆寫,指標在開頭
w+讀寫,檔案不存在,則創建新的,存在則覆寫,指標在開頭
wb只寫,以二進制的形式
a追加模式,檔案指標在結尾
a+讀寫,不存在則創建,存在直接追加
ab以二進制形式追加

file的物件屬性

序號方法說明
1closed如果檔案物件已關閉,回傳True,否則回傳False
2mode回傳檔案物件的訪問模式
3name回傳檔案的名稱

file物件的方法

序號函式方法
1close()關閉檔案
2read([count])讀取檔案中的內容,count:位元組數量
3readlines()讀取所有內容,打包成串列
4readline()讀取一行資料,追加讀取,讀取過得不能再次讀取
5seek(offset,[from])修改指標的位置:從from位置移動了offset個位元組
from:0-從起始位置,1-從當前位置開始,2-從末尾開始
soofset:要移動的位元組數
6write()向檔案中寫入內容

(2)OS模塊

  • 關于檔案的功能

    序號方法說明
    1os.rename(原檔案名,新的檔案名)檔案重命名
    2os.remove(檔案名)洗掉檔案
  • 關于檔案夾的功能

    序號函式說明
    1mkdir(檔案夾名字)創建檔案夾
    2rmdir(檔案夾名字)洗掉檔案夾
    3getcwd()獲取當前目錄
    4chdir(目錄)切換目錄
    5listdir()獲取當前檔案夾下所有檔案或檔案夾,回傳一個串列
    listdir(‘aa’) #獲取aa檔案下所有檔案或檔案夾,回傳一個串列

11.修飾器/裝飾器

序號函式說明
1property將方法變為屬性,被修飾的方法名必須和property下方的方法名一樣
2staticmethod靜態方法,將被修飾的方法從類中抽離出來,該函式不能訪問類的屬性
3classmethod與實體方法的區別是接收的第一個引數不是self,而是cls(當前類的具體型別)
被修飾的方法無法訪問實體屬性,但是可以訪問類屬性

案例:classmethod的用法舉例

class B:
    age = 10
    def __init__(self,name):
        self.name = name
    @classmethod
    def eat(cls): #普通函式
        print(cls.age)

    def sleep(self):
        print(self)

b = B("小賤人")
b.eat()

#運行結果為:10

12.正則

序號函式說明
1re.compile(正則運算式)編譯正則
2match()決定re是否在字串剛開始的位置(匹配行首)
3search()掃描字串,找到這個re匹配的位置(僅僅是第一個查到的)
4findall()找到re匹配的所有字串,回傳一個串列
5group()回傳re匹配的字串
6start()回傳匹配開始的位置
7end()回傳匹配結束的位置
8span()回傳一個元組:(開始,結束)的位置
9findall()根據正則運算式回傳匹配到的所有字串
10sub(正則,新字串,原字串)替換字串
11subn(正則,新字串,原字串)替換字串,并回傳替換的次數
12split()分割字串

案例:用split()函式分割一個字串并轉換成串列

import re
s = "abcabcacc"
l = re.split("b",s)
print(l)

#運行結果為:['a', 'ca', 'cacc']

文章中所講的所有函式我都已經將它們整理成圖片,有6張,需要的話可以私聊我,我就不再這里重復贅述來增加文章的篇幅了,內容都是一樣的,你們也可以自己去整理屬于自己的函式筆記,在我們沒有網或者收藏夾東西很多的時候,只要有手機,那么我們就可以無障礙進行查閱,非常地便利,

在這里插入圖片描述


結語

這篇文章的目的,不是為了教大家怎么使用函式,而是為了快速、便捷地記住常用的函式名,所以沒有把每個函式的用法都給大家舉例,你只有記住了函式名字和它的作用之后,你才會有頭緒,至于函式的用法,百度一下就出來,用了幾次你就會了,

如果連函式名和它的用途都不知道,你要花的時間和精力就更多了,必然不如我們帶著目的性地去查資料會更快些,

不禁想起了2010年那會兒Python成為年度最受歡迎語言,自己開始學Python(我之前主用的是Java),光是函式就記了幾十頁的本子,上下班都是隨身帶著,有空就拿出來快速過一遍,后來有一次下班之后和同事吃夜宵喝了點酒,從地下談到天上,結果包都不見了,本子也丟了,第二天把我后悔的…只能重新寫一本,

說句實話,Python挺好玩的,頭也沒有那么冷了,

在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/292187.html

標籤:python

上一篇: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