到底如何摆脱空白?

时间:2020-05-12 01:26:04

标签: python-3.x

我只是python的初学者,有人问我要解决一个问题,即您的程序必须解码一个代码,该代码中需要每个第3个字母并将它们与每个字母之间的间隔放在一起,对不起一个不好的解释,但看看我的代码:

    m=input("Message? ")
    for c in m[::3]:
      print(c,end=' ')

问题是最后一个字母后面有一个空格,我不知道该如何摆脱它,我尝试过.rstrip,但这不起作用。我还尝试过[::-1]在end =''之后,但这不起作用。

3 个答案:

答案 0 :(得分:2)

您可以在列表理解而不是循环上使用<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <div> <i class="material-icons">forward</i> <label for="c"> <input type="checkbox" id="c"> <span>1 year warranty</span> </label> </div>

str.join

这将在每个字母之间留一个空格,不包括结尾。

答案 1 :(得分:2)

我不确定问题到底出在哪里,但我假设您的意思是说,在您上一次打印时,您不希望使用end =''空格。要生成所需的字符串,您可以按照lltt的说明在空白处加入切片,减去多余的列表理解。

m = "123456789"
print(" ".join(m[::3]))

输出:

"1 4 7"

如果您确实要维护for loop打印功能,则需要一种方法来确定您是否处于最后一个循环中。这是一个普遍问题,具有多种解决方案,例如超前功能。但是您可以简单地将for循环分为两部分。

m="123456789"
for c in m[::3][:-1]:
    print(c,end=' ')
print(m[::3][-1], end='')

输出:

1 4 7

当然,您不需要在上一次打印中使用end=''print(m[::3][-1])很好。只是为了提高可读性。

如果您要说解码后的消息不能以空格作为最后一个字符,则可以使用.rstrip()。例如,当输入的最后一个,第三个字符为空格时。

m = "input with trailing whitespace "
print(" ".join(m[::3]))

输出:

"i u w h r l g h e a  "

在这里您可以链接rstrip()方法。

m = "input with trailing whitespace "
print(" ".join(m[::3]).rstrip())

输出:

"i u w h r l g h e a"

答案 2 :(得分:0)

在处理字符串时,应避免使用效率低下且通常不正确的手工解决方案。使用字符串方法.join()将字母与空格连接起来:

m = "Hello, world!"
print(" ".join(m[::3]))
#'H l w l'
相关问题