Python编程 - 初学者

时间:2016-03-06 05:37:26

标签: python

所以我必须创建一个代码,在其中读取每个第三个字母,并在每个字母之间创建一个空格,我的代码创建空格,但它在最后一个字母后面还有一个空格,这是我的代码:

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))应该给我输出我需要但是当我把它放入它只是给我一个错误。拜托,谢谢

2 个答案:

答案 0 :(得分:6)

在Python中,字符串是一种称为序列的数据结构。序列支持切片,这是一种简单而奇特的方式,可以处理“从第n个”,“到第n个”和“每个第n个”。语法为sequence[from_index:to_index:stride]。一个人甚至没有for循环来做那个.ago

我们可以通过省略from_indexto_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