繁体   English   中英

如何在 Python 中编写多行命令

[英]How to write a multi-line command in Python

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

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——它会使事情变得更容易。

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

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

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)))

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM