Содержание

Перенос строк кода Python — tirinox.ru

Подписывайтесь на мой канал в Телеграм @pyway , чтобы быть в курсе о новых статьях!

PEP-8 не рекомендует писать строки кода длиннее, чем 79 символов. С этим можно не согласиться, однако, встречаются строки, которые не влезают даже на наши широкоформатные мониторы.

👨‍🎓 Старайтесь не делать очень длинные строки, разбивая сложные условия или формулы на отдельные части, вынося их в переменные или функции с осмысленными названиями.

Если есть острая необходимость иметь длинное выражение, тогда приходится переносить код на следующие строки. Можно делать двумя способами: скобками и слэшем. 

Если, перед выражением открыта скобка (круглая, квадратная или фигурная в зависимости от контекста), но она не закрыта в этой строке, то Python будет сканировать последующие строки, пока не найдет соответствующую закрывающую скобку (англ.

implicit line joining). Примеры:

# вычисления
income = (gross_wages
          + taxable_interest
          + (dividends - qualified_dividends)
          - ira_deduction
          - student_loan_interest)
if (student_loan_interest > ira_deduction
        and qualified_dividends == 0):
    ...
# словари
d = {
    "hello": 10,
    "world": 20,
    "abc": "foo"
}
# аргументы функции
some_func(arg1,
    arg2,
    more_arg,
    so_on_and_on)

Обратите внимание, что в первом примере скобки очень важны. Без скобок код не скомпилируется из-за отступов, а если их убрать, то результат будет неверен: income станет gross_wages, а последующие строки не будут иметь эффекта!

# неправильно!
income = gross_wages
+ taxable_interest
+ (dividends - qualified_dividends)
- ira_deduction
- student_loan_interest

Метод переноса обратным слэшем. Ставим обратный слэш конце строки и сразу энтер (перенос строки): тогда следующая строка будет включена в текущую (англ.

explicit line joining), не взирая на отступы, как будто бы они написаны в одну строку:

income = gross_wages \
         + taxable_interest \
         + (dividends - qualified_dividends) \
         - ira_deduction \
         - student_loan_interest

Еще примеры со слэшем:

if student_loan_interest > ira_deduction \ and qualified_dividends == 0: ... # допустимо, согласно PEP-8 with open('/path/to/some/file/you/want/to/read') as file_1, \ open('/path/to/some/file/being/written', 'w') as file_2: file_2. write(file_1.read()) # пробелы в строку попадут, а энтер - нет! str = "Фу\ < вот эти пробелы тоже в строке"

Почему скобки лучше для переноса:

  • Лучше восприятие
  • Скобок две, а слэшей надо по одному на каждый перенос
  • Можно забыть слэш и сломать код
  • Можно поставить пробел после слэша и тоже сломать

🐉 Специально для канала @pyway. Подписывайтесь на мой канал в Телеграм @pyway 👈 

39 164

explicit line joiningimplicit line joiningpythonslashкачественный кодперенос строкскобкиформатирование кодахороший стиль

Tirinox

Перенос длинного кода на новую строку Python

Перенос длинного кода на новую строку Python
Содержание
Введение
Пример
Перенос f-string
Перенос при присваивании
Объявление функции
if
Объявление списка
Похожие статьи

Введение

Если строка превышает 80 символов в длину — по PEP 8 её нужно разделить на несколько.

Пример

Пример слишком длинной строки

url = your_base_url &plus; "/monitor-service/api/v1/components/744618a0-78c5-4e19-78f4-6d215bde64a5"

Чтобы сделать перенос строки — воспользуйтесь символом \

url = your_base_url &plus; \ "/monitor-service/api/v1/components/744618a0-78c5-4e19-78f4-6d215bde64a5"

Или

url = your_base_url &plus; "/monitor-service/api/v1/components/" \ "744618a0-78c5-4e19-78f4-6d215bde64a5"

f-string

Если нужно перенести f-string , например:

print(f'\n\nPOST to {your_url} response status code is {response.status_code}\n')

Новую строку тоже нужно начать с f

print(f'\n\nPOST to {your_url} response status code is ' f'{response.status_code}\n')

Перенос при присваивании

Если нужно перенести выражение вида a = b, где b это что-то длинное:

# Правильно: # Выравнивание по открывающей скобке. foo = long_function_name(var_one, var_two, var_three, var_four) # Второй вариант так называемый «Подвешенный» отступ. foo = long_function_name( var_one, var_two, var_three, var_four) # Если поставить запятую в конце — закрывающую скобку можно. # поместить под первым непустым символом. result = some_function_that_takes_arguments( ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ) # Либо в начало строки. result = some_function_that_takes_arguments( ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’,

) # Неправильно: # Запрещено перечислять аргументы в первой строке # если следующая не выровнена. foo = long_function_name(var_one, var_two, var_three, var_four)

