python菜鳥日記 00 從入門指南開始

2021-09-30 11:33:13 字數 2415 閱讀 7642

對於鍊錶來講,有三個內建函式非常有用: filter()

, map()

, 和 reduce()

。filter(function,

sequence)

返回乙個sequence(序列),包括了給定序列中所有呼叫 function(item)

後返回值為true的元素。(如果可能的話,會返回相同的型別)。如果該 序列 (sequence) 是乙個 string

(字串)或者tuple

(元組),返回值必定是同一型別,否則,它總是 list

。例如,以下程式可以計算部分素數

>>> 

deff(x

):returnx%

2!=0andx%

3!=0...

>>>

filter(f

,range(2

,25))[5, 7, 11, 13, 17, 19, 23]

map(function,

sequence)

為每乙個元素依次呼叫 function(item)

並將返回值組成乙個鍊錶返回。例如,以下程式計算立方

>>> 

defcube(x

):returnx*

x*x...

>>>

map(

cube

,range(1

,11))[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

可以傳入多個序列,函式也必須要有對應數量的引數,執行時會依次用各序列上對應的元素來呼叫函式(如果某些序列比其它的短,就用 none

來代替)。如果把 none

做為乙個函式傳入,則直接返回引數做為替代。例如

>>> 

seq=

range(8

)>>>

defadd(x

,y):returnx+

y...

>>>

map(

add,

seq,

seq)

[0, 2, 4, 6, 8, 10, 12, 14]

reduce(func,

sequence)

返回乙個單值,它是這樣構造的:首先以序列的前兩個元素呼叫函式 function ,再以返回值和第三個引數呼叫,依次執行下去。例如,以下程式計算 1 到 10 的整數之和

>>> 

defadd(x

,y):returnx+

y...

>>>

reduce

(add

,range(1

,11))55

如果序列中只有乙個元素,就返回它,如果序列是空的,就丟擲乙個異常。

可以傳入第三個引數做為初始值。如果序列是空的,就返回初始值,否則函式會先接收初始值和序列的第乙個元素,然後是返回值和下乙個元素,依此類推。例如

>>> 

defsum

(seq

):...

defadd(x

,y):returnx+

y...

return

reduce

(add

,seq,0

)...

>>>

sum(

range(1

,11))55

>>>

sum()

0

不要像示例中這樣定義 sum()

:因為合計數值是乙個通用的需求,早已有內建的 sum(sequence)

函式,非常好用。

new in version 2.3.

有個方法可以從列表中按給定的索引而不是值來刪除乙個子項: del

語句。它不同於有返回值的 pop()

方法。語句 del

還可以從列表中刪除切片或清空整個列表(我們以前介紹過乙個方法是將空列表賦值給列表的切片)。例如

>>> a=

[-1,

1,66.25

,333

,333

,1234.5

]>>>

dela[0

]>>>

a[1, 66.25, 333, 333, 1234.5]

>>>

dela[2

:4]>>>

a[1, 66.25, 1234.5]

>>>

dela

[:]>>>

a

del也可以刪除整個變數

>>> 

dela

此後再引用命名 a

會引發錯誤(直到另乙個值賦給它為止)。我們在後面的內容中可以看到 del

的其它用法。

c 入門 菜鳥學習日記

c 包含了整個c,c是建立c 的基礎。c 包括c的全部特徵 屬性和優點,同時新增了物件導向程式設計 oop 的完全支援。c 語言包括過程性語言部分和類部分。過程性語言部分與c並無本質的差別,類部分是c中所沒有的,它是物件導向程式設計的主體。物件導向程式設計的本質是把資料和處理資料的過程當成乙個整體 ...

python菜鳥日記5

1.在python中我們可以匯入模組,來呼叫模組裡面的函式,在乙個模組中,我們可以定義很多的函式和變數,但有些函式我們並不希望被別人使用,只希望在模組內部使用,那麼,我們可以通過 下劃線 字首來實現,比如 abc,qiuhe,但是python並沒有強制限制訪問函式或變數,只是一種程式設計的習慣而已 ...

python菜鳥日記6

在函式呼叫的過程中,假設函式裡面有迴圈巢狀的函式,那麼在裡面的函式遇到異常的時候,就終止函式,後面的語句將不會執行,而try後面的語句也將會中止執行,轉而except。異常其實也是乙個類,是乙個物件 此外,如果沒有錯誤發生,可以在except語句塊後面加乙個else,當有錯誤發生時,會自動執行els...