python學習筆記(4)

2021-08-19 22:46:30 字數 2868 閱讀 7359

函式定義和呼叫

函式就是最基本的一種**抽象的方式(python有許多內建函式)

呼叫:要呼叫乙個函式,需要知道函式

的名稱和引數

比較函式cmp(x,y)就需要兩個引數,如果

x,就返回

-1,如果

x==y

,就返回

0,如果

x>y

就返回1

資料型別轉換函式,不如int()函式可以把其他資料型別轉換為整數

>>>int(『123』)

>>int(12.34)

例如:>>>str(123)

編寫函式:

在python中,定義以惡函式要使用

def語句,一次寫出函式名,括號,括號中的引數和冒號,然後在縮排塊中編寫函式體,函式的返回值用

return

語句返回

例如:定義乙個求絕對值的my_abs函式

def my_abs(x):

if x>=0

return x

else

return -x

注意:如果沒有return語句,函式執行完畢也會返回結果,只是結構為

函式返回多值

但其實這只是一種假象,python函式返回的仍然是單一值,

python

的函式返回多值其實就是返回乙個

tuple

遞迴函式:如果乙個函式在內部呼叫自己本身,這個函式就是遞迴函式

例如:計算階乘n!

def fact(n):

if n==1

return n*fact(n-1)

>>>fact(1)

>>>fact(5)

知識點:使用遞迴函式需要注意防止棧溢位。在計算機中,函式呼叫時通過棧(stack)這種資料結構實現的,每當進入乙個函式呼叫,棧就會加一層棧幀,每當函式返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以遞迴呼叫的次數過多,會導致棧溢位。

定義預設引數

例如python自帶的

int()

函式,其實就有兩個引數,既可以傳乙個引數,又可以傳兩個引數

>>>int(『123』)

>>>int(『123』,8)

注意:int()函式的第二個引數蘇是轉換進製,如果不傳,預設是十進位制

知識點:由於函式的引數按從左到右的順序匹配。所以預設引數只能定義在必須函式的後面

定義可變引數

如果想讓乙個函式能接受任意個引數,我們可以定義乙個可變引數:

def fn(*args)

print agrs

可變引數的名字前面有個*號,我們可以傳入任意個引數給可變引數:

>>>fn()

>>>fn(『a』)

(『a』)

>>>fn(『a』,』b』,』c』)

(『a』,』b』,』c』)

可變引數也不是很神秘,python直譯器會把傳入的一組引數組裝正乙個

tuple

傳遞給可變引數,因此在函式內部,直接把變數

args

看成乙個

tuple

就好了

切片操作:

取乙個list的部分元素是非常常見的操作

>>>l=[『adma』,』lisa』,』bart』,』paul』]

>>>r=

>>>n=3

>>>for i in range(n)

>>>r

[『adma』,』lisa』,』bart』]

切片操作符

>>>l[0:3]         表示,從索引

0開始取,知道索引

3 為之,大怒包括3,即

0,1,

2,正好是三個元素

>>>l[:3]           如果第乙個索引是

0,還可以省略

>>>l[:]             只用乙個 : ,表示從頭到尾

切片操作還可以制定第三個引數

>>>l[::2]           第三個引數表示每

n個取乙個,

l[::2]

表示每兩個元素取出來乙個,即隔乙個取乙個

倒序切片:

記住倒數第乙個元素的索引是-1,倒序切片包含起始索引,不包含結束索引

python學習筆記4

在編寫語句縮排時,tab鍵和空格鍵不能混用 每行 長度不宜超過79,如需換行可新增換行符 或什麼都不加 賦值方式有基本賦值和序列賦值,變數名指將剩餘的物件賦值給該變數,稱為擴充套件序列解包賦值,但乙個表示式只允許出現乙個 多目標賦值可以分開賦值,也可以引用賦值 result 及格 if score ...

Python學習筆記4

dict 的操作方法 元組tuple dict是可變的 dict可以儲存任意數量的python物件 dict可以儲存任何python資料型別 dict以 key value,即 鍵 值 對的形式儲存資料,每個鍵是唯一的。dict也被稱為關聯陣列或雜湊表。方法1 建立乙個空的dict,這個空dict,...

python學習筆記4

2.字典元素的訪問 3.字典元素操作 4.序列解包 二 集合 字典是 鍵值對 的無序可變序列,鍵 是任意的不可變資料,整數 浮點數 字串 元組,且 鍵 不可重複。a b dict name wq age 18,job student a dict name wq age 18 k name age ...