2

我正在尝试创建一个程序,该程序分配任何人响应特定提示的类型,它占用两行以上,我担心它无法识别字符串,因为它位于不同的行上。它不断弹出“不正确的语法”错误,并一直指向下面的行。有什么办法可以解决这个问题吗?

given = raw_input("Is " + str(ans) + " your number?
Enter 'h' to indicate the guess is too high.
Enter 'l' to indicate the guess is too low.
Enter 'c' to indicate that I guessed correctly")
4

4 回答 4

6

您需要使用多行字符串或括号来将字符串包装在 Python 源代码中。由于您的字符串已经在括号内,我会使用这个事实。如果字符串在括号中彼此相邻,解释器将自动将它们连接在一起,因此您可以像这样重写代码:

given = raw_input("Is " + str(ans) + " your number?"
                  "Enter 'h' to indicate the guess is too high. "
                  "Enter 'l'to indicate the guess is too low. "
                  "Enter 'b' to indicate that I guessed correctly")

这被视为+每个字符串之间都有一个。你也可以写自己的优点,但这不是必需的。

正如我在上面提到的,您也可以使用三引号字符串('''""")来做到这一点。但这(在我看来)基本上让你的代码看起来很糟糕,因为它强加了缩进和换行——我更喜欢坚持使用括号。

于 2013-06-21T22:17:03.263 回答
1

我会使用多行字符串,但您也有以下选项:

>>> print "Hello world, how are you? \
... Foo bar!"
Hello world, how are you? Foo bar!

反斜杠告诉解释器将下一行视为前一行的延续。如果您关心代码块的外观,可以附加+

>>> print "Hello world, how are you? " + \
...       "Foo bar!"
Hello world, how are you? Foo bar!

编辑:正如@moooeeeep 所说,这会在语句末尾转义换行符。如果你之后有任何空格,它会搞砸一切。所以,我把这个答案留作参考——我不知道它会这样工作。

于 2013-06-21T22:36:07.983 回答
0

只需使用多行字符串。这样字符串文字中的换行符将被保留(我假设这是您想要实现的)。

例子:

given = raw_input("""Is %s your number?
Enter 'h' to indicate the guess is too high.
Enter 'l' to indicate the guess is too low.
Enter 'c' to indicate that I guessed correctly""" % ans)
于 2013-06-21T22:45:23.210 回答
-1

你也可以做三重引号字符串。开头和结尾"""都可以跨越多行。

于 2013-06-21T22:22:06.990 回答