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