Python 如何在不引发语法错误的情况下在列表中使用范围变量?

Python 如何在不引发语法错误的情况下在列表中使用范围变量?,python,list,range,Python,List,Range,程序立即关闭,不显示错误消息下面的代码行起作用 a = range(20,30) b = range(1000,5000) list1 = [["range a",a],["range b",b]] x = int(input()) for i in list1: if x in i: print("congratulations! input is in range"+i[0]) y = input() 看起来您的if语句正在检查包含列表的列表。如果i[1]中的x为,

程序立即关闭,不显示错误消息

下面的代码行起作用

a = range(20,30)
b = range(1000,5000)
list1 = [["range a",a],["range b",b]]
x = int(input())
for i in list1:
    if x in i:
        print("congratulations! input is in range"+i[0])
y = input()

看起来您的if语句正在检查包含列表的列表。如果i[1]中的x为,则将其更改为,这样就可以了。这是我的代码

     a = range(20,30)
     b = range(1000,5000)
     list1 = [a,b]
     x = int(input())
     for i in list1:
    if x in i:
         print("congratulasions! input is in range of ",i)
    y = input()
使用Python 3.7.0在空闲环境中对其进行了测试,下面是我的直接输出

a = range(20,30)
b = range(1000,5000)
list1 = [["range a", a],["range b", b]]
x = int(input())
for i in list1:
    if x in i[1]:
        print (i[0])

如果它仍然不适用于您,那么您的IDE可能有问题。

这可能是由于您在交互式解释器中键入代码的方式造成的,在最不相关级别的每一行都需要从自己的
>
行开始。如果您将此代码放入一个文件中,它运行良好(减去
x
是字符串的事实,因此它不会像您期望的那样在任何一个范围内)。它在我的机器上工作。。。。(Pyhton 3.5.3)。您在哪条语句中得到错误?如果i中的x,您希望通过
实现什么?是否要检查
x
是否在两个范围内?实际上
print(“恭喜!输入在”+i范围内)
给出错误
TypeError:无法隐式地将“range”对象转换为str
@DavidOrdman我将在python3中测试它,以确保正确。但它在python2.7中使用旧式打印语句时有效。@DavidOrdman如果我的答案有效,那么可能会将其标记为已回答。也发现此方法有效:列表1=[[i代表范围内的i(20,30)],[i代表范围内的i(10005000)]]
>>> a = range(20,30)
>>> b = range(1000,5000)
>>> list1 = [["range a", a],["range b", b]]
>>> x = int(input())
25
>>> for i in list1:
    if x in i[1]:
        print(i[0])

range a