Python for循环遍历字符串时输出多余None值如何解决
问题根源
Python中所有没有显式定义return返回值的函数,执行完成后默认会返回None。
你的代码里name()函数内部已经通过循环+print()完成了逐字符打印,但调用函数时额外在外层套了一层print(),这层外层打印语句会把函数默认返回的None输出,就出现了最后多余的那行内容。
修复方案
二选一即可:
- 去掉调用函数时外层包裹的
print(),直接执行函数调用:
def name(a): for b in a: print(b) # 直接调用,不要套print name("hello123")
运行后只会输出逐字符的结果,无多余None。
- 如果你需要保留外层
print()的写法,就把函数逻辑改成返回拼接好的目标内容,不要在函数内部直接逐行打印:
def name(a): # 用换行符拼接所有字符后返回 return '\n'.join(a) print(name("hello123"))
该写法运行效果和预期完全一致,也不会产生多余输出。
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

