python學習筆記

2021-07-30 11:40:31 字數 1636 閱讀 9812

根據不同的配置資訊得到不同的結果,即引用了自由變數的函式

下面我們來看兩個函式

1.

def

make_adder

(addend):

defadder

(augend):

return augend + addend

return adder

p = make_adder(23)

q = make_adder(44)

print p(100)

print q(100)

123

144

2.

def

make_adder

(addend):

defadder

(augend):

return -augend

return adder

p = make_adder(23)

q = make_adder(44)

print p(100)

print q(100)

#結果是

-100

-100

這明明不就是乙個函式麼?仔細看,其實不一樣,對於最裡面的函式乙個return addend+augend另乙個return -augend

很明顯我們得到乙個結論,p被賦予的值將傳入內部函式作為引用來使用

傳入函式時,有些時候,不需要顯式地定義函式,直接傳入匿名函式更方便

>>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])

[1, 4, 9, 16, 25, 36, 49, 64, 81]

關鍵字 lambda ,冒號前面的x表示引數

用匿名函式有個好處,因為函式沒有名字,不必擔心函式名衝突。此外,匿名函式也是乙個函式物件,也可以把匿名函式賦值給乙個變數,再利用變數來呼叫該函式

def

build

(x, y):

return

lambda: x * x + y * y

1.int()函式可以把字串轉化為整數,當傳入字串時,int ()函式預設按十進位制轉換:

>>>int('12345')

12345但int函式還提供額外的base引數,預設值為10.如果傳入base引數,就可以做n進製的轉換>>>int('12345',base=8)

5349八進位制轉換為十進位制,編寫轉換二進位制的函式

def

int2

(x,base=2):

return int(x,base)

這樣可以直接轉化二進位制;

2.functools.partial就是用來建立乙個偏函式的,不需要我們自己定義int2(),可以直接使用建立乙個新的函式int2:

import functools

int2=functools.partial(int ,base=2)

python教學筆記 python學習筆記(一)

1.eval 函式 eval是單詞evaluate的縮寫,就是 求.的值的意思。eval 函式的作用是把str轉換成list,dict,tuple.li 1 1,2,3 print eval li 1 di 1 print eval di 1 tu 1 2,4,6 print eval tu 1 執...

python學習筆記

coding utf 8 coding utf 8 應該像八股文一樣在每個指令碼的頭部宣告,這是個忠告 為了解決中文相容問題,同時你應該選擇支援 unicode 編碼的編輯器環境,保證在執行指令碼中的每個漢字都是使用 utf 8 編碼過的。cdays 5 exercise 3.py 求0 100之間...

Python 學習筆記

python 學習筆記 def run print running.def execute method method execute run result running.condition false test yes,is true if condition else no,is false ...