Как переносить длинные строки в 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 и здравый смысл в конце концов, и лучше бы это нечитаемое нагромождение кода расписать на несколько отдельных строк без всяких извращений.

Работа со строками в Python: литералы

Python 3 логотип

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

Это первая часть о работе со строками, а именно о литералах строк.

Литералы строк

Работа со строками в Python очень удобна. Существует несколько литералов строк, которые мы сейчас и рассмотрим.

Строки в апострофах и в кавычках

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

Экранированные последовательности — служебные символы

Экранированные последовательности позволяют вставить символы, которые сложно ввести с клавиатуры.

Экранированная последовательность Назначение
\n Перевод строки
\a Звонок
\b Забой
\f Перевод страницы
\r Возврат каретки
\t Горизонтальная табуляция
\v Вертикальная табуляция
\N

Идентификатор ID базы данных Юникода
\uhhhh 16-битовый символ Юникода в 16-ричном представлении
\Uhhhh… 32-битовый символ Юникода в 32-ричном представлении
\xhh 16-ричное значение символа
\ooo 8-ричное значение символа
\0 Символ Null (не является признаком конца строки)

«Сырые» строки — подавляют экранирование

Если перед открывающей кавычкой стоит символ ‘r’ (в любом регистре), то механизм экранирования отключается.

Но, несмотря на назначение, "сырая" строка не может заканчиваться символом обратного слэша. Пути решения:

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

Это все о литералах строк и работе с ними. О функциях и методах строк я расскажу в следующей статье.

Для вставки кода на Python в комментарий заключайте его в теги

  • Модуль csv - чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ
  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов
  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

Перенос длинного кода на новую строку 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 чтобы следить за выходом новых статей и обновлением старых

Как переносить длинные строки?

Author24 — интернет-сервис помощи студентам

Как переносить длинные строки в коде ООП?
Как разделить длинную строку на две, чтобы помещалась на экране? class Firma(): def.

Необходимо переносить строки из файла word и вставлять их в файл excel
Подскажите, что нужно сделать? что почитать? Просто комбинациями ctrl+c и ctrl+v не удобно. Но.

Как переносить длинные слова на новую строку в таблицах?
Есть таблица с заданной шириной, но если в 1 из ячеек будет длинное слово, то таблица расшириться.

Как переносить строки в заголовке колонки?
Имею колонку, например "Розничная цена". Как представить ее двумя строками? А то больно уж широко.

133 / 104 / 33
Регистрация: 01.11.2019
Сообщений: 374
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
supmener, перенести в коде или добавить переносы в выводе?
Если в коде:

1 2 3 4
choice = input( 'Вы хотите вычислить только боковую поверхность или всю площадь цилиндра? ' 'Введите 1, если хотите вычислить всю площадь цилиндра и 2, если только ' 'площадь боковой поверхности ')

Если в выводе — ответили выше.
Просто Лис

Эксперт Python

5456 / 3373 / 1027
Регистрация: 17.05.2012
Сообщений: 9,887
Записей в блоге: 9
Если в коде (чтобы длина строки не превышала, допустим, 80 символов), то так:

1 2 3
eprst = input('Вы хотите вычислить только боковую поверхность\ или всю площадь цилиндра? Введите 1, если хотите вычислить\ всю площадь цилиндра и 2, если только площадь боковой поверхности ')

Немного правильнее многострочные строки:

1 2 3 4
eprst = input('''Вы хотите вычислить только боковую поверхность\ или всю площадь цилиндра? Введите 1, если хотите вычислить всю площадь цилиндра и 2, если только площадь боковой поверхности''')

-117 / 93 / 14
Регистрация: 26.06.2013
Сообщений: 4,570

ЦитатаСообщение от 0x10 Посмотреть сообщение

перенести в коде или добавить переносы в выводе?
Все варианты интересуют, может каких то способов не знаю.
Просто Лис

Эксперт Python

5456 / 3373 / 1027
Регистрация: 17.05.2012
Сообщений: 9,887
Записей в блоге: 9

Это бессмысленно интересоваться мало чем полезными деталями. Это совершенно разные вопросы:

1) code style кода, чтобы его можно было удобно читать и не появлялась горизонтальная прокрутка в редакторе

2) и как перенести строку в выводе консоли print('hello\nworld')

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

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

Длинные строки - как удобнее создать?
Нужна переменная которая содержит в себе некий многострочный текст. Если создаю её путём: S :=.

Как в datagridview отобразить две длинные строки одна после другой, но без сворачивания
Добрый день! Нужно в ряде datagridview отобразить две длинные строки, одна после другой, и чтобы.

Переписать строки исходного файла в новый файл, укоротив, длинные строки до 20 символов
Переписать строки исходного файла в новый файл, укоротив, длинные строки до 20 символов

Почему label не хочет переносить строки?
Почему label не хочет переносить строки?

Переписать строки исходного файла в новый файл, укоротив длинные строки до 20 символов. (Работа с текстовыми файлами)
Составить программу, которая укорачивает длинные строки до 20 символов, записывая это в новый файл.

Переносить строки из многострочного редактора в поле ввода
Задание в текстовой форме Пример 34. ЗАДАНИЕ Напишите программу, которая бы по нажатию кнопки.

Или воспользуйтесь поиском по форуму:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *