我想从stdin打印每个字符串的长度。没有给出字符串的数量。请提出一些建议。我在想的是:
import sys
for line in sys.stdin:
s= str(line)
print len(s),
例如,输入为:
ram
sita
geeta
所需的输出为3 4 5
,但正在打印4 5 5
答案 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= " ")