@jkovalenko

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

Здравствуйте. Я новичок, и не могу сделать перенос строки по стандарту пеп8, у меня превышает кол-во символов, но когда я делаю
print(*[str(int(i) ** 2) for i in input().split(' ') \
   if int(i) % 2 == 1 and str(int(i) ** 2)[-1] != '9'])

у меня выходит ошибка оформления кода. что я делаю неправильно?
print(*[str(int(i) ** 2) for i in input().split(' ') if int(i) % 2 == 1 and str(int(i) ** 2)[-1] != '9'])
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Я делаю так, если уж приспичит, но нужно стараться делать выражения проще и читабельнее:
print(*[
    str(int(i) ** 2) 
    for i in input().split(' ') 
    if int(i) % 2 == 1 and str(int(i) ** 2)[-1] != '9'
])

Для сложных кусков правил несколько:
- не экономьте строки.
- открытые скобки (любые) намекнут питону, что оператор еще не закончился.
- ни к чему лишний раз ставить символ переноса строки, это может привести к ошибкам.
- не экономь на спичках: если кусок алгоритмически сложен, не нужно экономить на промежуточных переменных, это позволит сделать код понятнее. Если уж хочется освободить память пораньше, то можно удалять переменные, но всё должно быть целесообразно.
- если уж нагородил литералов сборки спика или словаря, отформатируй их понятно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы