我试图使用for循环来循环一个字符串,但结果却是“None”输出弹出。如何摆脱“none”输出?谢谢你
def name(a): for b in a: print (b) print (name("hello123"))
输出:
h e l l o 1 2 3 None
q8l4jmvw1#
您的name函数没有显式返回任何内容,因此它的返回值是None,然后打印该值。在这种情况下,打印name的返回值根本没有意义。
name
None
def name(a): for b in a: print(b) name("hello123")
作为补充说明,这根本不需要循环。相反,我们可以将a扩展为print,并提供换行符作为分隔符。
a
print
>>> def name(a): ... print(*a, sep='\n') ... >>> name("hello123") h e l l o 1 2 3 >>>
这相当于写:
print('h', 'e', 'l', 'l', '0', '1', '2', '3', sep='\n')
ecr0jaav2#
由于print命令用于 name() 函数中的每个字符,因此不需要在最后的 print(name()) 调用中再次调用它。在您的代码中,name() 函数打印每个字母,然后最后的 print(name()) 函数也尝试打印某些内容。但是由于name()不返回任何值,所以它打印“None”修改后的代码应该可以完美地工作:
def name(a): for b in a: print (b) name("hello123")
顺便说一句,在这个替代版本中:
def name(a): for b in a: print (b) return "Done" print(name("hello123"))
它将**打印另一行“Done”,因为 name() 函数在完成时返回一个值,该值被传递给最终的 print() 函数。
uyhoqukh3#
答案很简单:
def name(a): for b in a: return(b) print(name("hello123"))
返回函数在迭代之后不会生成任何“None”。
3条答案
按热度按时间q8l4jmvw1#
您的
name
函数没有显式返回任何内容,因此它的返回值是None
,然后打印该值。在这种情况下,打印
name
的返回值根本没有意义。作为补充说明,这根本不需要循环。
相反,我们可以将
a
扩展为print
,并提供换行符作为分隔符。这相当于写:
ecr0jaav2#
由于print命令用于 name() 函数中的每个字符,因此不需要在最后的 print(name()) 调用中再次调用它。
在您的代码中,name() 函数打印每个字母,然后最后的 print(name()) 函数也尝试打印某些内容。但是由于name()不返回任何值,所以它打印“None”
修改后的代码应该可以完美地工作:
顺便说一句,在这个替代版本中:
它将**打印另一行“Done”,因为 name() 函数在完成时返回一个值,该值被传递给最终的 print() 函数。
uyhoqukh3#
答案很简单:
返回函数在迭代之后不会生成任何“None”。