下面代码中的 if 语句有什么问题?

what is wrong with the if statement in the code below?

有人可以解释一下下面的代码有什么问题吗?

     def factorial(num):
        if num == 0 or 1:
           return 1
        else:
           result = num * factorial(num-1)
           return result

#print(factorial(30))
#output: 1

& 相反,当 if 语句稍微修改如下时。代码似乎做了它想做的事。如果有人可以评论为什么下面的代码提供了所需的输出而上面的代码没有

,我将不胜感激
     def factorial(num):
        if num == 1 or 0:
           return 1
        else:
           result = num * factorial(num-1)
           return result
 #print(factorial(30))
 #265252859812191058636308480000000

num == 0 or 1 并没有按照您的想法行事。

这可以改为 num == 0 or num == 1num in [0,1]