簡體   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