python的函式是可以return多個值的,但其本質上還是返回單個值,只是利用了tuple的自動打包,將多個值打包成單個tuple返回。
使用**驗證:
deffunc_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)
(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...