Перенос строк кода Python — tirinox.ru
Подписывайтесь на мой канал в Телеграм @pyway , чтобы быть в курсе о новых статьях!
PEP-8 не рекомендует писать строки кода длиннее, чем 79 символов. С этим можно не согласиться, однако, встречаются строки, которые не влезают даже на наши широкоформатные мониторы.
👨🎓 Старайтесь не делать очень длинные строки, разбивая сложные условия или формулы на отдельные части, вынося их в переменные или функции с осмысленными названиями.
Если есть острая необходимость иметь длинное выражение, тогда приходится переносить код на следующие строки. Можно делать двумя способами: скобками и слэшем.
Если, перед выражением открыта скобка (круглая, квадратная или фигурная в зависимости от контекста), но она не закрыта в этой строке, то Python будет сканировать последующие строки, пока не найдет соответствующую закрывающую скобку (англ.
# вычисления 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
Метод переноса обратным слэшем. Ставим обратный слэш конце строки и сразу энтер (перенос строки): тогда следующая строка будет включена в текущую (англ.
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 + "/monitor-service/api/v1/components/744618a0-78c5-4e19-78f4-6d215bde64a5"
Чтобы сделать перенос строки — воспользуйтесь символом \
url = your_base_url + \
"/monitor-service/api/v1/components/744618a0-78c5-4e19-78f4-6d215bde64a5"
Или
url = your_base_url + "/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’,
Объявление функций
Если нужно объявить функцию с большим числом параметров:
# Правильно: # Нужно отступить на 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 + 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 у нас есть разные методы выполнения продолжения строки. В этом уроке мы узнали о типах ошибок, которые могут возникнуть, если мы просто используем кавычки и пишем длинное предложение в несколько строк.