Возникли проблемы при проверке стандартного ввода в Python 3 в массиве - PullRequest
0 голосов
/ 24 сентября 2019

Если я это сделаю, он всегда возвращает x как false.Почему это, не могли бы вы посоветовать мне?

import sys

for line in sys.stdin:
   valid = ["()", "[]", "{}"]
   x = True if line in valid else False

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Измените строку на:

x = True if line.rstrip() in valid else False
0 голосов
/ 24 сентября 2019

Вам необходимо использовать str.rstrip для удаления символа новой строки в конце каждой строки:

import sys

# since there's one invariant `valid` list, define it here, outside the loop
valid = ["()", "[]", "{}"]

for line in sys.stdin:
   x = line.rstrip() in valid   #   no need for if ... else
   print(x)
...