尝试在一行上打印多行字符串(字符串存储为变量)

问题描述 投票:0回答:5

我正在学习麻省理工学院的计算和编程入门课程,我正在尝试将多行字符串存储在一个变量中,我可以使用该变量让程序与用户交互。

我知道

"""
用于输入长行代码并用回车符插入换行符(我认为我的措辞有点准确)。

我遇到的是存储在我的代码中的字符串看起来很糟糕,使用三引号看起来更干净,但我仍然希望它在一行上打印出来。 我试图将它存储在一个变量中,如下所示:

inputRequest = """
Enter 'h' to indicate the guess is too high.
Enter 'l' to indicate the guess is too low.
Enter 'c' to indicate the guess is correct.
"""

我尝试在控制台中调用该变量,如下所示:

print(inputRequest, end=" ")

但它仍然打印在三个单独的行上。 有没有一种有效的方法可以让我的代码看起来不那么混乱? 当我需要调用特定输出以供用户交互时,将字符串存储在变量中似乎是减少输入的好方法,但我确信有更好的方法可以做到这一点。

python string string-formatting multiline heredoc
5个回答
10
投票

您可以在每行末尾放置反斜杠,以防止在字符串中打印换行符。

inputRequest = """\
    Enter 'h' to indicate the guess is too high. \
    Enter 'l' to indicate the guess is too low. \
    Enter 'c' to indicate the guess is correct. \
    """

print(inputRequest)

如果需要,您也可以使用单独的字符串来达到相同的目的。

inputRequest = \
    "Enter 'h' to indicate the guess is too high. " \
    "Enter 'l' to indicate the guess is too low. " \
    "Enter 'c' to indicate the guess is correct. " \

print(inputRequest)

3
投票

您的问题是字符串包含固有的 EOL 字符。

print
语句不会 add 任何换行符,但它们已经嵌入到您告诉它打印的内容中。 您需要替换那些,例如:

print(inputRequest.replace("\n", "  ")

结果:

Enter 'h' to indicate the guess is too high.  Enter 'l' to indicate the guess is too low.  Enter 'c' to indicate the guess is correct.

2
投票

这里到处都有答案。这是一个对您有用的实验。在 IDE 中输入以下行:

text = "This is string1. This is string2. This is string3"

现在通过在每个标点符号后按 Enter 手动格式化字符串,您将得到:

text = "This is string1." \
       "This is string2." \
       "This is string3."

上面是字符串连接,将以“干净”的方式提供您所寻找的内容。接受的答案并不完全是“干净”的,但因为:“争论语义”XD


0
投票

您可以创建多行单行字符串:

inputRequest = ("Enter 'h' to indicate the guess is too high. "
                "Enter 'l' to indicate the guess is too low. "
                "Enter 'c' to indicate the guess is correct.")

-1
投票

以下代码将帮助您实现您想要做的事情:

print("Enter 'h' to indicate the guess is too high.",
"Enter 'l' to indicate the guess is too low.",
"Enter 'c' to indicate the guess is correct.")

或者您也可以交替使用引号。以下代码的第一行说明了这一点:

print('Enter "h" to indicate the guess is too high.',
  "Enter 'l' to indicate the guess is too low.",
  "Enter 'c' to indicate the guess is correct.")

希望这就是您想要实现的目标,并且这对您有所帮助;) 干杯!

© www.soinside.com 2019 - 2024. All rights reserved.