Python while循环阶乘不使用中断

Python while循环阶乘不使用中断,python,python-3.x,Python,Python 3.x,我是一个初学者,几天前开始学习Python。 我正在写一个代码来研究并得到一个阶乘。我想写一个代码,在输入负数时终止程序(,不带break语句),但下面的代码已经好几个小时没有运行了。我希望你能帮助我! 这段代码可以工作,但我想要满足的条件不是使用break,而是在输入负数时退出程序 代码>> def factorial(n): if n == 1: return 1 return n * factorial(n - 1) while True: num

我是一个初学者,几天前开始学习Python。 我正在写一个代码来研究并得到一个阶乘。我想写一个代码,在输入负数时终止程序(,不带break语句),但下面的代码已经好几个小时没有运行了。我希望你能帮助我! 这段代码可以工作,但我想要满足的条件不是使用break,而是在输入负数时退出程序

代码>>

def factorial(n):
    if n == 1:
        return 1
    return n * factorial(n - 1)

while True:
    num = int(input("Enter a number: "))
    if num < 0:
        continue
    print(str(num) + "! =", factorial(num))
def阶乘(n):
如果n==1:
返回1
返回n*阶乘(n-1)
尽管如此:
num=int(输入(“输入一个数字:”)
如果num<0:
持续
打印(str(num)+“!=”,阶乘(num))
也许:

num = <any positive number>
while num >= 0:
    ...
num=
当num>=0时:
...

您还应该检查“0”是否得到了错误回溯(上次调用):文件“python”,第8行,文件“python”,第5行,阶乘文件“python”,第5行,阶乘文件“python”,第5行,阶乘[上一行重复992次]文件“python”,第3行,阶乘递归错误:在比较中超过了最大递归深度这是您的
factorial
函数的一个问题,可能在n=0时谢谢!顺便问一下,我可以让continue语句保持不变吗?@S.User您必须:否则它也会计算负数的阶乘