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

Python range结合if-else语句判断结果异常问题排查

问题根因

你的判断逻辑写错了:if Y in (X, X+200) 这行代码的实际作用是判断Y是否恰好等于X,或者恰好等于X+200,根本不是判断Y落在X到X+200的区间内。
Python里in关键字跟在元组/列表后面做的是精确成员匹配,你写的(X, X+200)是个只有两个元素的元组。你测试时输入的X=45、Y=200,这个元组就是(45, 245),200既不等于45也不等于245,所以判断条件返回False,最终输出no。
补充:如果你运行时第一行直接输入45 200,T = int(input("i"))这行本来应该报错(带空格的字符串无法直接转成整数),你能得到输出说明实际运行时第一行输入的是测试组数(比如1),第二行才输入的45 200。

修正方案

如果你的需求是判断Y处于[X, X+200]的闭区间内,直接用Python支持的链式比较写判断条件即可,写法简洁且对整数、浮点数都生效:

T = int(input("i"))
for _ in range(T):
    X,Y = map(int, input().split())
    if X <= Y <= X + 200:
        print("yes")
    else:
        print("no")

如果你坚持要用in关键字实现判断,需要搭配range()生成整数区间序列,注意range是左闭右开区间,要把右边界设为X+201才能包含端点X+200,该写法仅适用于X、Y均为整数的场景:

if Y in range(X, X + 201):

内容的提问来源于stack exchange,提问作者nikhil0505

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:54:21