python中函式的返回值和引數
阿新 • • 發佈:2019-01-10
1.返回值
return的作用:(1)作為函式的返回值 (2) 提前結束函式的呼叫 -->提高程式的效能
return後面可以是元組,列表、字典等,只要是能夠儲存多個數據的型別,就可以一次性返回多個數據
def function():
# return [1, 2, 3]
# return (1, 2, 3)
return {"num1": 1, "num2": 2, "num3": 3}
如果return後面有多個數據,那麼預設是元組
def divid(a, b): shang = a//b yushu = a%b return shang, yushu #預設是元組 result = divid(5, 2) print(result) # 輸出(2, 1)
2.引數
(1) 預設引數
在形參中預設有值的引數,稱之為預設引數
def my_print(name, age=18):
print("姓名:%s 年齡:%d" % (name, age))
呼叫函式時,預設引數的值如果沒有傳入,則取預設值
如果傳入了預設引數的值,那麼預設引數的預設值將被覆蓋
my_print("小剛")
# 輸出 姓名:小剛 年齡:18
my_print("小強", 30)
# 輸出 姓名:小強 年齡:30
注意:定義函式的時候,帶有預設值的引數一定要位於引數列表的最後面;如果某個函式是預設引數, 那麼後面的引數必須全為預設引數def my_print(name, age=18, no="001"): print("姓名:%s 年齡:%d" % (name, age)) def my_print(name,no, age=18): print("姓名:%s 年齡:%d" % (name, age))
(2)不定長引數
加了星號(*)的變數args會存放所有未命名的變數引數,args為元組
def my_func(*args):
print(type(args))
print(args[0])
print(args[1])
print(args[2])
print(args[3])
# 呼叫
my_func(10, 3.14, True, "hello", 5, 22)
加**的變數kwargs會存放命名引數,即形如key=value的引數, kwargs為字典.
def func(**kwargs): print(len(kwargs)) print(type(kwargs)) print(kwargs["name"]) print(kwargs["age"]) print(kwargs["no"]) func(name="小明", age=18, no="007")
如果很多個值都是不定長引數,那麼這種情況下,可以將預設引數放到 *args的後面, 但如果有**kwargs的話,**kwargs必須是最後的
def sum_nums_3(a, *args, b=22, c=33, **kwargs):
print(a)
print(b)
print(c)
print(args)
print(kwargs)
sum_nums_3(100, 200, 300, 400, 500, 600, 700, b=1, c=2, mm=800, nn=900)