【问题标题】:Python: Print string in reversePython:反向打印字符串
【发布时间】:2022-06-18 15:09:41
【问题描述】:

编写一个程序,将一行文本作为输入,并反向输出该行文本。程序重复,当用户输入“完成”、“完成”或“d”作为文本行时结束。

例如:如果输入是:

Hello there
Hey
done

那么输出是:

ereht olleH
yeH

我已经有了这样的代码。我不明白我做错了什么。请帮忙。

word = str(input())
the_no_word = ['Done', 'done', 'd']
while word == "Done" and word == "done" and word == "d":
    break
print(word[-1::-1])

【问题讨论】:

  • 您的代码只调用一次input 和print。循环什么也不做。重新考虑一下。你想重复什么?这就是循环内部的内容。
  • 想想这条线:while word == "Done" and word == "done" and word == "d":。如果word == "Done" 为真,那么其他两个条件将为假,因为"Done" != "done"。但是您的代码 and 指定所有 3 个条件必须同时为真。

标签: python python-3.x performance


【解决方案1】:

这可能对你有用:

word = ""
the_no_word = ['Done', 'done', 'd']
while word not in the_no_word:
    word = str(input())
    print(word[-1::-1])

您需要在每次循环后将用户输入到word,并检查the_no_word 列表中的单词是否不是。让我知道这是否是您想要的。

【讨论】:

  • 你的行顺序不正确,循环前应该有一个初始单词输入。
  • 还是不太对。它会在退出前打印enod。无论如何,真的不应该给家庭作业答案一个直接的答案。
【解决方案2】:

你可以这样做:

while (word := input()) not in ['Done', 'done', 'd']:
    print(word[::-1])

【讨论】:

    【解决方案3】:
    var1 = str(input())
    bad_word = ['done', 'd', 'Done']
    while var1 not in bad_word:
        print(var1[::-1])
        var1 = str(input())
    

    刚刚做题并使用了这个答案。

    【讨论】:

      【解决方案4】:

      string=input('输入一个字符串:') 词=字符串.split() 对于 x 的话: 打印(x[::-1],end=' ')

      string.split() 将返回给定输入中的单词列表,并且 之后,您可以使用 for 循环和字符串切片。

      【讨论】:

        猜你喜欢
        • 2013-12-17
        • 1970-01-01
        • 2013-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多