Объявление функций

Если нужно объявить функцию с большим числом параметров:

# Правильно: # Нужно отступить на 4 пробела, чтобы выделить параметры. def long_function_name( var_one, var_two, var_three, var_four): print(var_one) # Неправильно # Параметры не выделяются и читать неудобно def long_function_name( var_one, var_two, var_three, var_four): print(var_one)

if

Ветвления на основе if разрешено оформлять следующими способами:

# Без отступа. if (this_is_one_thing and that_is_another_thing): do_something() # Хороший приём — добавить комментарий, который улучшит читаемость # в редакторах с подсветкой синтаксиса. if (this_is_one_thing and that_is_another_thing): # Since both conditions are true, we can frobnicate. do_something() # Разрешено добавить отступ перед and. if (this_is_one_thing and that_is_another_thing): do_something()

Объявление списков

Списки можно объявлять двумя способами:

my_list = [ 1, 2, 3, 4, 5, 6, ] my_list = [ 1, 2, 3, 4, 5, 6, ]

Похожие статьи
Python
Интерактивный режим
str: строки
Списки []
if, elif, else
Циклы
Функции
try except
Пакеты
*args **kwargs
ООП
enum
Опеределить тип переменной Python
Тестирование с помощью Python
Работа с REST API на Python
Файлы
: записать, прочитать, дописать, контекстный менеджер…
Скачать файл по сети
SQLite3: работа с БД
datetime: Дата и время в Python
json. dumps
Selenium &plus; Python
Сложности при работе с Python
DJANGO
Flask
Скрипт для ZPL принтера
socket :Python Sockets
Виртуальное окружение
subprocess: выполнение bash команд из Python
multiprocessing: несколько процессов одновременно
psutil: cистемные ресурсы
sys.argv: аргументы командной строки
PyCharm: IDE
pydantic: валидация данных
paramiko: SSH из Python
enumerate
logging: запись в лог
Обучение программированию на Python
f-string

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Образование

Актуально сейчас

Разное

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget. ru
Пишите на [email protected] если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение — пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. … …….
5. Статьи можно расшарить в соцсетях, нажав на иконку сети:

Запись длинной строки в несколько строк в Python

В Python при использовании средств проверки кода PEP8, таких как flake8, возникает ошибка E501 line too long , когда одна строка превышает 80 символов.

В этой статье объясняется, как разделить длинную строку на несколько строк без включения символа новой строки.

Содержимое

  • Символ продолжения строки в Python: обратная косая черта ( \ )
  • Использовать круглые скобки для продолжения строки

См. следующую статью о различных операциях, связанных со строками с разрывами строк.

  • Обработка разрывов строк (новых строк) в строках в Python

Если вы хотите переносить или обрезать длинные строки, полезен модуль textwrap.

  • Обтекание и усечение строки с помощью textwrap в Python

Если строка становится слишком длинной из-за объединения методов, ее можно разбить аналогичным образом.

  • Цепочки методов с разрывами строк в Python

Символ продолжения строки в Python: обратная косая черта (

\ )

В Python обратная косая черта ( \ ) является символом продолжения строки. Если в конце строки ставится обратная косая черта, считается, что строка продолжается на следующей строке.

 н = 1 + 2 \
    + 3
печать (н)
№ 6
 

источник: long_string.py

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

 s = 'aaa' 'bbb'
печать(и)
# аааббб
 

источник: long_string.py

Таким образом, вы можете разбить длинную строку на несколько строк следующим образом:

 s = 'https://ja.wikipedia.org/wiki/'\
    '%E3%83%97%E3%83%AD%E3%82%B0%E3%83'\
    '%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E'
печать(и)
# https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3% Е3%82%В0%Е8%А8%80%Е8%АА%9Е
 

источник: long_string.py

