Grok Learning:Python 课程,倒序打印

3

在grok learning的Python课程中,有一个问题是:“编写一个程序,读入一行文本并将其倒序打印出来。”我写了以下代码:

word = input('Line: ')
for i in range(len(word)):
  i = (0 - 1 - i)
  print(word[i],end = "")

这个程序可以将输入的任何文本倒序输出,但是当我提交它时,它会显示“您的输出缺少尾随换行符”。这是否意味着答案不正确,因为任何新的打印语句都会在同一行上打印文本?

我复制粘贴了你的代码,它可以工作。 - idjaw
1
在你的打印语句末尾加上一个新行。它可能正在寻找脚本末尾的空行。 - idjaw
1
成功了!谢谢。 - Cian McGovern
4个回答

1
我会将单词的反转存储在另一个变量new_word中,然后在for循环之后打印出来。
word = input('Line: ')
new_word = ""

for i in range(len(word)):
    i = (0 - 1 - i)
    new_word += word[i]

  print(new_word)

1
对于像这样的玩具问题,你如何解决并不是很重要,但这种方法并不是一个好选择。每次你使用 += 添加下一个字母时,都会创建一个新字符串,因为字符串是不可变的,这会增加运行时间和内存使用量。通常的字符串创建惯用语是创建一个字符/子字符串列表,并在最后使用 ''.join() 连接列表。 - Randy
感谢您的输入! - Mark Skelton

1
必须的一行代码:
>>> "This is my string in reverse"[::-1]
'esrever ni gnirts ym si sihT'

包括输入提示:
>>> input('Line: ')[::-1]
Line: this is my stuff
'ffuts ym si siht'

0

有几种方法可以让Python倒着说话,它们都有效,我希望它们能对你有所帮助。

以下是Grok Learning自己推荐的一些解决方案:

  • 示例解决方案#1:
text = input('Line: ')
last_index = len(text) - 1
backwards_text = ''
for i in range(last_index, -1, -1):
    backwards_text = backwards_text + text[i]
print(backwards_text)
  • 示例解决方案#2:
line = input('Line: ')
for i in range(len(line)-1, -1, -1):
  print(line[i], end='')
print()

这两种方法都可以,它们在倒序打印上使用了不同的方式,但是它们都使用了一个for循环,我希望这两种方法对你有所帮助,并且希望你会觉得这个内容很有用。


-1
y = input("Line: ")

print(y[::-1])

运行得非常好


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接