Python期末復(fù)習(xí)筆記
簟紋
關(guān)注
0.154
·
字?jǐn)?shù) 4487 · 閱讀 1780
2021-01-07 21:54
本篇根據(jù)老師畫的重點基本上將期末考點都囊括了
如果發(fā)現(xiàn)有錯誤或遺漏歡迎各位在學(xué)習(xí)群里指正
可能看起來稍微有點多,但其實大部分都是代碼
所有代碼塊都可以直接粘到編譯器里執(zhí)行,會報錯的代碼我都加了注釋
(? ·_·)?,加油
Python 語言基礎(chǔ)
python規(guī)范
命名規(guī)則
必須以下劃線或字母開頭
前后單下劃線為系統(tǒng)變量
雙下劃線開頭為類的私有變量
關(guān)鍵字不能用作變量名
注釋
單行注釋以 # 開頭
多行注釋可用多個 # 或者用 三引號(文檔注釋)
多行語句
行尾使用反斜線()來續(xù)行
同一行寫多條語句
語句間用分號(;)分隔
輸入輸出
輸出print()
print默認(rèn)在末尾換行
a = 1
b = 2
c = 3
# 直接輸出多個變量
print(a,b,c) # 輸出:1 2 3
# 使用 end參數(shù)用指定的字符替換末尾的換行符
print(a,end=’@’) # 輸出:1@
# 使用format
print(’a={}’.format(a))# 輸出:a=1
print(’a={0},b={1},c{2}’.format(a,b,c))# 輸出:a=1,b=2,c3
輸入input()
input輸入的始終是字符串,需要轉(zhuǎn)換為其他數(shù)據(jù)類型使用
python 數(shù)據(jù)類型
六個標(biāo)準(zhǔn)數(shù)據(jù)類型
Number(數(shù)字)
String(字符串)
List(列表)
Tuple(元組)
Sets(集合)
Dictionary(字典)
Number
包括:int(整型)、float(浮點型)、bool(布爾型)、complex(復(fù)數(shù))、long(長整型)
清楚哪些值轉(zhuǎn)換為布爾類型后值是False
print(bool([])) # 輸出:False
print(bool(’’)) # 輸出:False
print(bool({})) # 輸出:False
print(bool(())) # 輸出:False
# 注意下面兩個的區(qū)別
print(bool(0)) # 輸出:False
print(bool(’0’)) # 輸出:True
浮點數(shù)的內(nèi)置函數(shù)運算會有誤差,也就是小數(shù)的精度問題
String
字符串屬于序列,除此之外還有:元組、列表(集合和字典不是序列類型)
單引號和雙引號可以互換,也可以互嵌
三引號表示多行字符串(也可以作為文檔注釋)
另外:三引號內(nèi)可以直接使用回車、制表符,可以不使用轉(zhuǎn)移字符來表示
字符串常用操作
連接和重復(fù)
print('hello’*3,’ wor’+’ld’) # 輸出:hellohellohello world
字符串的切片(左閉右開)
word = ’hello world’
print(word[0:5]) # 輸出:hello
print(word[:5]) # 輸出:hello
print(word[1:]) # 輸出:ello world
print(word[:]) # 輸出:hello world
print(word[0:5:2]) # 輸出:hlo
print(word[2:-2]) # 輸出:llo wor
print(word[-2:2]) # 輸出空串
轉(zhuǎn)義字符
要注意這種復(fù)雜的轉(zhuǎn)義字符一起輸出
在字符串內(nèi)的“”、””、””等字符,會轉(zhuǎn)換為空白字符(回車符、水平制表符、換行符……)
printf(’helloworld’) # 輸出:hello world
Raw字符串(字符串內(nèi)不轉(zhuǎn)義)
字符串前綴為’R’或'r’
print(r'helloworld’) # 輸出:helloworld
變量及其賦值
簡單賦值
a = 1
多目標(biāo)賦值
a=b=c=1 # 這種情況下a、b、c都是引用同一個變量
這樣會報錯
a=(b=c=1) a=(b=1)
序列賦值
左邊是元組、列表表示的多個變量,右側(cè)是元組、列表或字符串等序列表示的值。
序列元素個數(shù)必須和變量個數(shù)相等,否則會出錯
在變量名前使用“*”創(chuàng)建列表對象引用
a,b = 1,2 # 省略括號的元組賦值
(c,d) = (2,3) # 元組賦值
[e,f] = [4,’5’] # 列表賦值
(g,h) = ['6’,7] # 元組和列表可以交叉賦值
(x,y,z) = 'abc’ # 字符串賦值,x='a’,y='b’,z='c’
(i,j) = (8,9,10) # 這是錯誤的,變量和值的個數(shù)必須相等
在變量名前使用“*”創(chuàng)建列表對象引用
x,*y = 'abcd’
print(x,y) # 輸出:a ['b’,’c’,’d’]
運算符和表達(dá)式
包括:算術(shù)運算符、關(guān)系運算符、字符串運算符、邏輯運算符。
算術(shù)運算符和表達(dá)式
算術(shù)運算符包括:加(+)、減(-)、乘(*)、除(/)、取余(%)、整除(//)、冪運算(**)
a+=1和a=a+1等價,a-=1、a//=2等也類似
要注意這種復(fù)雜的表達(dá)式的運算優(yōu)先級
int(8 * math.sqrt(36) * 10 ** (-2) *10 + 0.5)/10
運算順序如下:
int(8 * 6 * 10 ** (-2) * 10 + 0.5)/10
10**(2)=0.01
8 * 6 = 48
int(48 * 0.01 * 10 + 0.5 )/10
int(5.3)/10
5/10
0.5
邏輯運算符
and(邏輯與),or(邏輯或),not(邏輯非)
關(guān)系運算符
==(等于)、!=(不等于)、<>(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)
運算符的優(yōu)先級
最高優(yōu)先級的三個運算符(優(yōu)先級由高到低):** 冪運算、~ 安位取反、- 負(fù)號
最低優(yōu)先級的幾個運算符(優(yōu)先級由高到低):| 按位或、< > <= >= == != 關(guān)系運算符、not and or邏輯運算符
字符串運算符
下面這些運算對于列表、元組都有效(因為它們同屬序列類型)
字符串連接(+)
print(’a’+’b’) # 輸出:ab
重復(fù)字符串(*)
print(’a’*3) # 輸出:aaa
索引字符串( [] )
a=’hello’; print(a[1]); # 輸出:e
截取字符串( [:] )
print(a[1:4]) # 輸出:ell
成員運算符( in )
print(’e’ in a) # 輸出:True
成員運算符( not in )
print(’e’ not in a) # 輸出:False
Raw字符串( r/R )
print(R’hello’) # 輸出:hellollo
格式字符串(%)
print(’hello %s%s’ %(’wor’,’ld’)) # 輸出:hello world
格式化
%c(轉(zhuǎn)換為字符)
print(’%c’ %(’hello’)) # 報錯,必須是ASCII碼值或者一個字符,否則會出錯
%r(使用repr()進(jìn)行字符串轉(zhuǎn)換)
print(’%r’ %(’hello’)) # 輸出:’hello’
%s(使用str()進(jìn)行字符串轉(zhuǎn)換)
print(’%s’ %(’hello’)) # 輸出:hello
.format() 格式化
print(’a={}’.format(’a’)) # 輸出:a=a
repr()函數(shù)和str()函數(shù)的區(qū)別就在于接受值和返回值不同
repr()函數(shù)和str()函數(shù),分別會調(diào)用輸入對象的__repr__()、__str__()特殊方法
%d或%i(轉(zhuǎn)換為有符號十進(jìn)制數(shù))
print('%d’ %(-10)) # 輸出:-10
%u(轉(zhuǎn)換為無符號十進(jìn)制數(shù))
print(’%u’ %(-10)) # 輸出:-10
有無符號是指在二進(jìn)制下,最高位用來表示實際的數(shù)或是單純表示正負(fù)
%o(轉(zhuǎn)換為無符號八進(jìn)制數(shù))
print(’%o’ %(100)) # 輸出:144
%x或%X(轉(zhuǎn)換為無符號十六進(jìn)制數(shù))
print(’%x’ %(100)) # 輸出:64
%e或%E(轉(zhuǎn)換成科學(xué)計數(shù)法)
print(’%e’ %(1000)) # 輸出:1.000000e+03
%f或%F
print(’%f’ %(100) # 輸出:100.000000)
格式化操作輔助符
print(’開始%10.2f結(jié)束’ %(7.2222)) # 輸出:開始 7.22
%10.2f 表示:最小總長度為10,不足用前導(dǎo)空格補齊,長度大于等于10則正常顯示(這里的長度不包括小數(shù)點)
位運算符
異或:二進(jìn)制數(shù)逐位對比相同為0,不同為1
10^2==8 1010 異或 0010 結(jié)果為:1000
運算符說明
&按位與
|按位或
^按位異或
~按位去反
<<按位左移
>>按位右移
python 常用函數(shù)
數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
重點掌握加粗的函數(shù)
函數(shù)名說明
int(str)將字符串str轉(zhuǎn)換為<u>整數(shù)</u>
long(str)將字符串str轉(zhuǎn)換為<u>長整型整數(shù)</u>
float(str)將字符串str轉(zhuǎn)換為<u>浮點數(shù)</u>
eval(str)將字符串str轉(zhuǎn)換為<u>有效表達(dá)式</u>并返回表達(dá)式計算后的對象
str(x)將數(shù)值x轉(zhuǎn)換為<u>字符串</u>
repr(obj)將<u>對象</u>obj轉(zhuǎn)換為一個<u>字符串</u>
chr(x)將整數(shù)x轉(zhuǎn)換為對應(yīng)的<u>ASCII字符</u>
ord(x)將字符x轉(zhuǎn)換為對應(yīng)的<u>ASCII碼</u>
hex(x)將一個整數(shù)x轉(zhuǎn)換為一個<u>十六進(jìn)制字符串</u>
oct(x)將一個整數(shù)x轉(zhuǎn)換為一個<u>八進(jìn)制字符串</u>
tuple(squ)將一個序列squ轉(zhuǎn)換為一個<u>元組</u>
list(squ)將一個序列squ轉(zhuǎn)換為<u>列表</u>
set(squ)將一個序列squ轉(zhuǎn)換為可變<u>集合</u>
dict(squ)創(chuàng)建一個<u>字典</u>,squ是一個序列(key,value)元組
len(obj)返回對象的長度(字符個數(shù)、列表元素個數(shù)、字典key個數(shù))
數(shù)學(xué)函數(shù)
函數(shù)名說明
abs(x)返回數(shù)值x的絕對值
exp(x)返回e的x次冪
fabs(x)返回數(shù)字的絕對值
log10(x)返回以10為底的x的對數(shù)
pow(x,y)返回x的y次冪
floor(x)x向下取整(小于等于x)
ceil(x)x向上取整(大于等于x)
fmod(x,y)求x/y的余數(shù)
sin(x) cos(x)...返回x的三角函數(shù)值
python數(shù)據(jù)結(jié)構(gòu)
python常用三種數(shù)據(jù)結(jié)構(gòu):序列、映射、集合
列表和元組有什么相同點和不同點?(后面會給出解釋)
字符串
字符串是不可變的序列,不可以通過 str[n] = chr來改變字符串
字符串的切片(左閉右開)
word = ’hello world’
print(word[0:5]) # 輸出:hello
print(word[:5]) # 輸出:hello
print(word[1:]) # 輸出:ello world
print(word[:]) # 輸出:hello world
print(word[0:5:2]) # 輸出:hlo
print(word[2:-2]) # 輸出:llo wor
print(word[-2:2]) # 輸出空串
字符串轉(zhuǎn)列表
可以通過list()函數(shù)直接將字符串中的每個字符轉(zhuǎn)換為一個列表元素,也可以通過split()方法根據(jù)指定的分割符分割元素(默認(rèn)以空格分割)。
word = ’hello world’
print(list(word)) # 輸出:[’h’, ’e’, ’l’, ’l’, ’o’, ’ ’, ’w’, ’o’, ’