我不知道我的编码有什么问题,它一直跳到 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))


POPMUISE
浏览 164回答 2
2回答

慕的地8271018

您可以在获得输入后立即处理,请参见以下示例:if factorial_number.isdigit():&nbsp; &nbsp; factorial_number = int(factorial_number)else:&nbsp; &nbsp; 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))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python