Python3快速入門知識(shí)點(diǎn):基礎(chǔ)語法
01
Python
簡(jiǎn)介
Python 是一種高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語言。Python 由 Guido van Rossum 于 1989 年底在荷蘭國家數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究所發(fā)明,第一個(gè)公開發(fā)行版發(fā)行于 1991 年。
'''
作者:韭白
源自:
https://www.cnblogs.com/shockerli/p/python-study-note.html
'''特點(diǎn)
易于學(xué)習(xí):Python 有相對(duì)較少的關(guān)鍵字,結(jié)構(gòu)簡(jiǎn)單,和一個(gè)明確定義的語法,學(xué)習(xí)起來更加簡(jiǎn)單。
易于閱讀:Python 代碼定義的更清晰。
易于維護(hù):Python 的成功在于它的源代碼是相當(dāng)容易維護(hù)的。
一個(gè)廣泛的標(biāo)準(zhǔn)庫:Python 的最大的優(yōu)勢(shì)之一是豐富的庫,跨平臺(tái)的,在 UNIX,Windows 和 macOS 兼容很好。
互動(dòng)模式:互動(dòng)模式的支持,您可以從終端輸入執(zhí)行代碼并獲得結(jié)果的語言,互動(dòng)的測(cè)試和調(diào)試代碼片斷。
可移植:基于其開放源代碼的特性,Python 已經(jīng)被移植(也就是使其工作)到許多平臺(tái)。
可擴(kuò)展:如果你需要一段運(yùn)行很快的關(guān)鍵代碼,或者是想要編寫一些不愿開放的算法,你可以使用 C 或 C++ 完成那部分程序,然后從你的 Python 程序中調(diào)用。
數(shù)據(jù)庫:Python 提供所有主要的商業(yè)數(shù)據(jù)庫的接口。
GUI 編程:Python 支持 GUI 可以創(chuàng)建和移植到許多系統(tǒng)調(diào)用。
可嵌入:你可以將 Python 嵌入到 C/C++ 程序,讓你的程序的用戶獲得"腳本化"的能力。
面向?qū)ο?/strong>:Python 是強(qiáng)面向?qū)ο蟮恼Z言,程序中任何內(nèi)容統(tǒng)稱為對(duì)象,包括數(shù)字、字符串、函數(shù)等。
02
Python
基礎(chǔ)語法
運(yùn)行 Python
交互式解釋器
在命令行窗口執(zhí)行python后,進(jìn)入 Python 的交互式解釋器。exit()?或?Ctrl + D?組合鍵退出交互式解釋器。
命令行腳本
在命令行窗口執(zhí)行python script-file.py,以執(zhí)行 Python 腳本文件。
指定解釋器
如果在 Python 腳本文件首行輸入#!/usr/bin/env python,那么可以在命令行窗口中執(zhí)行/path/to/script-file.py以執(zhí)行該腳本文件。
注:該方法不支持 Windows 環(huán)境。
編碼
默認(rèn)情況下,3.x 源碼文件都是 UTF-8 編碼,字符串都是 Unicode 字符。也可以手動(dòng)指定文件編碼:
#?-*-?coding:?utf-8?-*-
或者
#?encoding:?utf-8
注意: 該行標(biāo)注必須位于文件第一行
標(biāo)識(shí)符
第一個(gè)字符必須是英文字母或下劃線?
_?。標(biāo)識(shí)符的其他的部分由字母、數(shù)字和下劃線組成。
標(biāo)識(shí)符對(duì)大小寫敏感。
注:從 3.x 開始,非 ASCII 標(biāo)識(shí)符也是允許的,但不建議。
保留字
保留字即關(guān)鍵字,我們不能把它們用作任何標(biāo)識(shí)符名稱。Python 的標(biāo)準(zhǔn)庫提供了一個(gè) keyword 模塊,可以輸出當(dāng)前版本的所有關(guān)鍵字:
>>>?import?keyword
>>>?keyword.kwlist
['False',?'None',?'True',?'and',?'as',?'assert',?'break',?'class',?'continue',?'def',?'del',?'elif',?'else',?'except',?'finally',?'for',?'from',?'global',?'if',?'import',?'in',?'is',?'lambda',?'nonlocal',?'not',?'or',?'pass',?'raise',?'return',?'try',?'while',?'with',?'yield']
(左右滑動(dòng)可查看完整代碼)
注釋
單行注釋采用#,多行注釋采用'''或"""。
#?這是單行注釋
'''
這是多行注釋
這是多行注釋
'''
"""
這也是多行注釋
這也是多行注釋
"""
行與縮進(jìn)
Python 最具特色的就是使用縮進(jìn)來表示代碼塊,不需要使用大括號(hào)?{}。
縮進(jìn)的空格數(shù)是可變的,但是同一個(gè)代碼塊的語句必須包含相同的縮進(jìn)空格數(shù)。縮進(jìn)不一致,會(huì)導(dǎo)致運(yùn)行錯(cuò)誤。
多行語句
Python 通常是一行寫完一條語句,但如果語句很長(zhǎng),我們可以使用反斜杠\來實(shí)現(xiàn)多行語句。
total?=?item_one?+?\
????????item_two?+?\
????????item_three
在?[],?{}, 或?()?中的多行語句,不需要使用反斜杠\。
空行
函數(shù)之間或類的方法之間用空行分隔,表示一段新的代碼的開始。類和函數(shù)入口之間也用一行空行分隔,以突出函數(shù)入口的開始。
空行與代碼縮進(jìn)不同,空行并不是 Python 語法的一部分。書寫時(shí)不插入空行,Python 解釋器運(yùn)行也不會(huì)出錯(cuò)。但是空行的作用在于分隔兩段不同功能或含義的代碼,便于日后代碼的維護(hù)或重構(gòu)。
記住:空行也是程序代碼的一部分。
等待用戶輸入
input函數(shù)可以實(shí)現(xiàn)等待并接收命令行中的用戶輸入。
content?=?input("\n\n請(qǐng)輸入點(diǎn)東西并按?Enter?鍵\n")
print(content)
同一行寫多條語句
Python 可以在同一行中使用多條語句,語句之間使用分號(hào);分割。
import?sys;?x?=?'hello?world';?sys.stdout.write(x?+?'\n')
多個(gè)語句構(gòu)成代碼組
縮進(jìn)相同的一組語句構(gòu)成一個(gè)代碼塊,我們稱之代碼組。
像if、while、def和class這樣的復(fù)合語句,首行以關(guān)鍵字開始,以冒號(hào):結(jié)束,該行之后的一行或多行代碼構(gòu)成代碼組。
我們將首行及后面的代碼組稱為一個(gè)子句(clause)。
print 輸出
print 默認(rèn)輸出是換行的,如果要實(shí)現(xiàn)不換行需要在變量末尾加上end=""或別的非換行符字符串:
print('123')?#?默認(rèn)換行
print('123',?end?=?"")?#?不換行
import 與 from...import
在 Python 用?import?或者?from...import?來導(dǎo)入相應(yīng)的模塊。
將整個(gè)模塊導(dǎo)入,格式為:import module_name
從某個(gè)模塊中導(dǎo)入某個(gè)函數(shù),格式為:from module_name import func1
從某個(gè)模塊中導(dǎo)入多個(gè)函數(shù),格式為:from module_name import func1, func2, func3
將某個(gè)模塊中的全部函數(shù)導(dǎo)入,格式為:from module_name import *
運(yùn)算符
算術(shù)運(yùn)算符
| 運(yùn)算符 | 描述 |
|---|---|
| + | 加 |
| - | 減 |
| * | 乘 |
| / | 除 |
| % | 取模 |
| ** | 冪 |
| // | 取整除 |
比較運(yùn)算符
| 運(yùn)算符 | 描述 |
|---|---|
| == | 等于 |
| != | 不等于 |
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
賦值運(yùn)算符
| 運(yùn)算符 | 描述 |
|---|---|
| = | 簡(jiǎn)單的賦值運(yùn)算符 |
| += | 加法賦值運(yùn)算符 |
| -= | 減法賦值運(yùn)算符 |
| *= | 乘法賦值運(yùn)算符 |
| /= | 除法賦值運(yùn)算符 |
| %= | 取模賦值運(yùn)算符 |
| **= | 冪賦值運(yùn)算符 |
| //= | 取整除賦值運(yùn)算符 |
位運(yùn)算符
| 運(yùn)算符 | 描述 |
|---|---|
| & | 按位與運(yùn)算符:參與運(yùn)算的兩個(gè)值,如果兩個(gè)相應(yīng)位都為1,則該位的結(jié)果為1,否則為0 |
| | | 按位或運(yùn)算符:只要對(duì)應(yīng)的二個(gè)二進(jìn)位有一個(gè)為1時(shí),結(jié)果位就為1 |
| ^ | 按位異或運(yùn)算符:當(dāng)兩對(duì)應(yīng)的二進(jìn)位相異時(shí),結(jié)果為1 |
| ~ | 按位取反運(yùn)算符:對(duì)數(shù)據(jù)的每個(gè)二進(jìn)制位取反,即把1變?yōu)?,把0變?yōu)?。~x 類似于 -x-1 |
| << | 左移動(dòng)運(yùn)算符:運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由"<<"右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0 |
| >> | 右移動(dòng)運(yùn)算符:把">>"左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,">>"右邊的數(shù)指定移動(dòng)的位數(shù) |
邏輯運(yùn)算符
| 運(yùn)算符 | 邏輯表達(dá)式 | 描述 |
|---|---|---|
| and | x and y | 布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計(jì)算值 |
| or | x or y | 布爾"或" - 如果 x 是 True,它返回 x 的值,否則它返回 y 的計(jì)算值 |
| not | not x | 布爾"非" - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True |
成員運(yùn)算符
| 運(yùn)算符 | 描述 |
|---|---|
| in | 如果在指定的序列中找到值返回 True,否則返回 False |
| not in | 如果在指定的序列中沒有找到值返回 True,否則返回 False |
身份運(yùn)算符
| 運(yùn)算符 | 描述 | 實(shí)例 |
|---|---|---|
| is | is 是判斷兩個(gè)標(biāo)識(shí)符是不是引用自一個(gè)對(duì)象 | x is y, 類似 id(x) == id(y) , 如果引用的是同一個(gè)對(duì)象則返回 True,否則返回 False |
| is not | is not 是判斷兩個(gè)標(biāo)識(shí)符是不是引用自不同對(duì)象 | x is not y , 類似 id(a) != id(b)。如果引用的不是同一個(gè)對(duì)象則返回結(jié)果 True,否則返回 False |
運(yùn)算符優(yōu)先級(jí)
| 運(yùn)算符 | 描述 |
|---|---|
(expressions...),?[expressions...],?{key: value...},?{expressions...} | 表示綁定或元組、表示列表、表示字典、表示集合 |
x[index],?x[index:index],?x(arguments...),?x.attribute | 下標(biāo)、切片、調(diào)用、屬性引用 |
** | 指數(shù) (最高優(yōu)先級(jí)) |
~?+?- | 按位翻轉(zhuǎn), 一元加號(hào)和減號(hào) (最后兩個(gè)的方法名為 +@ 和 -@) |
*?/?%?// | 乘,除,取模和取整除 |
+?- | 加法減法 |
>>?<< | 右移,左移運(yùn)算符 |
& | 位 'AND' |
^?| | 位運(yùn)算符 |
<=?<?>?>= | 比較運(yùn)算符 |
<>?==?!= | 等于運(yùn)算符 |
=?%=?/=?//=?-=?+=?*=?**= | 賦值運(yùn)算符 |
is?is not | 身份運(yùn)算符 |
in?not in | 成員運(yùn)算符 |
and?or?not | 邏輯運(yùn)算符 |
if - else | 條件表達(dá)式 |
lambda | Lambda 表達(dá)式 |
具有相同優(yōu)先級(jí)的運(yùn)算符將從左至右的方式依次進(jìn)行。用小括號(hào)()可以改變運(yùn)算順序。
變量
變量在使用前必須先"定義"(即賦予變量一個(gè)值),否則會(huì)報(bào)錯(cuò):
>>>?name
Traceback?(most?recent?call?last):
??File?"" ,?line?1,?in?<module>
NameError:?name?'name'?is?not?defined
數(shù)據(jù)類型
布爾(bool)
只有?True?和?False?兩個(gè)值,表示真或假。
數(shù)字(number)
整型(int)
整數(shù)值,可正數(shù)亦可復(fù)數(shù),無小數(shù)。
3.x 整型是沒有限制大小的,可以當(dāng)作 Long 類型使用,所以 3.x 沒有 2.x 的 Long 類型。
浮點(diǎn)型(float)
浮點(diǎn)型由整數(shù)部分與小數(shù)部分組成,浮點(diǎn)型也可以使用科學(xué)計(jì)數(shù)法表示(2.5e2 = 2.5 x 10^2 = 250)
復(fù)數(shù)(complex)
復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,可以用a + bj,或者complex(a,b)表示,復(fù)數(shù)的實(shí)部 a 和虛部 b 都是浮點(diǎn)型。
數(shù)字運(yùn)算
不同類型的數(shù)字混合運(yùn)算時(shí)會(huì)將整數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)
在不同的機(jī)器上浮點(diǎn)運(yùn)算的結(jié)果可能會(huì)不一樣
在整數(shù)除法中,除法?
/?總是返回一個(gè)浮點(diǎn)數(shù),如果只想得到整數(shù)的結(jié)果,丟棄可能的分?jǐn)?shù)部分,可以使用運(yùn)算符?//。//?得到的并不一定是整數(shù)類型的數(shù),它與分母分子的數(shù)據(jù)類型有關(guān)系在交互模式中,最后被輸出的表達(dá)式結(jié)果被賦值給變量?
_,_?是個(gè)只讀變量
數(shù)學(xué)函數(shù)
注:以下函數(shù)的使用,需先導(dǎo)入 math 包。
| 函數(shù) | 描述 |
|---|---|
| abs(x) | 返回?cái)?shù)字的整型絕對(duì)值,如?abs(-10)?返回 10 |
| ceil(x) | 返回?cái)?shù)字的上入整數(shù),如?math.ceil(4.1)?返回 5 |
| cmp(x, y) | 如果 x < y 返回 -1,如果 x == y 返回 0,如果 x > y 返回 1。Python 3?已廢棄 。使用 使用?(x>y)-(x?替換。 |
| exp(x) | 返回 e 的 x 次冪(ex),如?math.exp(1)?返回2.718281828459045 |
| fabs(x) | 返回?cái)?shù)字的浮點(diǎn)數(shù)絕對(duì)值,如?math.fabs(-10)?返回10.0 |
| floor(x) | 返回?cái)?shù)字的下舍整數(shù),如?math.floor(4.9)?返回 4 |
| log(x) | 如?math.log(math.e)?返回 1.0,math.log(100,10)?返回 2.0 |
| log10(x) | 返回以 10 為基數(shù)的 x 的對(duì)數(shù),如?math.log10(100)?返回 2.0 |
| max(x1, x2,...) | 返回給定參數(shù)的最大值,參數(shù)可以為序列 |
| min(x1, x2,...) | 返回給定參數(shù)的最小值,參數(shù)可以為序列 |
| modf(x) | 返回 x 的整數(shù)部分與小數(shù)部分,兩部分的數(shù)值符號(hào)與 x 相同,整數(shù)部分以浮點(diǎn)型表示 |
| pow(x, y) | 冪等函數(shù), x**y 運(yùn)算后的值 |
| round(x [,n]) | 返回浮點(diǎn)數(shù) x 的四舍五入值,如給出 n 值,則代表舍入到小數(shù)點(diǎn)后的位數(shù) |
| sqrt(x) | 返回?cái)?shù)字 x 的平方根 |
隨機(jī)數(shù)函數(shù)
注:以下函數(shù)的使用,需先導(dǎo)入 random 包。
| 函數(shù) | 描述 |
|---|---|
| choice(seq) | 從序列的元素中隨機(jī)挑選一個(gè)元素,比如random.choice(range(10)),從0到9中隨機(jī)挑選一個(gè)整數(shù) |
| randrange ([start,] stop [,step]) | 從指定范圍內(nèi),按指定基數(shù)遞增的集合中獲取一個(gè)隨機(jī)數(shù),基數(shù)缺省值為1 |
| random() | 隨機(jī)生成下一個(gè)實(shí)數(shù),它在[0,1)范圍內(nèi) |
| seed([x]) | 改變隨機(jī)數(shù)生成器的種子seed。如果你不了解其原理,你不必特別去設(shè)定seed,Python會(huì)幫你選擇seed |
| shuffle(lst) | 將序列的所有元素隨機(jī)排序 |
| uniform(x, y) | 隨機(jī)生成下一個(gè)實(shí)數(shù),它在[x,y]范圍內(nèi) |
三角函數(shù)
注:以下函數(shù)的使用,需先導(dǎo)入 math 包。
| 函數(shù) | 描述 |
|---|---|
| acos(x) | 返回 x 的反余弦弧度值 |
| asin(x) | 返回 x 的反正弦弧度值 |
| atan(x) | 返回 x 的反正切弧度值 |
| atan2(y, x) | 返回給定的 X 及 Y 坐標(biāo)值的反正切值 |
| cos(x) | 返回 x 的弧度的余弦值 |
| hypot(x, y) | 返回歐幾里德范數(shù)?sqrt(x*x + y*y) |
| sin(x) | 返回的 x 弧度的正弦值 |
| tan(x) | 返回 x 弧度的正切值 |
| degrees(x) | 將弧度轉(zhuǎn)換為角度,如 degrees(math.pi/2) 返回 90.0 |
| radians(x) | 將角度轉(zhuǎn)換為弧度 |
數(shù)學(xué)常量
| 常量 | 描述 |
|---|---|
| pi | 數(shù)學(xué)常量 pi(圓周率,一般以π來表示) |
| e | 數(shù)學(xué)常量 e,e 即自然常數(shù)(自然常數(shù)) |
字符串(string)
單引號(hào)和雙引號(hào)使用完全相同
使用三引號(hào)(
'''或""")可以指定一個(gè)多行字符串轉(zhuǎn)義符(反斜杠
\)可以用來轉(zhuǎn)義,使用r可以讓反斜杠不發(fā)生轉(zhuǎn)義,如r"this is a line with \n",則\n會(huì)顯示,并不是換行按字面意義級(jí)聯(lián)字符串,如
"this " "is " "string"會(huì)被自動(dòng)轉(zhuǎn)換為this is string字符串可以用?
+?運(yùn)算符連接在一起,用?*?運(yùn)算符重復(fù)字符串有兩種索引方式,從左往右以 0 開始,從右往左以 -1 開始
字符串不能改變
沒有單獨(dú)的字符類型,一個(gè)字符就是長(zhǎng)度為 1 的字符串
字符串的截取的語法格式如下:
變量[頭下標(biāo):尾下標(biāo)]
轉(zhuǎn)義字符
| 轉(zhuǎn)義字符 | 描述 |
|---|---|
| \ | 在行尾時(shí),續(xù)行符 |
| \\ | 反斜杠符號(hào) |
| \' | 單引號(hào) |
| \" | 雙引號(hào) |
| \a | 響鈴 |
| \b | 退格(Backspace) |
| \e | 轉(zhuǎn)義 |
| \000 | 空 |
| \n | 換行 |
| \v | 縱向制表符 |
| \t | 橫向制表符 |
| \r | 回車 |
| \f | 換頁 |
| \oyy | 八進(jìn)制數(shù),yy代表字符,例如:\o12代表換行 |
| \xyy | 十六進(jìn)制數(shù),yy代表字符,例如:\x0a代表換行 |
| \other | 其它的字符以普通格式輸出 |
字符串運(yùn)算符
| 操作符 | 描述 | 實(shí)例 |
|---|---|---|
| + | 字符串連接 | 'Hello' + 'Python'?輸出結(jié)果:'HelloPython' |
| * | 重復(fù)輸出字符串 | 'Hello' * 2?輸出結(jié)果:'HelloHello' |
| [] | 通過索引獲取字符串中字符 | 'Hello'[1]?輸出結(jié)果 e |
| [ : ] | 截取字符串中的一部分 | 'Hello'[1:4]?輸出結(jié)果 ell |
| in | 成員運(yùn)算符,如果字符串中包含給定的字符返回 True | 'H' in 'Hello'?輸出結(jié)果 True |
| not in | 成員運(yùn)算符,如果字符串中不包含給定的字符返回 True | 'M' not in 'Hello'?輸出結(jié)果 True |
| r/R | 原始字符串,所有的字符串都是直接按照字面的意思來使用,沒有轉(zhuǎn)義特殊或不能打印的字符。原始字符串除在字符串的第一個(gè)引號(hào)前加上字母 r(可以大小寫)以外,與普通字符串有著幾乎完全相同的語法 | print(r'\n')?或?print(R'\n') |
| % | 格式化字符串 |
字符串格式化
在 Python 中,字符串格式化不是 sprintf 函數(shù),而是用?%?符號(hào)。例如:
print("我叫%s, 今年 %d 歲!" % ('小明', 10))
// 輸出:
我叫小明, 今年 10 歲!格式化符號(hào):
| 符號(hào) | 描述 |
|---|---|
| %c | 格式化字符及其 ASCII 碼 |
| %s | 格式化字符串 |
| %d | 格式化整數(shù) |
| %u | 格式化無符號(hào)整型 |
| %o | 格式化無符號(hào)八進(jìn)制數(shù) |
| %x | 格式化無符號(hào)十六進(jìn)制數(shù) |
| %X | 格式化無符號(hào)十六進(jìn)制數(shù)(大寫) |
| %f | 格式化浮點(diǎn)數(shù)字,可指定小數(shù)點(diǎn)后的精度 |
| %e | 用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù) |
| %E | 作用同 %e,用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù) |
| %g | %f 和 %e 的簡(jiǎn)寫 |
| %G | %f 和 %E 的簡(jiǎn)寫 |
| %p | 用十六進(jìn)制數(shù)格式化變量的地址 |
輔助指令:
| 指令 | 描述 |
|---|---|
| * | 定義寬度或者小數(shù)點(diǎn)精度 |
| - | 用做左對(duì)齊 |
| + | 在正數(shù)前面顯示加號(hào) |
| 在正數(shù)前面顯示空格 | |
| # | 在八進(jìn)制數(shù)前面顯示零('0'),在十六進(jìn)制前面顯示'0x'或者'0X'(取決于用的是'x'還是'X') |
| 0 | 顯示的數(shù)字前面填充'0'而不是默認(rèn)的空格 |
| % | '%%'輸出一個(gè)單一的'%' |
| (var) | 映射變量(字典參數(shù)) |
| m.n. | m 是顯示的最小總寬度,n 是小數(shù)點(diǎn)后的位數(shù)(如果可用的話) |
Python 2.6 開始,新增了一種格式化字符串的函數(shù)?str.format(),它增強(qiáng)了字符串格式化的功能。
多行字符串
用三引號(hào)(
'''?或?""")包裹字符串內(nèi)容多行字符串內(nèi)容支持轉(zhuǎn)義符,用法與單雙引號(hào)一樣
三引號(hào)包裹的內(nèi)容,有變量接收或操作即字符串,否則就是多行注釋
實(shí)例:
string?=?'''
print(\tmath.fabs(-10))
print(\nrandom.choice(li))
'''
print(string)
輸出:
print(??math.fabs(-10))
print(
random.choice(li))
Unicode
在 2.x 中,普通字符串是以 8 位 ASCII 碼進(jìn)行存儲(chǔ)的,而 Unicode 字符串則存儲(chǔ)為 16 位 Unicode 字符串,這樣能夠表示更多的字符集。使用的語法是在字符串前面加上前綴?u。
在 3.x 中,所有的字符串都是 Unicode 字符串。
字符串函數(shù)
| 方法名 | 描述 |
|---|---|
| str.capitalize() | 首字母大寫,其余字符小寫 |
| str.center(width[, fillchar]) | 返回一個(gè)指定的寬度 width 居中的字符串,fillchar 為填充的字符,默認(rèn)為空格 |
| str.count(sub, start= 0,end=len(string)) | 統(tǒng)計(jì)子字符串在字符串中出現(xiàn)的次數(shù) |
| str.encode(encoding='UTF-8',errors='strict') | 以指定的編碼格式編碼字符串,返回 bytes 對(duì)象 |
| bytes.decode(encoding="utf-8", errors="strict") | 以指定的編碼格式解碼 bytes 對(duì)象,返回字符串 |
| str.endswith(suffix[, start[, end]]) | 判斷字符串是否以指定后綴結(jié)尾 |
| str.expandtabs(tabsize=8) | 把字符串中的 tab 符號(hào)(\t)轉(zhuǎn)為空格 |
| str.find(str, beg=0, end=len(string)) | 如果包含子字符串返回開始的索引值,否則返回-1 |
| str.index(str, beg=0, end=len(string)) | 如果包含子字符串返回開始的索引值,否則拋出異常 |
| str.isalnum() | 檢測(cè)字符串是否只由字母和數(shù)字組成 |
| str.isalpha() | 檢測(cè)字符串是否只由字母組成 |
| str.isdigit() | 檢測(cè)字符串是否只由數(shù)字組成 |
| str.islower() | 如果字符串中包含至少一個(gè)區(qū)分大小寫的字符,并且所有這些(區(qū)分大小寫的)字符都是小寫,則返回 True,否則返回 False |
| str.isupper() | 檢測(cè)字符串中所有的字母是否都為大寫 |
| str.isspace() | 如果字符串中只包含空格,則返回 True,否則返回 False |
| str.istitle() | 檢測(cè)字符串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫 |
| str.join(sequence) | 將序列的元素以指定的字符連接生成一個(gè)新的字符串 |
| len(s) | 返回對(duì)象(字符串、列表、元組等)長(zhǎng)度或項(xiàng)目個(gè)數(shù) |
| str.ljust(width[, fillchar]) | 返回一個(gè)原字符串左對(duì)齊,并使用空格填充至指定長(zhǎng)度的新字符串。如果指定的長(zhǎng)度小于原字符串的長(zhǎng)度則返回原字符串 |
| str.lower() | 轉(zhuǎn)換字符串中所有大寫字符為小寫 |
| str.upper() | 轉(zhuǎn)換字符串中所有小寫字符為大寫 |
| str.strip([chars]) | 移除字符串頭尾指定的字符(默認(rèn)為空格)或字符序列 |
| str.maketrans(intab, outtab) | 用于創(chuàng)建字符映射的轉(zhuǎn)換表,對(duì)于接受兩個(gè)參數(shù)的最簡(jiǎn)單的調(diào)用方式,第一個(gè)參數(shù)是字符串,表示需要轉(zhuǎn)換的字符,第二個(gè)參數(shù)也是字符串表示轉(zhuǎn)換的目標(biāo)。兩個(gè)字符串的長(zhǎng)度必須相同,為一一對(duì)應(yīng)的關(guān)系。 |
| str.translate(table) | 根據(jù)參數(shù)table給出的表轉(zhuǎn)換字符串的字符 |
| max(str) | 返回字符串中最大的字符 |
| min(str) | 返回字符串中最小的字符 |
| str.replace(old, new[, max]) | 把字符串中的 old(舊字符串) 替換成 new(新字符串),如果指定第三個(gè)參數(shù)max,則替換不超過 max 次 |
| str.split(str="", num=string.count(str)) | 通過指定分隔符對(duì)字符串進(jìn)行切片,如果參數(shù) num 有指定值,則僅分隔 num 個(gè)子字符串 |
| str.splitlines([keepends]) | 按照行('\r', '\r\n', \n')分隔,返回一個(gè)包含各行作為元素的列表,如果參數(shù) keepends 為 False,不包含換行符,如果為 True,則保留換行符 |
| str.startswith(str, beg=0,end=len(string)) | 檢查字符串是否是以指定子字符串開頭 |
| str.swapcase() | 對(duì)字符串的大小寫字母進(jìn)行互換 |
| str.title() | 返回"標(biāo)題化"的字符串,即所有單詞都是以大寫開始,其余字母均為小寫 |
| str.zfill(width) | 返回指定長(zhǎng)度的字符串,原字符串右對(duì)齊,前面填充0 |
| str.isdecimal() | 檢查字符串是否只包含十進(jìn)制字符,只適用于 Unicode 對(duì)象 |
字節(jié)(bytes)
在 3.x 中,字符串和二進(jìn)制數(shù)據(jù)完全區(qū)分開。文本總是 Unicode,由 str 類型表示,二進(jìn)制數(shù)據(jù)則由 bytes 類型表示。Python 3 不會(huì)以任意隱式的方式混用 str 和 bytes,你不能拼接字符串和字節(jié)流,也無法在字節(jié)流里搜索字符串(反之亦然),也不能將字符串傳入?yún)?shù)為字節(jié)流的函數(shù)(反之亦然)。
bytes 類型與 str 類型,二者的方法僅有 encode() 和 decode() 不同。
bytes 類型數(shù)據(jù)需在常規(guī)的 str 類型前加個(gè)?
b?以示區(qū)分,例如?b'abc'。只有在需要將 str 編碼(encode)成 bytes 的時(shí)候,比如:通過網(wǎng)絡(luò)傳輸數(shù)據(jù);或者需要將 bytes 解碼(decode)成 str 的時(shí)候,我們才會(huì)關(guān)注 str 和 bytes 的區(qū)別。
bytes 轉(zhuǎn) str:
b'abc'.decode()
str(b'abc')
str(b'abc',?encoding='utf-8')
str 轉(zhuǎn) bytes:
'中國'.encode()
bytes('中國',?encoding='utf-8'

