我很簡單的python函數返回「無」在它的結束,我不知道爲什麼相當。我看了一些其他帖子,仍然無法弄清楚。 任何幫助表示讚賞。Python函數返回無
這裏是我的代碼:
def printmult(n):
i = 1
while i <= 10:
print (n * i, end = ' ')
i += 1
print(printmult(30))
我很簡單的python函數返回「無」在它的結束,我不知道爲什麼相當。我看了一些其他帖子,仍然無法弄清楚。 任何幫助表示讚賞。Python函數返回無
這裏是我的代碼:
def printmult(n):
i = 1
while i <= 10:
print (n * i, end = ' ')
i += 1
print(printmult(30))
你是不是在功能printmult
返回任何東西,因此,當您打印結果printmult(30)
這將是None
(這是默認值時傳回的功能不會顯式返回任何東西)。
因爲你的方法有print
聲明內,它不應該返回的東西(通常當一個方法名是一樣的東西printSomething()
,它不返回任何東西),你應該叫它爲:
printmult(30)
不
print(printmult(30))
因爲在Python中,每一個函數返回一個值,而None
是,如果你不明確指定別的什麼返回。
你究竟做了什麼預計print(printmult(30))
要做什麼?你已經要求它評估printmult(30)
,然後print
無論結果如何。 東西必須由它產生,對吧?或者你是否期待某種異常會被提出?
請確定您知道打印和退貨不是同一件東西。
其他答案在指出錯誤的位置方面做得很好,即您需要了解打印和返回不一樣。如果你希望你的函數返回一個值,然後可以在可變印刷或商店,你想是這樣的:
def returnmult(n):
i = 1
result_string = ''
while i <= 10:
result_string += str(n * i) + ' '
i += 1
return result_string
print(returnmult(30))
我從紅寶石之際,以及和它起初似乎很奇怪。
如果你print
東西有一個print
聲明,它返回的最後一件事是None
。
如果你只是返回的值,然後調用print
上的函數它不會輸出None
。
希望這會有所幫助:)
因爲你不會返回任何東西。 – BrenBarn
讓我猜猜,你是一個Ruby程序員,你已經習慣了在方法返回的最後一條語句(不使用'return'關鍵字);) – alfasin
作爲BrenBarn說,你不返回任何值,所以函數返回'None',爲了解決你的代碼問題,你需要用'printmult(30)'替換最後一行。 – 2014-01-31 03:37:19