Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Python
все вопросы по Python (Питон)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

Открыть новую тему     Написать ответ в эту тему

Adm10



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здесь обсуждается всё, что связано с использованием Python: программирование, библиотеки, ресурсы и другие вопросы

Python


Python - высокоуровневый язык программирования общего назначения с динамической типизацией и автоматическим управлением памятью, ориентированный на повышение производительности разработчика, читаемости кода и его качества, а также на обеспечение переносимости написанных на нём программ

С чего начать?
Простой, понятный и вместе с тем грамотный ресурс на русском языке: pythonworld.ru + самоучитель
Библия PEP8

Всего записей: 35 | Зарегистр. 13-10-2006 | Отправлено: 15:48 16-06-2007 | Исправлено: Lin1980, 22:13 27-01-2025
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 OK. Так нагляднее:
 
   Я печатаю в текстовом редакторе. Для создания новой строки я нажимаю клавишу 'Enter' один раз (в коде это записывается print(). Для создания двух новых строк (первая получается 'пустой') я нажимаю клавишу 'Enter' два раза (в коде это записывается print('\n'). Но не специалисту бывает трудно понять создаётся в каком-то месте перенос или нет. Поэтому практический приём таков: пишем сначала print(), если 'пустая' строка не создаётся, то меняем на print('\n').
 
   В указанном сценарии сделал так:

Код:
    print()  
    for clearkey in clearkeys:
        print(f"--key {clearkey['keyId']}:{clearkey['key']}", end='\n')
    print()
    print(decrypted_obj["playbackData"]["mediaPlaylistUrl"])

 
    Так меня устраивает.
 

Всего записей: 2652 | Зарегистр. 09-01-2010 | Отправлено: 02:14 25-12-2025 | Исправлено: LZAA, 11:56 25-12-2025
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA

Цитата:
Поэтому практический приём таков: пишем сначала print()), если 'пустая' строка не создаётся, то меняем на print('\n')).

неверно...
для понимания:
1.

Код:
print(..., end=' ')

- здесь, явно задана замена символ конца/переноса строки. Если выполняется такая функция, то перевода строки после вывода не будет и следующая строка "склеится" с текущим выводом.
По умолчанию там то, что необязательно явно указывать: print(..., end='\n')
 
2.

Цитата:
print(f"--key {clearkey['keyId']}:{clearkey['key']}", end='\n')

Здесь нет необходимости явно указывать аргумент end='\n', он там по умолчанию присутствует, его указывают, если есть необходимость чем-либо его заменить.
 
3.  
В общем случае, такая запись:

Код:
print('\n')  

- эквивалентна:

Код:
print('\n', end='\n')

то есть два перевода строки, а именно: явно указанный перевод строки в виде текста и ещё один перевод строки добавляемый аргументом по умолчанию самой функцией print в конец вывода.
 

Цитата:
Так меня устраивает.

Это хорошо, что устраивает. Но Вы его проверили?
Там в цикле собиралась строка из ключей через пробел, то бишь в каждой итерации ключ добавлялся в одну строку, а теперь, после замены пробела на перевод строки, каждый ключ будет выводиться с новой строки - это то, что требовалось?
Я ведь не просто из любопытства просил полный код, с реальным выводом и с выводом который требуется...
 
Добавлено:
Mavrikii  Цитата

Цитата:
да там предыдущая строка же без переноса, а нужно два, вот и.

а, да, всё верно... там же в предыдущей строке
Код:
print(f"--key {clearkey['keyId']}:{clearkey['key']}", end=" ")
, вывод будет без переноса...
 
 
 
Добавлено:
LZAA

Цитата:
Запись 1 задаётся кодом - print(f"--key {clearkey['keyId']}:{clearkey['key']}", end=" ")
Запись 2 задаётся кодом - print(decrypted_obj["playbackData"]["mediaPlaylistUrl"])

А, вот теперь понятнее стало...
В целом, если я правильно понял, конечно, требуется примерно это:

Код:
 
# перевод строки после "Команда":
print()
# сборка, через пробел, строки "Запись 1":
for clearkey in clearkeys:
    print(f"--key {clearkey['keyId']}:{clearkey['key']}", end=' ')
 
# двойной перевод строки, для итогового разделения одной пустой строкой, после "Запись 1":
print('\n')
 
# вывод "Запись 2"
print(decrypted_obj["playbackData"]["mediaPlaylistUrl"])

 
Добавлено:
для наглядности, картинка:
 

Всего записей: 3262 | Зарегистр. 03-02-2009 | Отправлено: 09:32 25-12-2025 | Исправлено: YuS_2, 09:51 25-12-2025
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Цитата:
Поэтому практический приём таков: пишем сначала print()), если 'пустая' строка не создаётся, то меняем на print('\n')).
 
неверно...  

   Да - неверно. Но '))' - это опечатка. Не знаю, почему так вышло. Прошу прощения. В сообщении сейчас исправлено:

Цитата:
Поэтому практический приём таков: пишем сначала print(), если 'пустая' строка не создаётся, то меняем на print('\n').  

   Убрал из кода лишнее. Теперь так:

Код:
    print()  
    for clearkey in clearkeys:
        print(f"--key {clearkey['keyId']}:{clearkey['key']}")
    print()
    print(decrypted_obj["playbackData"]["mediaPlaylistUrl"])

  Это работает - получается две 'пустые' строки:
 
    Команда
 
    Запись 1
 
    Запись 2
 
   Код, понятное дело, не мой. Автор кода исходя из собственных соображений использует end=" " специально для того, чтобы 'Запись 1' создавалась одной строкой. Мне же удобнее вывод с переносом. Такие дела.
 

Всего записей: 2652 | Зарегистр. 09-01-2010 | Отправлено: 12:25 25-12-2025
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA

Цитата:
Но '))' - это опечатка.

Да, но я не про неё говорил, а про общий подход к "практическому приему".
Метод "научного тыка" - не наш метод. Поэтому и расписал подробно и даже скрин сделал. То бишь, использовать необходимо так, как требует того необходимый результат.
 

Цитата:
Мне же удобнее вывод с переносом.

Получается, что так и требовалось. Повторюсь, для ясности...
То бишь, вижу, что понимание этого есть:
Вывод ключей из списка clearkeys, в таком виде кода, будет для каждого ключа на отдельной строке.  
В смысле, будет не:

Код:
Запись 1

а:

Код:
Запись
1

- как-то так.

Всего записей: 3262 | Зарегистр. 03-02-2009 | Отправлено: 14:49 25-12-2025
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
По мне, так это одна из тех идиотических фич, за которые программисты смеются над питоном.

Всего записей: 5585 | Зарегистр. 18-09-2018 | Отправлено: 15:50 25-12-2025
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Python


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru

Рейтинг.ru