Подтвердить что ты не робот

Можно ли разбить длинную строку на несколько строк в Python

Как и C, вы можете разбить длинную линию на несколько коротких строк. Но в Python, если я это сделаю, появится ошибка отступа... Возможно ли это?

4b9b3361

Ответ 1

От PEP 8 - Руководство по стилю для кода Python:

Предпочтительный способ обертывания длинных строк - это использование строки под названием Python продолжение в круглых скобках, скобках и фигурных скобках. При необходимости вы может добавить дополнительную пару круглых скобок вокруг выражения, но иногда использование обратной косой черты выглядит лучше. Удостоверьтесь, чтобы отступом продолжалась линия соответственно.

Пример неявного продолжения строки:

a = some_function(
    '1' + '2' + '3' - '4')

По теме разрывов строк вокруг двоичного оператора он продолжает: -

В течение десятилетий рекомендованный стиль должен прерываться после двоичных операторов. Но это может ухудшить читаемость двумя способами: операторы, как правило, разбросаны по разным столбцам на экране, и каждый оператор удаляется из операнда и на предыдущую строку.

В коде Python допустимо разбить до или после двоичного оператора, если соглашение согласовано локально. Для нового кода предлагается стиль Knuth (разрывы строк перед оператором).

Пример явного продолжения строки:

a = '1'   \
    + '2' \
    + '3' \
    - '4'

Ответ 2

Существует несколько способов сделать это.

1). Длительное утверждение:

>>> def print_something():
         print 'This is a really long line,', \
               'but we can make it across multiple lines.'

2). Использование круглых скобок:

>>> def print_something():
        print ('Wow, this also works?',
               'I never knew!')

3). С помощью \ снова:

>>> x = 10
>>> if x == 10 or x > 0 or \
       x < 100:
       print 'True'

Цитата PEP8:

Предпочтительный способ обертывания линии - это использование Python подразумеваемых продолжение строки в круглых скобках, скобках и фигурных скобках. Если необходимо, вы можете добавить дополнительную пару круглых скобок вокруг выражения, но иногда использование обратной косой черты выглядит лучше. Удостоверьтесь, чтобы отступом продолжалась линия соответственно. Предпочтительное место для разбивки по двоичному оператор после оператора, а не перед ним.

Ответ 3

Если вы хотите назначить длинную строку переменной, вы можете сделать это, как показано ниже:

net_weights_pathname = (
    '/home/acgtyrant/BigDatas/'
    'model_configs/lenet_iter_10000.caffemodel')

Не добавляйте запятую, или вы получите кортеж, который содержит много strs!

Ответ 4

Он также работает в Python:

>>> 1+\
      2+\
3
6
>>> (1+
          2+
 3)
6

Ответ 5

При попытке ввода непрерывного текста (например, запроса) не помещайте запятые в конце строки или вы получите список строк вместо одной длинной строки:

queryText= "SELECT * FROM TABLE1 AS T1"\
"JOIN TABLE2 AS T2 ON T1.SOMETHING = T2.SOMETHING"\
"JOIN TABLE3 AS T3 ON T3.SOMETHING = T2.SOMETHING"\
"WHERE SOMETHING BETWEEN <WHATEVER> AND <WHATEVER ELSE>"\
"ORDER BY WHATEVERS DESC"

вроде как.

Есть такой комментарий из acgtyrant, извините, не видел этого.:/

Ответ 6

Насколько я знаю, это можно сделать. Python имеет неявное продолжение строки (внутри круглых скобок, скобок и строк) для трехколейных строк ("""like this"""), а отступ линий продолжения не имеет значения. Для получения дополнительной информации вы можете прочитать эту статью о лексическом анализе с python.org.

Ответ 7

Код, связанный с DB, выглядит проще на глазах в нескольких строках, заключенных в пару тройных кавычек:

SQL = """SELECT
            id, 
            fld_1, 
            fld_2, 
            fld_3, 
            ...... 
         FROM some_tbl"""

чем следующая гигантская длинная строка:

SQL = "SELECT id, fld_1, fld_2, fld_3, .................................... FROM some_tbl"