2016-02-27 72 views
0

此代码的目标是取出一串字母并打印出用户后的第一个字母和后面的第三个字母。在保留所有空间在中间的同时,在输出结束时删除空白的最简单方法是什么?从字符串末尾删除空格,同时在每个字母的中间保留空格

msg = input('Message? ') 
for i in range(0, len(msg), 3): 
    print(msg[i], end = ' ') 
+1

[我如何从pyth中的字符串末尾删除空格在?](http://stackoverflow.com/questions/2372573/how-do-i-remove-whitespace-from-the-end-of-a-string-in-python) – DavidW

回答

2

str_object.rstrip()将返回str_object副本没有尾随空白。只要做到

msg = input('Message? ').rstrip() 

对于它的价值,你可以通过字符串替换切片你的循环:

print(*msg[::3], sep=' ') 
0

怎么样?

msg = input('Message? ') 
output = ' '.join(msg[::3]).rstrip() 
print(output) 
+0

我想保留一个空格所有的字母虽然。只删除最后一个字母后的空格 –

+0

@CianMcGovern编辑,看一看 –

0

可以使用至少2种方法:

1)切片方法:

print(" ".join(msg[0::3])) 

2)名单理解(更易读/强大):

print(" ".join([letter for i,letter in enumerate(msg) if i%3==0]) 
0
n = ' hello ' 
n.rstrip() 
' hello' 
n.lstrip() 
'hello ' 
n.strip() 
'hello' 
相关问题