我正在使用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'之后有一个空格。在挑战中。谁能想到解决这个问题的方法呢?
答案 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
,它将去除字符串右边的空白。