You need to enable JavaScript to run this app. Python3.9.1中def与return如何实现无返回值 解决乘法表程序输出冗余问题
优惠活动
大模型
产品
解决方案
定价
更多

Python3.9.1中def与return如何实现无返回值 解决乘法表程序输出冗余问题

核心问题拆解

你观察到的末尾多余输出,本质来自两个独立的原因:

  • 函数的返回值逻辑:之前写return(n)会把用户输入的数字作为返回值传递给调用处;如果删成空return,Python会默认让函数返回None——这是Python的统一规则,所有没有显式返回非空值的函数,默认返回值都是None。
  • 调用端的冗余打印:你专门写了x1 = mul_table(x)把函数返回值存下来,又额外执行print(x1),等于不管函数返回的是数字还是None,都会被你强制打印到控制台上。你看到的末尾多余的5、后续会出现的None,全是这行print(x1)打出来的,不是函数运行时自动输出的。

另外你循环里写的i = i + 1属于完全冗余的代码:range(1,11)会自动在每轮循环给i赋下一个迭代值,手动给i自增不会改变循环的执行逻辑,还可能造成逻辑混淆,可以直接删掉。

实现无多余输出的修改方案

完全不需要修改Python的默认返回逻辑,只要调整代码的两个部分即可:

  • 函数内部:删掉冗余的自增代码,去掉带返回值的return(n)语句,保留打印乘法表的核心逻辑。此时函数会默认返回None,但只要不主动打印这个返回值,它不会出现在控制台输出上。
  • 调用端:去掉存储返回值的x1 = ...赋值、以及额外打印返回值的print(x1),直接调用函数即可。

修改后的完整可运行代码:

def mul_table(n):
    for i in range(1, 11):
        print(n, "x", i, "=", (n * i))
        
x = int(input("Enter the number: "))
mul_table(x)
效果说明

按上述代码修改后,在Python 3.9.1环境下运行,输入数字5时,控制台只会依次输出10行乘法表内容,末尾既不会额外打印用户输入的5,也不会出现None的输出。

补充说明:很多人会误以为只要函数返回None,运行时就会自动在控制台打印None——实际上这个行为只出现在Python交互式REPL环境中,写脚本正常运行时,只有被print显式输出的内容才会显示在控制台,未被打印的返回值不会产生任何输出。

内容的提问来源于stack exchange,提问作者Choco-Lava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.05 01:15:05