打印出每三个字母的Python

时间:2014-10-13 07:18:36

标签: python python-3.x

我正在使用Grok Learning,它给你的任务是从一个句子中选择每个第三个字母(从第一个字母开始),并打印出它们之间有空格的字母。 ' 这是我的代码:

text = input("Message? ")
length = len(text)
for i in range (0, length, 3):
 decoded = text[i]
 print(decoded, end=" ")

虽然我说它不正确,但它说这是理想的结果:

Message? cxohawalkldflghemwnsegfaeap
c h a l l e n g e

我的输出是同样的期望,在我的输出中,我在最后一个' e'之后有一个空格。在挑战中。谁能想到解决这个问题的方法呢?

4 个答案:

答案 0 :(得分:2)

要在字符之间只有空格,您可以使用切片创建字符串"challenge",然后使用str.join添加空格:

" ".join(text[::3])

答案 1 :(得分:1)

这是Grok对您的问题的解释:“所以,这个问题是要您遍历字符串,并打印出每三个字母。最简单的方法是使用for和range,让range做所有繁重的事情繁重的工作!我们知道范围会创建一个数字列表,我们可以将这些数字用作邮件的索引!”

因此,如果要在函数中包含print,len,end,range,input,for和in之类的函数,则代码应与此类似:

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

或者这个:

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

或者也许是这样

code = input ('Message? ') [0::3]
msg = ""
for i in code: msg += " " + i
print (msg [1:])

所有这些都应该起作用,我希望这能回答您的问题。

答案 2 :(得分:0)

您应该再看一下this page关于构建字符串的注释,然后一次打印出来,在这种情况下可能使用rstrip()output[:-1]离开离开最右边的空间。

这是一个使用rstrip和切片以相同方式打印数字0到9的示例。

output = ""
for i in range(10):
  output = output + str(i) + ' '
print(output[:-1])
print(output.rstrip())

答案 3 :(得分:0)

如果您浏览了Grok课程,则有一页称为“并排逐步” (链接在https://groklearning.com/learn/intro-python-1/repeating-things/8/处),其中介绍了{{1} }函数。如果您写rstrip,它将去除字符串右边的空白。