Python如何实现用户输入数字累加 现有代码输出None如何解决
问题原因
- 多余的
None是因为你定义的sumDigits函数没有显式设置返回值,Python中所有无主动return的函数默认返回None,你最后执行print(sumDigits(number))时,就会把函数返回的None打印出来,产生额外输出。 - 现有代码的累加逻辑存在错误:没有存储过往输入的数字,仅在输入0时计算了0+0,永远只能得到和为0的结果,不符合累加所有输入数字的需求。
正确实现代码
def sumDigits(): total = 0 while True: number = int(input("Please enter a number (enter 0 to exit):")) if number == 0: print("The sum is", total) return total total += number # 直接调用函数即可,函数内部已完成结果打印,无需额外套print sumDigits()
修改说明
- 移除了无意义的入参
number,在函数内部初始化累加变量total用于存储累加结果 - 每次输入非0数字时,将其值累加到
total中 - 输入0触发退出时,直接返回累加结果
total,避免默认返回None - 外层取消
print包裹函数调用的写法,避免输出多余内容,如果后续需要用到累加结果,可通过变量接收返回值:res = sumDigits()
内容的提问来源于stack exchange,提问作者alabasta
相关产品推荐
相关产品推荐

