如何在Python中编写多行命令

时间:2015-09-02 00:25:37

标签: python syntax

我有以下要使用的Python代码:

initialMinute = int(input('In the initial hour of {0}:00, enter the minute of arrival'.format(initialHour))

有点长,所以我不想在一条线上。我如何分解声明以便它可以包含两行?

3 个答案:

答案 0 :(得分:2)

在Python中,您实际上并不需要连接(+操作)来组合字符串。相邻行上的文字字符串将固有连接:

initialHour = 4
initialMinute = int(input('In the initial hour of '
                          '{0}:00, enter the minute of arrival: '
                          .format(initialHour)))

这实际上比使用+操作更有效,因为操作将在"编译时间"而不是"运行时。"并非性能是这里的关键问题。

但像这样的字符串连接有一些相当精确的(读取:nitsy和恼人的)规则。它可以帮助你知道你可以使用括号来进行这种"隐式连接"更可靠。这可以帮助您格式化代码,以实现更简单和可读性。例如:

initialHour = 4
question = ('In the initial hour of '
            '{0}:00, enter the minute of arrival: '
           ).format(initialHour)
initialMinute = int(input(question))

如果没有括号,您的字符串连接可能会违反Python的源代码缩进规则。但是括号表示我们还没有完成!继续等待。"将右括号放在format的行上 方法有助于将格式方法连接到现在组合的字符串。

如果您在智慧结束时,您也可以使用反斜杠字符(\)结束行以发出信号"该行继续!"这可能会变得混乱,并且有自己的一套陷阱,但可以帮助解决。

您可能还不需要这个,但如果您可以安装外部模块,我的textdata模块旨在解决此类问题。有了它,您不必担心字符串连接的细节,而是将文本放入多行字符串中,让模块弄清楚细节。 E.g:

from textdata import *

question = textline("""
    In the initial hour of
    {0}:00, enter the minute of arrival:
""")
然后

question

'In the initial hour of {0}:00, enter the minute of arrival:'

对于这一个字符串,它有点矫枉过正。但是如果在程序中包含大量文本 - 特别是涉及到的文本,如HTML,XML或SQL等缩进文本 - 它会使事情变得更容易。

答案 1 :(得分:1)

通常,您可以使用\(反斜杠)字符来表示您的语句会转到下一行。在您的情况下,长行是由字符串引起的,因此您必须执行其他操作。

您可以使用+

分隔字符串
initialHour = 4
initialMinute = int(input('In the initial hour of ' +
  '{0}:00, enter the minute of arrival: '.format(initialHour)))

或者您可以在括号边界处分隔语句:

initialMinute = int(input(
  'In the initial hour of {0}:00, enter the minute of arrival: '.format(
    initialHour)))

答案 2 :(得分:0)

您可以使用\将字符串分成多行。像这样使用它:

var = "long string... \
long string..."