函式定義和呼叫
函式就是最基本的一種**抽象的方式(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 ...