成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python基本函數(shù)總結(jié),python的基本函數(shù)

【Python】基礎(chǔ)總結(jié)

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常用函數(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? 棒!??!

Python字典中幾個(gè)常用函數(shù)總結(jié)

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'}

python函數(shù)與方法的區(qū)別總結(jié)

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)用。

太全了!Python3常用內(nèi)置函數(shù)總結(jié)

數(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)

營銷型網(wǎng)站建設(shè)
时尚| 比如县| 高密市| 荥阳市| 峨眉山市| 阳原县| 原阳县| 滕州市| 永新县| 新宁县| 乐安县| 滕州市| 滕州市| 乌兰县| 龙陵县| 青田县| 和田市| 象山县| 阿坝县| 和平区| 南召县| 玉龙| 郴州市| 阜新| 崇义县| 惠来县| 文山县| 太原市| 磴口县| 缙云县| 盘山县| 松原市| 龙游县| 泗阳县| 娱乐| 左云县| 来安县| 安吉县| 临猗县| 云南省| 永善县|