Как в питоне перейти на следующую строку
Перейти к содержимому

Как в питоне перейти на следующую строку

  • автор:

Автоматический перенос текста на новую строку Python (Вопрос решен) [закрыт]

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

Закрыт 1 год назад .

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

def parse_string(string: str) -> str: new_string = "" for letter_index in range(len(string)): if letter_index % 33 == 0 and letter_index != 0: new_string += "\n" else: new_string += string[letter_index] return new_string print(parse_string("«Чудесный доктор» — трогательный святочный рассказ Куприна. Двое мальчиков из обнищавшей семьи Мерцаловых возвращаются с нарядных, готовящихся к празднику улиц домой в подвал, где их ждет мать, больная сестра и голодный младенец")) 

Проблема: При переносе текста, функция убирает символ в месте переноса из слова. Где я допустил ошибку? Вывод в консоль:

«Чудесный доктор» — трогательный вяточный рассказ Куприна. Двое м льчиков из обнищавшей семьи Мерц ловых возвращаются с нарядных, г товящихся к празднику улиц домой в подвал, где их ждет мать, боль ая сестра и голодный младенец 

Перенос вызова конструктора на следующую строку

Создаю 1 statement-ом класс X и его инстанс x , однако строка длинная, поэтому переношу с помощью \ :

x = create_class('X', 'int_field') \ (int_field=42) 

Но мне пишет:

PEP 8: E211 whitespace before ‘(‘

Никакого whitespace кроме переноса строки на 1-ой строке после \ нет. Как тогда стилистически правильно надо переносить, чтобы не было никаких предупреждений?

Как правильно переносить строку и удалять не получившийся код в IDLE Python 3.10?

Добрый день!
Прохожу курс Python, до этого работала в агрегаторе курса, сейчас хочу научиться работать непосредственно в IDLE Python 3.10. Возникли сложности:
1) Когда нажимаю Энтер после команды if чтобы перейти на следующую строку, система начинает проверять код. Есть другой способ перейти на другую строку на клавиатуре или только мышкой?
2) Можно ли удалить код, который не получился? В системе он остается, новый начинаю писать со следующей строки.

Вопрос совсем новичковый, но несудите строго, — все с чего-то начинают

62f7c652dc9c2691651714.png

  • Вопрос задан более года назад
  • 1096 просмотров

Перенос строк кода Python

Подписывайтесь на мой канал в Телеграм @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 ��

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

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