python學習筆記四 函式

2021-08-28 13:18:24 字數 1617 閱讀 8253

型別轉換函式

python 可以使用int(),str(),float(),bool()等函式將其引數轉換為對應的資料型別;

定義函式

在python 中定義乙個函式需要用到def語句,注意寫完函式名之後的冒號不能忘記:

def my_abs(x):

if x >= 0:

return x

else:

return -x

如上,定義了乙個絕對值函式。

可以將該絕對值函式儲存在乙個.py檔案中,在需要使用該函式時,使用import語句。

ps: python所定義的函式可以返回多個值,如下;

import math

def move(x,y,step,angle=0):

x = x+step*math.cos(angle)

y = y+step*math.sin(angle)

return(x,y)

然後呼叫該函式:

//在python 命令列中輸入

x , y= move(100,100,60,math.pi/6)

print(x,y)

如果將上述**中x,y都用乙個變數取代,然後列印出來,仍然可以得到乙個(x,y)的陣列。其實函式的返回值並不是兩個值,而是乙個tuple.

預設引數

需要注意的是在定義乙個函式的預設引數時,必須初始化乙個常量。定義成變數,在呼叫後會被重新賦值。ps: 不要將其初始化為list

可變引數

定義時在引數前加*即可定義可變引數,可變引數允許你傳入0個或任意個引數,這些可變引數在函式呼叫時自動組裝為乙個tuple

def  changenum(*number):

sum = 0

for x in numbres:

sum += x

return sum

關鍵字引數

關鍵字引數允許你傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個dict

在定義函式時關鍵字引數被表示為**x,在向其中傳值時,直接使用key=value的形式傳值。示例如下;

def print_info(name,age,**extra):

print('name: %s age: %s' %(name,age))

for city,lab in extra.items():

print('city: %s' %city)

print('lab:%s' %lab)

print()

print_info('dang','11',city='tianjin',lab = 'tank')

執行結果如下:![執行結果1](
命名關鍵字引數

命名關鍵字的提出,主要是因為函式呼叫者可以向函式中傳入任意命名的引數,這樣,在函式內部判斷時,就造成了非常不便的後果。在被調函式中可能需要先判斷是否有某個名字的引數傳入。

def printinfo(name ,age, *,city, job)
在需要命名的引數將* 作為特殊引數傳入

Python學習筆記四 函式

匿名函式 定義函式使用 def 關鍵字 def 函式名 引數列表 函式體return 表示式 不可變型別 類似值傳遞,如 整數 字串 元組。如fun a 傳遞的只是a的值,沒有影響a物件本身。比如在fun a 內部修改a的值,只是修改另乙個複製的物件,不會影響a本身。可變型別 類似引用傳遞,如 列表...

python學習筆記(四) 函式式程式設計

1 高階函式 高階函式 higher order function 1 變數可以指向函式 函式本身也可以賦值給變數。2 函式名也是變數 指向函式的變數。3 傳入函式 變數能夠指向函式,函式的引數能接收變數,乙個函式就可以接收另乙個函式作為引數。接收兩個引數 函式,iterable map 將傳入的函...

四 Python函式式程式設計 學習筆記

1 map reduce函式 map 函式,iterable 把傳入的函式依次作用在序列的每個元素上,並將結果作為乙個新的iterable返回。例子 使用者輸入的英文名字,首字母大寫,其他小寫 coding utf 8 def normalize name return name 0 upper n...