【问题标题】:Reversing string from user input, repeating until certain string is entered从用户输入反转字符串,重复直到输入某个字符串
【发布时间】:2019-06-30 21:59:59
【问题描述】:

我正在尝试编写一个程序,该程序打印取自用户输入的反向字符串,并重复直到输入“Quit”、“quit”或“q”。

例如:如果输入是:

Line One
Line Two
quit

那么输出是:

enO eniL 
owT eniL

目前,循环不会终止,也不会移动到输入的第二行。它继续打印第一行的反面。

s = input()
while s != "quit":
    print (s[::-1])

【问题讨论】:

  • 所以每隔一个单词就应该颠倒一下吗?
  • 每个单词都应该反转,直到输入字符串“Quit”,然后程序应该停止循环。
  • 那么你的输出根本没有任何意义
  • 您可以通过以下方式反转:''.join(reversed(s))

标签: python


【解决方案1】:

每次循环都需要输入一个新字符串。您的代码只输入一个字符串,然后退出或永远打印它的反向:

s = input()
while s not in {"quit", "Quit", "q"}:
    print (s[::-1])

你可以改成:

s = input()
while s != "quit":
    print (s[::-1])
    s = input()

这样每次通过都会得到一个新的字符串。

【讨论】:

  • 不符合预期的输出,这很奇怪
  • 预期输出每两个单词的顺序都会改变,您的回答如何反映这一点?
  • 这似乎可行,但是,如果 s != "quit"、"Quit" 或 "q" ,我将如何使其终止?我用逗号试过了,但那个语法不起作用。
  • 好的,我改成在输入包含“quit”、“Quit”或“q”的行时退出。
  • @chrispbacon 现在看看。 OP 在示例中有三行,但没有将其放在代码块中,因此它们作为一个出现。我将它缩进为一个代码块(不添加任何换行符),结果现在完美匹配。这只不过是一个简单的格式问题,现在这个问题非常有意义。
【解决方案2】:
s = input()

quit_txt = ['Quit', 'quit', 'QUIT', 'q']

while s not in quit_txt:
    print(s[::-1])
    s = input()

【讨论】:

  • 请在您的回答中描述问题是什么,以及这个 sn-p 将如何解决它,以帮助其他人理解这个答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-10
  • 1970-01-01
  • 2014-05-09
  • 2020-02-14
  • 1970-01-01
  • 1970-01-01
  • 2020-08-04
相关资源
最近更新 更多