首页 > 解决方案 > 在数组中检查 Python 3 中的标准输入时遇到问题

问题描述

如果我这样做,它会xfalse往常一样返回。为什么会这样,你能告诉我吗?

import sys

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

标签: python-3.xstdinsys

解决方案


您需要使用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)

推荐阅读