python输出阶乘时输入浮点数报错

num = int(input('请输入一个整数:'))

def tool__num(num):
    try:
        if num == int(num):
         True

    except ValueError:
        print('请输入整数')
factorial = 1
if num < 0 :
    print('负数没有阶乘')
elif num == 0 :
    print('0 的阶乘等于1')
else:
    for x in range(1,num + 1) :
        factorial = factorial * x
    print('{0} 的阶乘为:{1}'.format(num ,factorial))

输入整数和0没有问题

请输入一个整数:1
1 的阶乘为:1
请输入一个整数:-9
负数没有阶乘
请输入一个整数:0
0 的阶乘等于1

但是输入浮点数还是报错

请输入一个整数:1.0
Traceback (most recent call last):
  File "E:/python_examples/factorial.py", line 2, in <module>
    num = int(input('请输入一个整数:'))
ValueError: invalid literal for int() with base 10: '1.0'

哪位大佬指点一下

num = int(input('请输入一个整数:'))因为你这定义的是int整型啊,肯定不能输入浮点型数据了

num = input('请输入一个整数:')

def tool__num(num):
    try:
        if type(int(num))==int:
            factorial = 1
            num = int(num)
            if num < 0:
                print('负数没有阶乘')
            elif num == 0:
                print('0 的阶乘等于1')
            else:
                for x in range(1, num + 1):
                    factorial = factorial * x
                print('{0} 的阶乘为:{1}'.format(num, factorial))

    except ValueError:
        print('请输入整数!')



tool__num(num)

 

while True:
    try:
        num = int(input("请输入一个整数: "))
        break
    except ValueError:
        print("请输入一个整数")

输入浮点数报错可以用这个代码规避