python學習筆記(4)

來源:互聯網
上載者:User

標籤:python

函數定義和調用
函數就是最基本的一種代碼抽象的方式(python有許多內建函數)
調用:要調用一個函數,需要知道函數 的名稱和參數
比較函數cmp(x,y)就需要兩個參數,如果x<y,就返回-1,如果x==y,就返回0,如果x>y就返回1
資料類型轉換函式,不如int()函數可以把其他資料類型轉換為整數

>>int(‘123’)
123
>int(12.34)
12
例如:
>>str(123)
‘123’
>>str(12.3)
‘12.3’

編寫函數:
在python中,定義以惡函數要使用def語句,一次寫出函數名,括弧,括弧中的參數和冒號,然後在縮排塊中編寫函數體,函數的傳回值用return 語句返回
例如:定義一個求絕對值的my_abs函數
def my_abs(x):
if x>=0
return x
else
return -x
注意:如果沒有return語句,函數執行完畢也會返回結果,只是結構為none

函數返回多值

但其實這隻是一種假象,python函數返回的仍然是單一值,python的函數返回多值其實就是返回一個tuple

遞迴函式:如果一個函數在內部調用自己本身,這個函數就是遞迴函式
例如:計算階乘n!
def fact(n):
if n==1
Return n*fact(n-1)

>>fact(1)
1
>>fact(5)
120

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

定義預設參數
例如python內建的int()函數,其實就有兩個參數,既可以傳一個參數,又可以傳兩個參數

>>int(‘123’)
123
>>int(‘123’,8)
83
注意:int()函數的第二個參數蘇是轉換進位,如果不傳,預設是十進位(base=10)

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

定義可變參數
如果想讓一個函數能接受任意個參數,我們可以定義一個可變參數:
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.append(L[i])
...
>>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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.