input("提示性信息")
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供陽城網(wǎng)站建設(shè)、陽城做網(wǎng)站、陽城網(wǎng)站設(shè)計(jì)、陽城網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、陽城企業(yè)網(wǎng)站模板建站服務(wù),10年陽城做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
如:
input("請(qǐng)輸入數(shù)字")
因?yàn)?Python 沒有特別人為規(guī)定數(shù)據(jù)類型,數(shù)據(jù)類型是由計(jì)算機(jī)進(jìn)行判定,所以我們 input() 輸入的數(shù)據(jù)均默認(rèn)作為字符串處理,而如果要輸入一些數(shù)字,著需要 eval() 評(píng)估函數(shù)對(duì)字符串進(jìn)行評(píng)估,化為語句(數(shù)字)。
print(...)
默認(rèn)空一行,如果想不空行,則
print(...., end = "")
特性:
進(jìn)制:
特性:
浮點(diǎn)數(shù)間運(yùn)算存在不確定尾數(shù),不是 bug
如:0.1+0.3 → 0.4
0.1+0.2 → 0.30000000000000004
這是由于在計(jì)算機(jī)中一切數(shù)據(jù)都是化為二進(jìn)制進(jìn)行存儲(chǔ)的,而有的浮點(diǎn)數(shù)并不能完全化為相等的二進(jìn)制數(shù),只能無限趨近于二進(jìn)制數(shù)。
如:0.1 →
解決方法:
四舍五入:
例如:z = 1.23e-4 + 5.6e+89j
z.real 獲得實(shí)部,z.imag 獲得虛部
三種類型存在一種逐漸“擴(kuò)展”或“變寬”的關(guān)系:
整數(shù) → 浮點(diǎn)數(shù) → 復(fù)數(shù)
特點(diǎn):
字符串有 2 類共 4 種表示方法:
擴(kuò)展:
使用[]獲取字符串中一個(gè)或多個(gè)字符
使用[M:N:K]根據(jù)步長對(duì)字符串切片
{參數(shù)序號(hào):格式控制標(biāo)記}
右對(duì)齊
^ 居中對(duì)齊 | 槽設(shè)定的輸出寬度 | 數(shù)字的千位分隔符 | 浮點(diǎn)數(shù)小數(shù)精度 或 字符串最大輸出長度 | 整數(shù)類型
b , c , d , o , x , X
浮點(diǎn)數(shù)類型
e , E , f , % |
填充、對(duì)齊、寬度這三個(gè)一組,例如:
"{0:=^20}".format("PYTHON")
→ '=======PYTHON======='
"{0:*20}".format("BIT")
→ '*****************BIT'
"{:10}".format("BIT")
'BIT '
剩下的三個(gè)一組,例如:
"{0:,.2f}".format(12345.6789)
→ '12,345.68'
"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}x".format(425)
→ '110101001,Σ,425,651,1a9,1A9'
"{0:e},{0:E},{0:f},{0:%}".format(3.14)
'3.140000e+00,3.140000E+00,3.140000,314.000000%'
↓CloseCode↓
使用 raise 語句拋出一個(gè)指定的異常。
raise [Exception [, args [, traceback]]]
緊湊形式:適用于簡單表達(dá)式的二分支結(jié)構(gòu)
表達(dá)式1 if 條件 else 表達(dá)式2
例如:
↓CloseCode↓
↓CloseCode↓
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
由條件控制的循環(huán)運(yùn)行方式
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
↓CloseCode↓
可選參數(shù)例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
可變參數(shù)例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
在函數(shù)定義中,經(jīng)常會(huì)碰到 *args(arguments) 和作為參數(shù) **kwargs(keyword arguments)。
(事實(shí)上在函數(shù)中,和才是必要的,args 和 kwargs 可以用其他名稱代替)
*args 是指不定數(shù)量的非鍵值對(duì)參數(shù)。
**kwargs 是指不定數(shù)量的鍵值對(duì)參數(shù)。
*args 作為作為元組匹配沒有指定參數(shù)名的參數(shù)。而 **kwargs 作為字典,匹配指定了參數(shù)名的參數(shù)。
*args 必須位于 **kwargs 之前。
args( 通常緊跟一個(gè)標(biāo)識(shí)符,你會(huì)看到a或者args都是標(biāo)識(shí)符)是python用于接收或者傳遞任意基于位置的參數(shù)的語法。當(dāng)你接收到一個(gè)用這種語法描敘參數(shù)時(shí)(比如你在函數(shù)def語句中對(duì)函數(shù)簽名使用了星號(hào)語法),python會(huì)將此標(biāo)識(shí)符綁定到一個(gè)元祖,該元祖包含了所有基于位置的隱士的接收到的參數(shù)。當(dāng)你用這種語法傳遞參數(shù)時(shí),標(biāo)識(shí)符可以被綁定到任何可迭代對(duì)象(事實(shí)上,它也可以是人和表達(dá)式,并不必須是一個(gè)標(biāo)識(shí)符),只要這個(gè)表達(dá)式的結(jié)果是一個(gè)可迭代的對(duì)象就行。
**kwds(標(biāo)識(shí)符可以是任意的,通常k或者kwds表示)是python用于接收或者傳遞任意基于位置的參數(shù)的語法。(python有時(shí)候會(huì)將命名參數(shù)稱為關(guān)鍵字參數(shù),他們其實(shí)并不是關(guān)鍵字--只是用他們來給關(guān)鍵字命名,比如pass,for或者yield,還有很多,不幸的是,這種讓人疑惑的術(shù)語目前仍是這門語言極其文化根深蒂固的一個(gè)組成部分。)當(dāng)你接收到用這種語法描敘的一個(gè)參數(shù)時(shí)(比如你在函數(shù)的def語句中對(duì)函數(shù)簽名使用了雙星號(hào)語法)python會(huì)將標(biāo)識(shí)符綁定到一個(gè)字典,該字典包含了所有接收到的隱士的命名參數(shù)。當(dāng)你用這種語法傳遞參數(shù)時(shí),標(biāo)識(shí)符只能被綁定到字典(我ID號(hào)I它也可以是表達(dá)式,不一定是一個(gè)標(biāo)識(shí)符,只要這個(gè)表達(dá)式的結(jié)果是一個(gè)字典即可)。
當(dāng)你在定義或調(diào)用一個(gè)函數(shù)的時(shí)候,必須確保a和k在其他所有參數(shù)之后。如果這兩者同時(shí)出現(xiàn),要將k放在a之后。
lambda函數(shù)返回函數(shù)名作為結(jié)果
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
謹(jǐn)慎使用lambda函數(shù)
pandas官方文檔:
對(duì)常用函數(shù)做了匯總,每個(gè)函數(shù)的參數(shù)可能不是全的,但是常用的,不常用的沒總結(jié),如有問題,請(qǐng)不吝賜教,謝謝!
1、創(chuàng)建Series
? 通用函數(shù):pd.Series(values,index)
1)pd.Series([1,2,3],index=[‘a(chǎn)’,‘b’,‘c‘])
2)pd.Series(np.array([1,2,3]),index=[‘a(chǎn)’,‘b’,‘c‘])
3)pd.Series({ 'a':1,? 'b':2,? 'c':3})
? ? Series轉(zhuǎn)字典:Series.to_dict()
說明:Series的values參數(shù)是python中常見的一維數(shù)據(jù)類型。
2、屬性
1)Series.values ---array([1,2,3])
? ? ?? Series的values是array類型
2)Series.index---index([‘a(chǎn)’,‘b’,‘c‘])
? ? ?? 未指定index時(shí),自動(dòng)生成 0-(N-1)的整數(shù)索引,
? ? ?? 指定 index時(shí),使用指定索引。
3、Series的索引與切片
?? Series[0] / Series['a']? : Sereis可以位置索引或標(biāo)簽索引,也可以進(jìn)行切片操作
1、創(chuàng)建DataFrame
1) 創(chuàng)建DataFrame的通用函數(shù):
df = pd.DataFrame(values,index,columns)
pd.dataFrame([[1,2,3],[4,5,6],[7,8,9]],index=['a','b','c'],columns=['bj','sh','sz'])
pd.dataFrame(np.arange(1,10).reshape(3,3),index=['a','b','c'],columns=['bj','sh','sz'])
pd.dataFrame('bj':[1,4,7],'sh':[2,5,8],'sz':[3,6,9],index=['a','b','c'])
說明:創(chuàng)建方法與Sries類似,Series的values參數(shù)是python中常見的一維數(shù)據(jù)類型,DataFrame的values參數(shù)是python中常見的二維數(shù)據(jù)類型。
2) 通過網(wǎng)頁中復(fù)制數(shù)據(jù)快捷創(chuàng)建
? ? import webbrowser
? ? link = ''
? ? webbrowser.open(link)
? ? 打開界面進(jìn)行復(fù)制,將數(shù)據(jù)復(fù)制到粘貼板中
? ? df = pd.read_clipboard() ? #從粘貼板中讀取數(shù)據(jù)
3)通過Series創(chuàng)建DataFrame
? ? df = pd.DataFrame([s1,s2,s3],columns=['bj','sh','sz'])
? ? 注意:單獨(dú)的s1,s2,s3是縱向排列的的Series,但是在DataFrame中是橫向排列的。
? ? 自己總結(jié):Series除了打印出來是Series格式外,其他時(shí)候可以直接當(dāng)作list來操作。
2、屬性
1)df.columns
? ? 通過columns生成新的DataFrame
? ? df_new = pd.DataFrame(df,columns=['x1','x2'])
? ? 或者df_new = df[['x1','x2']]
2)df.shape? 顯示行列數(shù)
3)df.head() ? 默認(rèn)顯示前5行
4)df.tail() ? ? 默認(rèn)顯示后5行
3、獲取DataFrame的列
1)獲取DataFrame某一列
? ? ? df.x1或df['x1']:返回值是Series,可以理解為一個(gè)DataFrame是由多個(gè)Series組成的。
? 2) 獲取DataFrame某幾列
? ? ? df_new = df[['x1','x2','x3']]
4、為某列賦值
? 1) df['x1'] = range(10)
? 2) df['x1'] = numpy.arange(10)
? 3) df['x1'] = pd.Series(np.arange(10))
? 說明:類似于創(chuàng)建Series
5、為某列對(duì)應(yīng)的特定行重新賦值
? ? df['x1'] = pd.Series([2,3],index=[0,1])
? ? 將列為x1,行索引為0和1的值改為2,3
6、獲取DadaFrame的行
? for row in DataFrame.iterrows():
? ? ? ? ? print(row[0],row[1])
? #每個(gè)row是一個(gè)元祖,包含2個(gè)元素,row[0]是整型索引,row[1]是Series,所以從行的角度也可以看出,一個(gè)DataFrame是由多個(gè)Series組成的。
7、DataFrame的轉(zhuǎn)置
? df_new = df.T
1、粘貼板的io
? df = pd.read_clipboard()
? df.to_clipboard()
2、csv的io
?? df.to_csv('xxx.csv')
?? df = pd.read_csv('xxx.csv')
3、json的io
?? df.to_json()
?? pd.read_json(df.to_json())
4、excel的io
? ? df.to_excel('xx.xlsx')
? ? df = pd.read_excel('xx.xlsx')
5、df = pd.read_sql('')
? ? df.to_sql('')
1、iloc
? sub_df = df.iloc[10:20,:]? 選取DataFrame的10-20行,所有列數(shù)據(jù)
? sub_df = df.iloc[10:20,0:2]
? 說明:iloc函數(shù)是位置索引,與索引的名字無關(guān)。
2、loc
? sub_df = df.loc[10:20,:'movie_name']
? 說明:loc是標(biāo)簽索引,10,20,'movie_name'? 都是索引名字,與位置無關(guān)。
1、Series.reindex(index=['x1','x2','x3'],fill_value=10)
? 將df重新索引,并且將NaN空值用10進(jìn)行填充
2、Series.reindex(index=range(15),method='ffill')
前項(xiàng)填充,后面的值用前面的值進(jìn)行填充
通過reindex想到,如果想新增一個(gè)空列或者空行,可以用reindex方法,同樣地,想減少某些行或者某些列,也可以用reindex方法。
? 繼reindex之后刪除行列的函數(shù)操作
? Series.drop('A') ? #刪除'A'所對(duì)應(yīng)的值
? DataFrame.drop(label,axis)?
? label可以是行名也可以是列名,label是行的話axis是0,label是列的話axis是1。
** 刪除行還可以用 del df['A']
nan是numpy的一種數(shù)據(jù)類型,np.nan,float類型
任何數(shù)據(jù)與nan的運(yùn)算結(jié)果都是nan
1、nan in Series
? Series.isnull()? --返回value為True或者False的Series
? Series.notnull()? --返回value為True或者False的Series
? Series.dropna()? --返回刪除nan值后的Series
? Series.fillna(method='ffill')? --前項(xiàng)插值,按照前面的值填充后面的空值
2、nan in DataFrame
? df.isnull()? --返回value為True或者False的DataFrame
? df.notnull()? --返回value為True或者False的DataFrame
? df.dropna(axis=0/1,how='any/all',thresh=None)
? 說明:axis表示刪除行為nan或者列為nan;
? ? ? ? ? ? any表示只要有一個(gè)為空,all表示行中的每個(gè)元素或者列中的每個(gè)元素為空;
? ? ? ? ? ? thresh是閾值的意思,表示某行或者某列nan的個(gè)數(shù)達(dá)到閾值的個(gè)數(shù)時(shí)才刪除該行或該列。
? df.fillna(value=1)? ---所有的空值都填充為1
? df.fillna(value={0:0,1:1,2:2}) ---將0列的空值填為0,1列的空值填為1,2列的空值填為2,默認(rèn)為填充列
? 注意:fillna和dropna的特點(diǎn),生成新的DataFrame,原來的DataFrame不變。
1、多重索引介紹
Series = pd.Series(np.random.randn(6),index=[['1','1','1','2','2','2'],['a','b','c','a','b','c']])
'1','2'為一級(jí)索引,'a','b','c'為二級(jí)索引
df 可以看做是索引的'1','2'的Series
Series['1']? --Series
Series['1']['a']? --value
Series[:,'a'] --選擇'1'和'2'中的'a'對(duì)應(yīng)的值
2、多重索引格式轉(zhuǎn)為二維DataFrame
df = Series.unstack() --轉(zhuǎn)為二維DataFrame
3、多重索引在DataFrame中的操作
1、 map函數(shù)與apply函數(shù)、applymap函數(shù)的區(qū)別:
? 1)map函數(shù)對(duì)Series中的每個(gè)元素作用;
? 2)applymap函數(shù)對(duì)DataFrame中的每個(gè)元素作用;
? 3)apply函數(shù)對(duì)對(duì)DataFrame和Series的一列做整體運(yùn)算。
2、Series.replace(to_replace=[2,3,4],values=[20,30,40])? 替換Series中多個(gè)值
Series.replace({1:10,2:20})? 將索引為1的值替換為10,將索引為2的值替換為20
df.sum()? --默認(rèn)按照列進(jìn)行求和,nan的值被忽略
df.min()? --默認(rèn)按照列求最小值
df.max()? --默認(rèn)按照列求最大值
df.mean()? --默認(rèn)按照列求平均值
df.describe()? --默認(rèn)按照列進(jìn)行描述
df.sum(axis=1)? --按行求和,nan的值被忽略
#axis=0表示對(duì)橫軸進(jìn)行操作,但是運(yùn)算中表現(xiàn)為縱軸操作
#axis=1表示對(duì)縱軸進(jìn)行操作,但是運(yùn)算中表現(xiàn)為橫軸操作
bins = [0,59,70,80,100],bins是分割范圍
score_cat = pd.cut(Series,bins)? ---得到catgory類型的數(shù)據(jù)
DataFrame的分箱技術(shù)很棒啊!
pd['catgory'] = pd.cut(df['a'],bins=[0,59,70,80,100],labels=['low','ok','good','great'])
--新增一列,將a列的值按照labels進(jìn)行分類標(biāo)記,good!!!
#生成長度為3的隨機(jī)字符串? pd.util.testing.rands(3)
1、按照一列分組
? g = df.groupby('city')
? g是分組類型數(shù)據(jù),打印不出來,所以看不到,但是有屬性和方法可以間接的了解
1) g.groups? --得到分的幾個(gè)組,和每個(gè)組包含的索引
2)g.get_group('BJ')? --得到'BJ'所對(duì)應(yīng)的組
3)groupby = split +apply +combine
? ? ?? g.mean()? --求每組的平均值
? ? ?? g.max() ? --求每組的最大值
? ? ?? g.min() ? --求每組的最小值
? ? ?? g.count()
? ? ?? g.describe()
? 4)g是一個(gè)可迭代對(duì)象,可以用list函數(shù)將其轉(zhuǎn)化為list
? ? ? list(g) -- [('組名1',DataFrame1),('組名2',DataFrame2),(),()]
? ? ? dict(list(g))? --將其轉(zhuǎn)化為字典
? 同時(shí)可以通過for循環(huán)進(jìn)行遍歷操作:for item,desc in g:print(item,desc)
? #怪不得分組后不是DataFrame,因?yàn)樵M的第一個(gè)元素是'分組名'。
2、按照多列分組
? g_new = df.groupby(['city','wind'])
? 得到生成器((('分組1','分組2'),DataFrame),(),()...)
? g_new.get_group(('分組1','分組2'))
? for (name_1,name_2),group in g_new:
? ? ? ? ? print((name_1,name_2),group)
g.mean()? --求每組的平均值
與g.agg('mean')方法一樣
pd.pivot_table(df,index=['',''],aggfuc='sum',values=['',''])
index是分組的組名,values是透視表呈現(xiàn)結(jié)果的列,columns是values下的分解
#感覺透視表呈現(xiàn)的結(jié)果就是groupby+agg后的結(jié)果
#分析者需要對(duì)數(shù)據(jù)結(jié)構(gòu)有一定的了解
df.sort_values(by='',ascending=True/False)[:10]? df可以索引
df.value_counts()? --按值計(jì)數(shù)
df.['a'] = df['b'].apply(lambda x:x0)? --DataFrame中的True/False
通過g.size()可以看到被groupby之后的數(shù)據(jù),得到的是一個(gè)Series
1、Series的排序:
1)對(duì)值進(jìn)行排序
Series.sort_values()? ---直接對(duì)Series的值進(jìn)行排序
2)通過索引進(jìn)行排序
Series.sort_index()?
#默認(rèn)都是升序排列
2、DataFrame的排序
df.sort_values(by='')? --按照某列的順序進(jìn)行排序
df['a'].sort_values()? --返回對(duì)a列數(shù)據(jù)的排序結(jié)果,只返回a列
1、df.index = Series(['a','b','c'])? 直接對(duì)index賦予新值
2、df.index = df.index.map(str.upper)
map函數(shù)中只傳入新的函數(shù)名即可
3、df.rename(index=str.upper,columns=str.lower)
? 或者傳遞字典,進(jìn)行一一轉(zhuǎn)換
pd.merge(df1,df2,on=None,how='left/right/inner/outer')
pd.merge(df1,df2)? --沒有on參數(shù)默認(rèn)先找相同的columns,然后在columns下找相同的values
pd.merge(df1,df2,on='columns')? --on參數(shù)是指按照指定列進(jìn)行merge
left:表示以左邊的數(shù)據(jù)表為基準(zhǔn),進(jìn)行填充右面的數(shù)據(jù)
right:表示以右邊的數(shù)據(jù)表為基準(zhǔn),填充左邊的數(shù)據(jù)
outer:以on的指定列的所有值為基準(zhǔn),填充兩邊的數(shù)據(jù)
inner:默認(rèn)inner,相同on指定的columns下的相同values對(duì)應(yīng)的左右兩邊的數(shù)據(jù)
1、concat拼接
pd.concat([Series1,Series2])
pd.concat([df1,df2])? -- 上下疊加,將沒有的列進(jìn)行填充
2、combine組合
Series1.combine_first(Series2)? --用Series2的值去填充Series1中為空的值
df1.combine_first(df2)? ---用df2將df1中的空值填充
df['A'] = df['A'].apply(str.upper)? ---apply函數(shù)中也只輸入函數(shù)名
len(df)? --求df的長度
len(df['a'].unique())? --查看a列中不重復(fù)數(shù)據(jù)的多少
Series.duplicated()? --返回一列True/False的Series
Series.drop_duplicates()? --刪除重復(fù)值
df.drop_duplicates('a',keep='first/last')
df.drop_duplicates()? --刪除完全重復(fù)的行
參數(shù):'a'表示以a列為基準(zhǔn),刪除重復(fù)值
? ? ? ? ? first表示保留第一個(gè),last表示保留最后一個(gè)
data_list = pd.date_range(start,end,period='D',freq)
period='D',以天為單位
freq = 'W' 以周為單位
freq = 'W-Mon'以每周一位單位
freq = '5H'? 以5h為單位
以data_range作為索引提取數(shù)據(jù)比較簡單
df[datetime(2017,9,1)]
df['2017-09-01']
df['20170901']
df['201709']
對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行分組聚合操作:
s1.resample('M').mean()? --以月為單位進(jìn)行采樣,然后求每組的平均值
s1.resample('H').ffill()? --前項(xiàng)填充
s1.resample('H').bfill()? --后項(xiàng)填充
補(bǔ)充:1)jupyter中可以執(zhí)行l(wèi)inux命令,太棒了!
? ? ? ? ? ? !ls
? ? ? ? ? ? !more xxx.csv
? ? ? ? ? ? !pwd? 等等
? ? ?? 2)jupyter 查看函數(shù)幫助的快捷鍵:摁住shift + tab? 棒!??!
1、get() 返回指定鍵的值,如果值不在字典中返回default值。
語法:dict.get(key,default=None)
參數(shù):
key 字典中要查找的鍵。
default 如果指定鍵的值不存在時(shí),返回該默認(rèn)值值。
例:
dict={'Name':'alex','Age':21}
print("Name is:%s"% dict.get('Name')+"\n"+ "Age is:%d"% dict.get('Age'))
顯示結(jié)果為:
Name is:alex
Age is:21
2、update() 將一個(gè)字典中的值更新到另一個(gè)字典中。
語法:dict.update(dict2)
參數(shù):
dict2 添加到指定字典dict里的字典。
例:
dict={'Name':'alex','Age':21}
dict2={'Sex':'female'}
dict.update(dict2)
print("Value is %s" % dict)
顯示結(jié)果為:
Value is {'Name': 'alex', 'Age': 21, 'Sex': 'female'}
1、函數(shù)的分類:
內(nèi)置函數(shù):python內(nèi)嵌的一些函數(shù)。
匿名函數(shù):一行代碼實(shí)現(xiàn)一個(gè)函數(shù)功能。
遞歸函數(shù)
自定義函數(shù):根據(jù)自己的需求,來進(jìn)行定義函數(shù)。
2、方法的分類:
普通方法:直接用self調(diào)用的方法。
私有方法:__函數(shù)名,只能在類中被調(diào)用的方法。
屬性方法:@property,將方法偽裝成為屬性,讓代碼看起來更合理。
特殊方法(雙下劃線方法):以__init__為例,是用來封裝實(shí)例化對(duì)象的屬性,只要是實(shí)例化對(duì)象就一定會(huì)執(zhí)行__init方法,如果對(duì)象子類中沒有則會(huì)尋找父類(超類),如果父類(超類)也沒有,則直接繼承object(python 3.x)類,執(zhí)行類中的__init__方法。類方法:通過類名的調(diào)用去操作公共模板中的屬性和方法。
靜態(tài)方法:不用傳入類空間、對(duì)象的方法, 作用是保證代碼的一致性,規(guī)范性,可以完全獨(dú)立類外的一個(gè)方法,但是為了代碼的一致性統(tǒng)一的放到某個(gè)模塊(py文件)中。
其次,從作用域的角度來分析:
(1)函數(shù)作用域:從函數(shù)調(diào)用開始至函數(shù)執(zhí)行完成,返回給調(diào)用者后,在執(zhí)行過程中開辟的空間會(huì)自動(dòng)釋放,也就是說函數(shù)執(zhí)行完成后,函數(shù)體內(nèi)部通過賦值等方式修改變量的值不會(huì)保留,會(huì)隨著返回給調(diào)用者后,開辟的空間會(huì)自動(dòng)釋放。
(2)方法作用域:通過實(shí)例化的對(duì)象進(jìn)行方法的調(diào)用,調(diào)用后開辟的空間不會(huì)釋放,也就是說調(diào)用方法中對(duì)變量的修改值會(huì)一直保留。
最后,調(diào)用的方式不同。
(1)函數(shù):通過“函數(shù)名()”的方式進(jìn)行調(diào)用。
(2)方法:通過“對(duì)象.方法名”的方式進(jìn)行調(diào)用。
數(shù)學(xué)相關(guān)
abs(a) : 求取絕對(duì)值。abs(-1)
max(list) : 求取list最大值。max([1,2,3])
min(list) : 求取list最小值。min([1,2,3])
sum(list) : 求取list元素的和。 sum([1,2,3]) 6
sorted(list) : 排序,返回排序后的list。
len(list) : list長度,len([1,2,3])
divmod(a,b): 獲取商和余數(shù)。 divmod(5,2) (2,1)
pow(a,b) : 獲取乘方數(shù)。pow(2,3) 8
round(a,b) : 獲取指定位數(shù)的小數(shù)。a代表浮點(diǎn)數(shù),b代表要保留的位數(shù)。round(3.1415926,2) 3.14
range(a[,b]) : 生成一個(gè)a到b的數(shù)組,左閉右開。range(1,10) [1,2,3,4,5,6,7,8,9]
類型轉(zhuǎn)換
int(str) : 轉(zhuǎn)換為int型。int('1') 1
float(int/str) : 將int型或字符型轉(zhuǎn)換為浮點(diǎn)型。float('1') 1.0
str(int) : 轉(zhuǎn)換為字符型。str(1) '1'
bool(int) : 轉(zhuǎn)換為布爾類型。 str(0) False str(None) False
bytes(str,code) : 接收一個(gè)字符串,與所要編碼的格式,返回一個(gè)字節(jié)流類型。bytes('abc', 'utf-8') b'abc' bytes(u'爬蟲', 'utf-8') b'xe7x88xacxe8x99xab'
list(iterable) : 轉(zhuǎn)換為list。 list((1,2,3)) [1,2,3]
iter(iterable): 返回一個(gè)可迭代的對(duì)象。 iter([1,2,3]) list_iterator object at 0x0000000003813B00
dict(iterable) : 轉(zhuǎn)換為dict。 dict([('a', 1), ('b', 2), ('c', 3)]) {'a':1, 'b':2, 'c':3}
enumerate(iterable) : 返回一個(gè)枚舉對(duì)象。
tuple(iterable) : 轉(zhuǎn)換為tuple。 tuple([1,2,3]) (1,2,3)
set(iterable) : 轉(zhuǎn)換為set。 set([1,4,2,4,3,5]) {1,2,3,4,5} set({1:'a',2:'b',3:'c'}) {1,2,3}
hex(int) : 轉(zhuǎn)換為16進(jìn)制。hex(1024) '0x400'
oct(int) : 轉(zhuǎn)換為8進(jìn)制。 oct(1024) '0o2000'
bin(int) : 轉(zhuǎn)換為2進(jìn)制。 bin(1024) '0b10000000000'
chr(int) : 轉(zhuǎn)換數(shù)字為相應(yīng)ASCI碼字符。 chr(65) 'A'
ord(str) : 轉(zhuǎn)換ASCI字符為相應(yīng)的數(shù)字。 ord('A') 65
相關(guān)操作
eval****() : 執(zhí)行一個(gè)表達(dá)式,或字符串作為運(yùn)算。 eval('1+1') 2
exec() : 執(zhí)行python語句。 exec('print("Python")') Python
filter(func, iterable) : 通過判斷函數(shù)fun,篩選符合條件的元素。 filter(lambda x: x3, [1,2,3,4,5,6]) filter object at 0x0000000003813828
map(func, *iterable) : 將func用于每個(gè)iterable對(duì)象。 map(lambda a,b: a+b, [1,2,3,4], [5,6,7]) [6,8,10]
zip(*iterable) : 將iterable分組合并。返回一個(gè)zip對(duì)象。 list(zip([1,2,3],[4,5,6])) [(1, 4), (2, 5), (3, 6)]
type():返回一個(gè)對(duì)象的類型。
id(): 返回一個(gè)對(duì)象的唯一標(biāo)識(shí)值。
hash(object):返回一個(gè)對(duì)象的hash值,具有相同值的object具有相同的hash值。 hash('python') 7070808359261009780
help():調(diào)用系統(tǒng)內(nèi)置的幫助系統(tǒng)。
isinstance():判斷一個(gè)對(duì)象是否為該類的一個(gè)實(shí)例。
issubclass():判斷一個(gè)類是否為另一個(gè)類的子類。
globals() : 返回當(dāng)前全局變量的字典。
next(iterator[, default]) : 接收一個(gè)迭代器,返回迭代器中的數(shù)值,如果設(shè)置了default,則當(dāng)?shù)髦械脑乇闅v后,輸出default內(nèi)容。
reversed(sequence) : 生成一個(gè)反轉(zhuǎn)序列的迭代器。 reversed('abc') ['c','b','a']
網(wǎng)站標(biāo)題:python基本函數(shù)總結(jié),python的基本函數(shù)
本文路徑:http://jinyejixie.com/article26/hsihjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站營銷、網(wǎng)站收錄、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)