You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Python中判断"k != int"始终返回True?

问题解析:为什么k != int始终返回True?
  • int是Python里的类型对象,代表整数这个类型本身;而你传入的k是整数实例(比如调用时的3),属于int类型的具体值。实例和类型对象是完全不同的东西,直接用!=比较时,结果必然是True,不管k是不是整数。
  • 要检查变量是否为整数类型,必须用isinstance(k, int),这个函数专门用来判断一个对象是否属于某个类型(或其子类)的实例。

修改后的正确代码:

def falling(n, k):
    # 先检查k是否是整数类型,再判断是否超出范围
    if not isinstance(k, int) or k > n:
        return "error"
    elif k <= 0:
        return 1
    elif k > 0:
        return n * falling(n-1, k-1)


print(falling(5, 3))  # 输出60,符合5*4*3的计算结果

补充说明:你原来的判断逻辑里,k != int or k >n会因为前者永远为True,导致只要调用函数就直接返回"error",这也是测试falling(5,3)得不到正确结果的原因。

内容的提问来源于stack exchange,提问作者joker-Dmmm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 20:54:56