Перенос длинного кода на новую строку Python
Если строка превышает 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\n POST to < your_url >response status code is < response.status_code >\n ‘ )
Новую строку тоже нужно начать с f
print ( f’ \n\n POST 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 , ]
Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых
Как правильно переносить строку и удалять не получившийся код в IDLE Python 3.10?
Добрый день!
Прохожу курс Python, до этого работала в агрегаторе курса, сейчас хочу научиться работать непосредственно в IDLE Python 3.10. Возникли сложности:
1) Когда нажимаю Энтер после команды if чтобы перейти на следующую строку, система начинает проверять код. Есть другой способ перейти на другую строку на клавиатуре или только мышкой?
2) Можно ли удалить код, который не получился? В системе он остается, новый начинаю писать со следующей строки.
Вопрос совсем новичковый, но несудите строго, — все с чего-то начинают

- Вопрос задан более года назад
- 939 просмотров
Перенос строки в Python


Перенос строки в Python можно реализовать несколькими способами. Выбор способа зависит от вида строки, которую нужно перенести:
- Перенос строки с кодом в Python (если вы хотите повысить читаемость кода и перенести часть строки с кодом в область видимости)
- Перенос текстовой строки в Python (если вам нужно оформить вывод текстовой строки с переносами в нужных местах)
Рассмотрим на примерах каждый из указанных вариантов.
Перенос строки с кодом в Python
PEP-8 (документ, регламентирующий правила написания кода в Python) рекомендует для хорошей читаемости кода не оставлять в одной строке больше 79 символов. На мой взгляд, такая рекомендация весьма справедлива и позволяет избавить программистов, от горизонтального (утомительного) скроллинга кода. Привести код в порядок помогут следующие возможности Python:
1. Длинные выражения в квадратных или круглых скобках можно переносить на следующую строку без дополнительных символов!
Так как в Python дополнительные пробелы в круглых или в квадратных скобках игнорируются, смело переносите длинные выражения в скобках на следующую строку.
Пример 1: Матрица, записанная таким способом, легче читается:
matrix = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
Так как строки матрицы заключены в квадратные скобки, мы можем их переносить без дополнительных символов.
Пример 2: аргументы функций можно переносить на новую строку, так как они заключены в круглые скобки:
new_image = transform_image(src, src_new, height=300, width=300, color, center, max_images )
2. Можно переносить строки с операторами с помощью символа обратной косой черты.
Если в выражении нет скобок, но есть операторы, используйте для переноса обратную косую черту, как показано в примере:
big_summa = 12 + 8 + 3 + 156 + 987 + 5 + 14 + 1 + 28 + 5 + \ 3 + 24 + 99 + 87 +15 +139
В данном примере обратная косая черта после оператора сложения никак не отразится на вычислениях и будет интерпретирована, как символ переноса строки.
Перенос текстовой строки в Python
Для переноса текстовой строки в Python используется специальный символ ‘\n’ . Рассмотрим на примерах:
Пример переноса строки в функции print(): даны два предложения: «Предложение 1. Предложение 2.» Нужно вывести на экран каждое предложение с новой строки.
print("Предложение 1. \n Предложение 2.")
Так как символ «\n» означает перенос строки, то второе предложение будет записано с новой строки.
Пример записи текстового файла с переносами строк:
with open("file.txt", "w") as file: file.write(f"Предложение 1. \nПредложение 2.")
В данном примере мы записали новый файл с содержимым:
Предложение 1. Предложение 2.
Текст, расположенный после символа ‘\n’ записан в файле с новой строки
![]()
У нас появился Telegram-канал для изучающих Python! Присоединяйтесь: вместе «питонить» веселее! Ссылка на канал: «Кодим на Python!»
Как перенести строку по правилам PEP8?
Проверял с помощью flake8 — ошибок не показывает.
Почему for так нужно форматировать — потому что здесь он часть конструкции (generator expression):
((row[index], row[-index - 1],) for index, row in enumerate(field))
И если переносить for на следующую строку, то он должен быть на 1 пробел правее самой левой скобки этой конструкции (не самой левой скобки предыдущей строки), таким образом как бы оставаясь внутри этой скобки (это создатели pep8 подразумевают под visual indent):
((row[index], row[-index - 1],) for index, row in enumerate(field))
Лайфхак: можно было вставить эту строку в PyCharm, добавить переносы строк, все отступы PyCharm сам бы правильно сделал (не всегда работает на 100% правильно, но с переносом generator expression и более простых конструкций работает).
Вообще, кроме pep8 существует Дзен Python и здравый смысл в конце концов, и лучше бы это нечитаемое нагромождение кода расписать на несколько отдельных строк без всяких извращений.
