线条python的长度从stdin读取

时间:2017-10-27 11:39:11

标签: python python-3.x

我有一个问题,为什么这个代码。为什么字符串长度与我的输入不匹配?

input: a 
output: 2

from sys import stdin
for line in stdin:
  print(len(line))

2 个答案:

答案 0 :(得分:2)

像任何类似文件的迭代器一样,stdin在迭代时产生带换行符/换行符的行。这说明你在计算时会得到额外的字符。

您可以使用rstrip("\n")使计数正确(删除右手换行符):

from sys import stdin
for line in stdin:
  print(len(line.rstrip("\n")))

(请注意,对结果减1也有效)

答案 1 :(得分:1)

我猜它还包含你的换行符'\ n'

试试这段代码:

from sys import stdin
for line in stdin:
    for x in line:
        print(x)