Python For i在范围内(len(str)):最后一次迭代打印无
打印结果为Python For i在范围内(len(str)):最后一次迭代打印无,python,string,for-loop,Python,String,For Loop,打印结果为 def fun(str): for i in range(len(str)): print(i) string = 'abc' print(fun(string)) 如果我改变 0 1 2 None 最后的结果仍然是零 为什么会这样? 当你调用print(fun('abc'))时,你首先调用fun,它确实会打印1、2和3,一旦fun完成,你就打印它的返回值。由于没有显式返回任何内容,Python隐式地为您返回None 长话短说-不要在fun上调用pri
def fun(str):
for i in range(len(str)):
print(i)
string = 'abc'
print(fun(string))
如果我改变
0
1
2
None
最后的结果仍然是零
为什么会这样?
当你调用print(fun('abc'))
时,你首先调用fun
,它确实会打印1
、2
和3
,一旦fun
完成,你就打印它的返回值。由于没有显式返回任何内容,Python隐式地为您返回None
长话短说-不要在fun
上调用print
,只要调用fun
:
for i in range(len(str)-1):
当你调用print(fun('abc'))
时,你首先调用fun
,它确实会打印1
、2
和3
,一旦fun
完成,你就打印它的返回值。由于没有显式返回任何内容,Python隐式地为您返回None
长话短说-不要在fun
上调用print
,只要调用fun
:
for i in range(len(str)-1):
您从
fun
函数中的print语句中获得0,1,2
,而None
通过以下方式获得打印:
string = 'abc'
fun(string) # Here
因为,在默认情况下,python函数返回None
,这就是为什么在这里得到它。您可以直接调用它,而无需打印语句
print(fun(string))
您从
fun
函数中的print语句中获得0,1,2
,而None
通过以下方式获得打印:
string = 'abc'
fun(string) # Here
因为,在默认情况下,python函数返回None
,这就是为什么在这里得到它。您可以直接调用它,而无需打印语句
print(fun(string))
这是因为您使用print(fun(string))并且在函数中有一个print语句。因此,它在函数中执行print,在函数中执行另一个没有返回值的print,因此为None。这是因为您使用print(fun(string))并且函数中有一个print语句。因此,它在您的函数中执行打印,并在没有函数返回值的情况下执行另一个打印,因此无。ahh我明白了。我用print在ctci中调试一个算法,它一直让我不高兴。谢谢你啊,我明白了。我正在用print调试ctci中的一个算法,它一直让我很不高兴。谢谢