Как использовать переменную диапазона в списке, не вызывая SyntaxError? - PullRequest
0 голосов
/ 28 июня 2018
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()

Программа закрывается сразу без отображения сообщения об ошибке

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Похоже, ваш оператор if проверяет список, содержащий список. Измените его на if x in i[1]:, и все должно быть в порядке. Вот мой код, который работает.

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])

Протестировал его в IDLE с Python 3.7.0 и вот мой прямой вывод.

>>> 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

Если это все еще не работает для вас, возможно, у вас есть проблема в вашей IDE.

0 голосов
/ 28 июня 2018

Следующая строка кода работает.

     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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...