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):
最后的结果仍然是无
这是为什么? 我怎么阻止它?
答案 0 :(得分:4)
当您致电print(fun('abc'))
时,首先拨打fun
,1
确实打印2
,3
和fun
,None
完成后,你打印它的返回值。由于您没有显式返回任何内容,因此Python会隐式返回print
。
长话短说 - 不要在fun
致电fun
,只需致电string = 'abc'
fun(string) # Here
:
0, 1, 2
答案 1 :(得分:3)
fun
函数中的print语句从None
获取print(fun(string))
,而None
正在打印:
fun(string)
因为默认情况下python函数返回if (!query.length) return callback();
,这就是你在这里得到它的原因。您可以直接调用它而无需打印语句。
if (query.length < 3) return callback();
答案 2 :(得分:1)
这是因为你使用print(fun(string))并且在你的函数中有一个print语句。因此它执行函数内部的打印和另一个没有函数返回值的打印,因此无。