You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

输入负整数时Python阶乘函数额外输出NONE问题求解

额外输出None的原因

Python 中所有函数如果没有显式编写 return 语句指定返回值,默认都会返回 None。
你的 fact 函数在入参为负整数的分支里,仅执行了 print 打印提示语句,没有设置返回值,因此输入负数时该函数会返回 None。
再加上你最后一行代码是直接打印 fact 函数的返回值:print(fact(输入值)),就会在函数内部打印完提示之后,额外把返回的 None 打印出来,也就是你看到的多余输出。

修复方案

下面给出两种常用的修复方式:

方案1:调整函数返回逻辑,删除函数内部的打印语句

负数分支直接返回提示字符串,统一由外层的 print 输出内容:

def fact(n):
    if n < 0:
        return 'Please Enter A Positive Integer '
    elif n == 0:
        return 1
    else:
        return n * fact(n-1)

print(fact(int(input('Please Enter The Integer That You Want To Find The Factorial Value'))))

方案2:拆分函数调用与结果打印

如果要保留函数内部的错误提示逻辑,就先执行函数拿到返回值,仅当返回值不为空时才打印计算结果:

def fact(n):
    if n < 0:
        print('Please Enter A Positive Integer ')
    elif n == 0:
        return 1
    else:
        return n * fact(n-1)

num = int(input('Please Enter The Integer That You Want To Find The Factorial Value'))
result = fact(num)
if result is not None:
    print(result)

注:原代码存在多处单词拼写错误,上述示例代码中已做修正

内容的提问来源于stack exchange,提问作者YOGE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 13:03:03