Python函式返回不定數量的值

2022-07-12 02:30:12 字數 1256 閱讀 5100

python的函式是可以return多個值的,但其本質上還是返回單個值,只是利用了tuple的自動打包,將多個值打包成單個tuple返回。

使用**驗證:

def

func_a():

return 1, 2, 3, 4

if__name__ == '

__main__':

temp =func_a()

print(type(temp))

執行結果,確認返回的是乙個tuple,

'tuple

'>

稍微修改**:

def func_a(*args):

return 1, 2, 3, 4

if__name__ == '

__main__':

a, b, c, d =func_a()

print(a, b, c, d)

**中利用了tuple的自動解包,將tuple的值分別賦值給了a, b, c, d四個變數,實現返回多個值

既然知道實際上python返回多個值的本質是返回tuple,再自動解包賦值給n個變數,那要實現返回任意多個值,只要手動返回乙個tuple就可以了,tuple內元素的數量可以自定:

def func_a(*args):

return tuple(arg * 2 for arg in

args)

if__name__ == '

__main__':

a, b, c, d = func_a(1, 2, 3, 4)

print(a, b, c, d)

**中,將傳入的引數值 x 2後,轉換成tuple返回,再利用tuple的自動解包賦值給多個變數,從而實現函式返回不定數量的值。

這裡需要注意,當返單個值時,不需要再手動返回乙個tuple,所以修改**如下:

def func_a(*args):

temp = tuple(arg * 2 for arg in

args)

return temp if len(temp) > 1 else

temp[0]

if__name__ == '

__main__':

a, b, c, d = func_a(1, 2, 3, 4)

print

(a, b, c, d)

e = func_a('

hello')

print(e)

Python中的不定數量的函式引數

首先並不是必須寫成 args 和 kwargs。只有變數前面的 星號 才是必須的,不過更建議使用這兩個名字,可以讓別的程式設計師更容易理解。args是用來傳送乙個非鍵值對的可變數量的引數列表給乙個函式。def var args f arg,args print first arg f arg for...

Struts上傳不定數量 動態 檔案的問題

string dirpath getservlet getservletcontext getrealpath upload hashtable fileh actionform.getmultipartrequesthandler getfileelements 這裡fileh.size 總是等於...

如何讀取一行不定數量的輸入

做拼多多筆試的時候,它的輸入是要自己獲取的,其中可能每行的資料量並不等,有3個的,也有5個的 這裡涉及到乙個輸入緩衝區的問題,一次性鍵盤輸入的值都存在了輸入緩衝區,假設輸入是 1 3 5 7 9 回車 那麼用cin int去讀的話,想利用while cin int 讀完就可以,因為對於cin int...