Обратите внимание, что только строковые литералы (строки, заключенные в ' или " ) объединяются при последовательной записи. Последовательная запись переменных без оператора вызовет ошибку.

 s_var = 'xxx'
# s = 'ааа' s_var 'bbb'
# SyntaxError: неверный синтаксис
 

источник: long_string.py

Используйте оператор + для объединения переменных или переменных и строковых литералов.

 с = 'ааа' + s_var + 'bbb'
печать(и)
# аааксхббб
 

источник: long_string.py

Оператор + требуется для объединения переменных, даже если они разделены обратной косой чертой ( \).

 s = 'ааааааааааааааааааааааааааааааааааааааа'\
    + s_var\
    + 'ббббббббббббббббббббббб'
печать(и)
# ааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааао
 

источник: long_string.py

Дополнительные сведения о объединении строк см. в следующей статье:

  • Объединение строк в Python (оператор +, соединение и т. д.)

Используйте круглые скобки для продолжения строки

В Python вы можете свободно разрывать строки внутри круглых скобок ( () , {} , [] ). Используя это правило, вы можете разделить длинную строку на несколько строк, используя круглые скобки вместо обратной косой черты.

Поскольку {} используется для наборов, а [] используется для списков, используйте для этой цели () . Обратите внимание, что кортежи создаются запятыми, а не () .

  • Кортеж с одним элементом требует запятой в Python

Можно написать так.

 с = ('https://ja.wikipedia.org/wiki/'
     '%E3%83%97%E3%83%AD%E3%82%B0%E3%83'
     '%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E')
печать(и)
# https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3% Е3%82%В0%Е8%А8%80%Е8%АА%9Е
 

источник: long_string.py

Если включены переменные, вам потребуется оператор + .

 s_var = 'xxx'
s = ('ааааааааааааааааааааааааааааааааааааа'
     + s_var
     + 'ббббббббббббббббббббббб')
печать(и)
# ааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааао
 

источник: long_string.py

Решено: Как сделать продолжение строки в Python [ПРАВИЛЬНО]

Содержание

 

Реклама

Введение в продолжение строки Python

Мы не можем разделить оператор на несколько строк в Python просто нажав Enter. Вместо этого большую часть времени мы используем обратную косую черту ( \ ), чтобы указать, что оператор продолжается на следующей строке. В этом уроке мы узнаем, как мы можем показать продолжение строки в Python, используя различные методы. Мы увидим, почему мы не можем использовать тройные, двойные или одинарные кавычки для продолжения строки.

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

ТАКЖЕ ПРОЧИТАЙТЕ: Использование функции Python filter() [10+ примеров]

 

Начало работы с Python продолжение строки

Предпочтительным способом переноса длинных строк является использование круглых скобок Python. Их следует использовать вместо использования обратной косой черты для продолжения строки. Оператор продолжения строки \ можно использовать для разделения длинных операторов на несколько строк. В python обратная косая черта (\) является символом продолжения, и если он помещен в конце строки, считается, что строка продолжается, игнорируя последующие символы новой строки. Во-первых, давайте посмотрим, какие проблемы возникают, когда мы пытаемся использовать только кавычки.

 

Проблемы с одинарными, двойными и тройными кавычками

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

 

Примеры проблем с одинарными и двойными метками

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

 # определение строкового значения в двойных кавычках
mystring = "Добро пожаловать в
        голинукс,
        здесь вы можете найти
        учебники по программированию"
# печать
print(mystring) 

Вывод:

9SyntaxError: EOL при сканировании строкового литерала

Обратите внимание, что мы получаем ошибку, потому что кавычки должны заканчиваться одной строкой. Мы не можем начинать кавычки в одной строке и заканчивать в другой строке. Тот же случай с одинарными кавычками. См. пример ниже:

ТАКЖЕ ПРОЧИТАЙТЕ: Объяснение функции Python ceil() [Простые примеры]

Обратите внимание, что мы снова получаем ошибку, когда используем одинарные кавычки.

Реклама

 

Пример проблемы с тройными кавычками

Вы заметили, что мы не можем записать несколько строк текста внутри двойных и одинарных кавычек без явного определения оператора продолжения строки. В случае тройных кавычек программа не вернет никакой ошибки, фактически вывод будет в разных строках, а не только в одной строке. См. пример ниже:

 # определение строкового значения в тройных кавычках
mystring = '''Добро пожаловать в
голинуксклауд,
здесь вы можете найти
учебники по программированию'''
# печать
печать (mystring) 

Вывод:

 Добро пожаловать в
голинуксклауд,
здесь вы можете найти
обучающие программы по программированию 

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

 

Продолжение строки Python с явным оператором разрыва строки

Оператор обратной косой черты \ , также известный как оператор явного разрыва строки или оператора продолжения строки, может использоваться для разбиения одной непрерывной длинной строки на множество более мелких и легко читаемых строк кода. Мы можем использовать его внутри одинарных, двойных или тройных кавычек, и на выходе будет одна строка, а не ошибка или несколько строк. В этом разделе мы рассмотрим несколько примеров и посмотрим, как мы можем использовать этот оператор для продолжения строки Python.

ТАКЖЕ ЧИТАЙТЕ: Python len() Практические примеры

 

Примеры с явным оператором разрыва строки

Теперь давайте рассмотрим пример и посмотрим, как мы можем использовать оператор разрыва для продолжения строки Python. См. примеры ниже:

 # определение строкового значения в одинарных кавычках
mystring1 = 'Добро пожаловать в \
голинукс, \
здесь вы можете найти \
учебники по программированию
# определение строкового значения внутри двойных кавычек
mystring2 = "Добро пожаловать в \
голинукс, \
здесь вы можете найти \
учебники по программированию"
# печать
печать (mystring1)
печать (mystring2) 

Вывод:

 Добро пожаловать в golinux, здесь вы можете найти учебники по программированию
Добро пожаловать в golinux, здесь вы можете найти учебники по программированию 

Обратите внимание, что на этот раз мы не получили никаких ошибок, и вывод находится в одной строке из-за оператора продолжения строки, который мы использовали. Такой же вывод будет для тройных кавычек. См. пример ниже:

 # определение строкового значения в тройных кавычках
mystring1 = '''Добро пожаловать в \
голинукс, \
здесь вы можете найти \
учебники по программированию'''
# печать
печать (mystring1) 

Вывод:

 Добро пожаловать в golinux, здесь вы можете найти учебники по программированию 

Обратите внимание, что даже мы использовали тройные кавычки, но все равно вывод находится в одной строке из-за оператора продолжения строки.

 

Примеры целых чисел и чисел с плавающей запятой с явным оператором разрыва строки

До сих пор мы рассматривали только примеры строк. Давайте возьмем пример целых чисел и сложим числа из другой строки. См. пример ниже:

 # продолжение строки python с оператором break
сумма = 2 + \
        3 + \
            4 + \
                6
# печать суммы
print(sum) 

Вывод:

 15 

Обратите внимание, что мы смогли добавить числа, которые были в разных строках, с помощью оператора продолжения строки Python. То же самое будет применяться и к числам с плавающей запятой. См. пример ниже:

Advertisement

 # Продолжение строки Python с использованием
сумма = 5,6 + \
10,4 + 1,1 + \
20,3 + 2,2
# печать
печать (сумма) 

Вывод:

 39.60000000000001 

Обратите внимание, что вывод также представляет собой число с плавающей запятой, полученное путем сложения разных чисел из разных строк.

ТАКЖЕ ЧИТАЙТЕ: Объяснение модуля структуры Python [Простые примеры]

 

Продолжение строки Python с помощью квадратных скобок()

Другой метод, который можно использовать для продолжения строки Python, заключается в заключении строк внутри () . Мы запишем строки или целые числа внутри этих скобок в несколько строк, и результатом будет только одна строка. В этом разделе мы возьмем разные примеры, используя скобки для продолжения строки Python.

 

Продолжение строк в Python с помощью скобок

Теперь давайте рассмотрим пример и посмотрим, как мы можем использовать скобки для продолжения строки в Python. См. пример ниже:

 # Продолжение строки Python с помощью квадратных скобок
mystring = ('добро пожаловать' +'в'
'golinuxcloud'
'программирование' + 'учебники')
# печать
print(mystring) 

Вывод:

 добро пожаловать в учебники по программированию golinuxcloud 

Обратите внимание, что с помощью квадратных скобок и оператора сложения мы смогли записать несколько строк строк в одну строку в качестве вывода.

 

Продолжение строки Python для целых чисел и чисел с плавающей запятой с использованием квадратных скобок

Теперь давайте возьмем пример типа данных целых чисел и посмотрим, как мы можем использовать скобки для добавления чисел из разных строк. См. программу Python ниже:

 # Продолжение строки Python с использованием
сумма = (5 +
10 + 11 +
20 + 2)
# печать
печать (сумма)
 

Вывод:

 48 

Обратите внимание, что мы получили сумму чисел, которые были в разных строках. То же самое и с плавающими числами. См. пример ниже:

 # Продолжение строки Python с использованием
сумма = (5,6 +
10,4 + 1,1 +
20,3 + 2,2)
# печать
print(sum) 

Вывод:

 39.60000000000001 

Обратите внимание, что сумма снова является плавающим числом.

ТАКЖЕ ЧИТАЙТЕ: Объяснение Python marshmallow [Практические примеры]

 

Резюме

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