[英]Python For i in range(len(str)): last iteration prints None
def fun(str):
for i in range(len(str)):
print(i)
string = 'abc'
print(fun(string))
打印結果是
0
1
2
None
如果我改變
for i in range(len(str)-1):
最后的結果仍然是None
為什么是這樣? 我該如何阻止它?
當你調用print(fun('abc'))
你首先調用fun
,這的確打印1
, 2
和3
,一次fun
完成,打印其返回值。 由於您沒有明確返回任何內容,因此Python會為您隱式返回None
。
長話短說-不要將print
稱為fun
,只需調用fun
:
string = 'abc'
fun(string) # Here
您將從fun
函數的print語句中獲取0, 1, 2
而None
的打印方式為:
print(fun(string))
由於默認情況下python函數返回None
,這就是為什么要在這里獲取它。 您可以直接調用它,而無需打印語句。
fun(string)
這是因為您使用了print(fun(string)),並且函數中有一條print語句。 因此,它將在函數內部執行打印,並且在函數沒有返回值的情況下執行另一次打印,因此執行None。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.