如何在Python中编写多行命令

问题描述 投票:1回答:3

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

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

它有点长,所以我不想在一行上。我该如何分解该语句,使其包含两行?

python syntax
3个回答
2
投票

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

您可以使用+分隔字符串:

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
投票

在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),则事情将变得更加容易。


0
投票

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

var = "long string... \
long string..."
© www.soinside.com 2019 - 2024. All rights reserved.