如何调试基于isinstance的条件?

2024-04-20 09:48:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经写了下面的函数。如果我传递一个整数或字符串,它将工作:如果我传递一个整数,程序将计算阶乘,如果我传递一个字符串,它将用isinstance检查类型并打印错误消息。你知道吗

但是,如果我传递一个浮点数或负数,程序将打印一个错误。。。在我的状态下。我说过,如果n小于0,那么就打印那个错误消息,但显然它不起作用,我也不知道为什么。你知道吗

def factorial(n):
 if not isinstance(n,int):
  print('Factorial is only defined for integers.')
  return(None)
 elif n<0:
  print('Factorial is not defined for negative integers.')
  return(None)
 elif n==0:
  return(1)
 else:
  return(n*factorial(n-1))

如何更改程序,使条件语句适用于浮点数和负数?我不想使用tryexcept。你知道吗


Tags: 字符串程序消息returnis错误not整数