输入负整数时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
相关产品推荐
相关产品推荐

