Python判断整数是否在指定区间的带for循环函数失效原因求解
带for循环的函数无法正常运行的原因
- 参数被覆盖,输入值失效
你定义的函数func(x)接收的输入参数x,在函数第一行就被你重新赋值为list(range(0,1000)),无论你调用时传入什么整数,都会被直接覆盖成0到999的整数列表,输入值完全没有参与后续判断逻辑。 - 循环提前终止,不会执行完整遍历
你写的for循环第一次迭代拿到的n是0,此时判断90 <= 0 <= 110不成立,直接触发else分支的return False,函数直接终止运行,永远不会遍历到90到110的区间,该函数无论怎么调用最终都只会返回False。 - 逻辑设计偏离需求,循环属于多余逻辑
你的需求是判断输入整数是否落在指定区间,根本不需要做循环遍历,直接对输入值做大小比较即可完成,你写的for循环属于完全没必要的冗余逻辑。就算修复前两个问题,这种实现的效率也远低于直接做数值比较的写法。
如果你硬要写出带for循环的可运行版本(仅作逻辑修正演示,实际生产完全不推荐),写法如下:
def func(x): for n in range(90, 111): if x == n: return True return False
内容的提问来源于stack exchange,提问作者Moe
相关产品推荐
相关产品推荐

