我不知道我的编码出了什么问题,即使我输入整数而不是浮点数,它也一直跳到 else 语句


def factorial(n):
    if isinstance(n,int):
        if n == 1:
            return 1;
        elif n <= 0:
            print("Factorial is for positive integer.")
        else:
            return n*factorial(n-1)
    else:
        print("It's only for integers")
factorial_number = input("give an integer that you want to factor: ")
print(factorial(factorial_number))

您可以在获得输入后立即处理,请参见下面的示例:

if factorial_number.isdigit():
    factorial_number = int(factorial_number)
else:
    print("It's only for integers")

内置的input()总是返回str对象。您需要将其投放到int

factorial_number = int(input("give an integer that you want to factor: "))
print(factorial(factorial_number))

最新更新