Python學習 函式引數

2021-08-13 23:40:58 字數 1603 閱讀 1883

定義函式的時候,我們把引數的名字和位置確定下來,函式的介面定義就完成了。對於函式的呼叫者來說,只需要知道如何傳遞正確的引數,以及函式將返回什麼樣的值就夠了,函式內部的複雜邏輯被封裝起來,呼叫者無需了解。

#coding=utf-8

#除了正常定義的必選引數外,還可以使用預設引數、可變引數和關鍵字引數

#預設引數的定義方法:必選引數在前,預設引數在後,否則python的直譯器會報錯,預設引數必須指向不變物件!

def power(x, n=2):

s = 1

while n > 0:

s = s * x

n = n - 1

return s

#函式的引數改為可變引數:

#如果已經有乙個list或者tuple,要呼叫乙個可變引數怎麼辦?可以這樣做:

#>>> nums = [1, 2, 3]

#>>> calc(nums[0], nums[1], nums[2])

#14#這種寫法當然是可行的,問題是太繁瑣,所以python允許你在list或tuple前面加乙個*號,把list或tuple的元素變成可變引數傳進去:

#>>> nums = [1, 2, 3]

#>>> calc(*nums)

#14def getsum(*numbers):

sum = 0

for n in numbers:

sum = sum + n * n

return sum

#可變引數允許你傳入0個或任意個引數,這些可變引數在函式呼叫時自動組裝為乙個tuple。

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

#可變引數類似,也可以先組裝出乙個dict,然後,把該dict轉換為關鍵字引數傳進去:

def keyword(name, age, **kw):

print(name, age, kw)

if 'city' in kw:

# 有city引數

if kw['city'] != none:

print (kw['city'])

#命名關鍵字引數

#如果要限制關鍵字引數的名字,就可以用命名關鍵字引數,例如,只接收city和job作為關鍵字引數。這種方式定義的函式如下:

def person(name, age, *, city='beijing', job):

print(name, age, city, job)

if __name__ == '__main__':

# 呼叫預設引數, 效果等於power(5,2)

print (power(5))

# 呼叫可變引數

print (getsum(5, 5, 0))

# 關鍵字引數

keyword('zhangsan', 18)

keyword('zhangsan', 18, city='beijing', ***='male')

extra =

keyword('jack', 24, **extra)

person('jack', 24, job='itengenier')

python學習 函式引數

數學定義 python函式 函式的作用 函式的分類 def 函式名 引數列表 函式體 塊 return 返回值 上面的 解釋 函式在定義時要約定好形式引數,呼叫時也提供足夠的實際引數,所以形參和實參個數要一致 可變引數除外 傳參方式 1.位置傳參 定義時def f x,y,z 呼叫使用f 1,3,5...

python函式引數學習 python函式學習1

函式1 1 定義 def 函式名 引數列表 函式體 2 引數傳遞 在python中,一切都是物件,型別也屬於物件,變數是沒有型別的。a 1,2,3 a helloworld 以上 中,1,2,3 是list型別,helloworld 是string型別,而變數a是沒有型別的,它僅僅是乙個物件的引用 ...

Python函式學習 函式 引數

本篇是對 python3函式的學習與小結,用於複習鞏固使用,如有理解偏差的地方,還望各位大佬指正。函式的作用 函式的分類 小結 def 函式名 引數列表 函式體 塊 return 返回值 小結 函式名 str 函式定義,只是宣告了乙個函式,它不會被執行,需要呼叫 呼叫的方式,就是函式名後加上小括號,...