1. 程式人生 > >python中函式的返回值和引數

python中函式的返回值和引數

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)