在python

时间:2015-10-11 13:47:16

标签: python string input line stdin

我想从stdin打印每个字符串的长度。没有给出字符串的数量。请提出一些建议。我在想的是:

import sys
for line in sys.stdin:
    s= str(line)
    print len(s), 

例如,输入为:

ram
sita
geeta

所需的输出为3 4 5,但正在打印4 5 5

2 个答案:

答案 0 :(得分:2)

因为

ram
sita
geeta

实际上是......

ram\n
sita\n
geeta

和...

>>> len('\n')
1
>>> len('ram\n')
4
>>> 

所以你需要......

import sys
for line in sys.stdin:
    s = str(line.strip())
    print len(s), 

演示:

[user@localhost ~]$ python2 test.py 
ram
sita
geeta
3 4 5
[user@localhost ~]$ 

关于什么是str.strip()

  

<强>条(...)

     

S.strip([chars]) - &gt; STR

     

返回带有前导和尾随的字符串S的副本      删除了空格。      如果给出了字符而不是None,请删除字符中的字符。

答案 1 :(得分:0)

您可以str.rstrip对输入删除任何换行符并使用带有print的end=" "来获取由空格分隔的同一行的输出

from __future__ import print_function
import sys

print(*(len(line.rstrip()) for line in  sys.stdin),end= " ")