參數解包 | Python從入門到精通:高階篇之六
返回值
def sum(*nums):
# 定義一個變量,來保存結果
result = 0
# 遍歷元組,並將元組中的數進行累加
for n in nums :
result += n
print(result)
sum(123,456,789)
執行結果:
此時我們有一個問題,函數計算出來的結果直接輸出了,我們無法利用這個結果進行其他操作,這是不好的,我們希望這個結果是直接返回的。此時我們就需要用到返回值。
返回值,就是函數執行以後返回的結果。可以通過 return 來指定函數的返回值,可以直接使用函數的返回值,也可以通過一個變量來接收函數的返回值。
def fn():
# return 100
# return 'Hello'
# return [1,2,3]
# return {'k':'v'}
def fn2() :
print('hello')
return fn2 # 返回值也可以是一個函數
r =fn() # 此時這個函數的執行結果就是它的返回值
r()
#print(fn())
#print(r)
執行結果:
return 後邊跟什麼值,函數就會返回什麼值,return 後邊可以跟任意的對象,返回值甚至可以是一個函數。
此時會有一個疑問,直接return則會返回什麼呢?
def fn2() :
#return
a = 10
r = fn2()
print(r)
執行結果:
此時可知,如果僅僅寫一個return 或者 不寫return,則相當於return None。
def fn3():
print('hello')
# return
print('abc')
r = fn3()
#print(r)
執行結果:
在函數中,return後的代碼都不會執行,return 一旦執行函數自動結束。
我們發現跟break有點類似,我們接著進行分析。
def fn4() :
for i in range(5):
if i == 3 :
break # 用來退出當前循環
print(i)
print('循環執行完畢!')
fn4()
執行結果:
剛進行循環不跳出時
break跳出
如果改為continue呢?
continue # 用來跳過當次循環
執行結果:
那麼return呢?
return # return 用來結束函數
執行結果:
我們需要對這三個有準確的把握。
此時,我們可以對求和函數進行改造。
def sum(*nums):
# 定義一個變量,來保存結果
result = 0
# 遍歷元組,並將元組中的數進行累加
for n in nums :
result += n
return result
r = sum(123,456,789)
# print(r)
print(r + 778)
執行結果:
此時的結果,我們可以進行再次計算或者直接輸出。
def fn5():
return 10
print(fn5)
print(fn5())
執行結果:
fn5 和 fn5()的區別
print(fn5) 是fn5是函數對象,打印fn5實際是在打印函數對象
print(fn5()) 是fn5()是在調用函數,打印fn5()實際上是在打印fn5()函數的返回值 10。
函數的存在一定是為了實現某種功能,利用函數來保存代碼。
配套視頻課程,點擊這裡查看
獲取更多資源請訂閱Python學習站