我有以下要使用的Python代码:
initialMinute = int(input('In the initial hour of {0}:00, enter the minute of arrival'.format(initialHour))
它有点长,所以我不想在一行上。我该如何分解该语句,使其包含两行?
通常,您可以使用\
(反斜杠)字符来表示您的语句继续到下一行。在您的情况下,长行是由字符串引起的,因此您必须执行其他操作。
您可以使用+
分隔字符串:
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)))
在Python中,实际上不需要串联(+
操作)即可组合字符串。相邻行上的文字字符串将固有地连接在一起:
initialHour = 4
initialMinute = int(input('In the initial hour of '
'{0}:00, enter the minute of arrival: '
.format(initialHour)))
这实际上比使用+
操作更有效率,因为该操作将在“编译时”而不是“运行时”完成。性能不是这里的关键问题。
但是像这样的字符串串联具有一些相当精确的规则(阅读:挑逗和烦人)。可以帮助您知道可以使用括号使这种“隐式连接”更加可靠。这样可以帮助您设置代码格式,以简化操作并提高可读性。例如:
initialHour = 4
question = ('In the initial hour of '
'{0}:00, enter the minute of arrival: '
).format(initialHour)
initialMinute = int(input(question))
没有括号,您的字符串连接可能会违反Python的源代码缩进规则。但是括号表示“我们还没有完成!请继续等待”。将右圆括号与format
放在一行上方法有助于将format方法连接到现在组合的字符串。
如果您很机智,也可以用反斜杠字符(\
)结束行,以表示“行继续!”这可能会变得凌乱,并且有其自己的陷阱,但可能会有所帮助。
您可能现在还不需要,但是如果您可以安装外部模块,则我的textdata模块旨在解决此类问题。有了它,您不必担心字符串连接的详细信息,而是将文本放入多行字符串中,并让模块找出详细信息。例如:
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),则事情将变得更加容易。
您可以使用\
将字符串分成多行。像这样使用它:
var = "long string... \
long string..."