如何消除Python函数输出末尾的None?原因及解决方法
搞定末尾的None:问题原因与解决方法
为什么会冒出个None?
- 你的
multiples函数里只有循环打印的逻辑,没写return语句。在Python里,任何没明确返回值的函数,默认都会返回None。 - 你最后写的是
print(multiples(7)):这行代码会先调用multiples(7),函数内部打印所有7的倍数;然后print()会把multiples(7)的返回值(也就是那个默认的None)也打印出来,所以末尾就多了个讨厌的None。
两种简单的解决办法
办法1:直接调用函数,别用print包着
把最后一行的print(multiples(7))改成:
multiples(7)
这样函数内部会自己打印所有符合条件的数,不会额外输出返回值None。
办法2:让函数返回结果列表(更推荐的写法)
换个思路,让函数先把所有7的倍数收集起来,再返回这个列表,最后打印列表就行。这样后续你还能对这些数做其他操作,比直接打印更灵活:
def multiples(x): result_list = [] for n in range(100): current_num = n * x if current_num <= 100: result_list.append(current_num) return result_list print(multiples(7))
另外,原代码里用n = n*x覆盖了循环变量n,改成current_num = n*x会更清晰,避免变量混淆哦~
内容的提问来源于stack exchange,提问作者Ayub Metah
相关产品推荐
相关产品推荐

