所以我必须创建一个代码,在其中读取每个第三个字母,并在每个字母之间创建一个空格,我的代码创建空格,但它在最后一个字母后面还有一个空格,这是我的代码:
msg = input("Message? ")
length = len(msg)
for i in range (0, length, 3):
x = msg[i]
print(x, end=" ")
我的输出是:
消息?
我输入:
cxohawalkldflghemwnsegfaeap
我回来了
c h a l l e n g e
当输出不是意味着最后一个" "在e。
之后我已经阅读了添加print(" ".join(x))
应该给我输出我需要但是当我把它放入它只是给我一个错误。拜托,谢谢
答案 0 :(得分:6)
在Python中,字符串是一种称为序列的数据结构。序列支持切片,这是一种简单而奇特的方式,可以处理“从第n个”,“到第n个”和“每个第n个”。语法为sequence[from_index:to_index:stride]
。一个人甚至没有for
循环来做那个.ago
我们可以通过省略from_index
和to_index
轻松获得每个第3个字符,并且可以大步前进3:
>>> msg = input("Message? ")
cxohawalkldflghemwnsegfaeap
>>> every_3th = msg[::3]
>>> every_3th
'challenge'
现在,我们只需要在每个字母后插入空格。 separator.join(iterable)
会将iterable
中的元素按顺序连接在一起,其中包含separator
。字符串是可迭代的,其元素是单个字符。
因此我们可以做到:
>>> answer = ' '.join(every_3th)
>>> answer
'c h a l l e n g e'
对于最终的代码,我们可以省略中间变量,并且仍然具有非常易读的双线性:
>>> msg = input('Message? ')
>>> print(' '.join(msg[::3]))
答案 1 :(得分:1)
尝试
split