【问题标题】:Having trouble checking stdin in Python 3 in array在数组中检查 Python 3 中的标准输入时遇到问题
【发布时间】:2019-09-24 18:04:58
【问题描述】:

如果我这样做,它总是以false 返回x。为什么会这样,你能告诉我吗?

import sys

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

【问题讨论】:

  • 遍历文件对象总是生成以换行符结尾的行,除非它是文件结尾之前的最后一行,并且最后一行不以换行符结尾。

标签: python-3.x stdin sys


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    将行改为:

    x = True if line.rstrip() in valid else False
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      • 2011-04-27
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多