Контекстный менеджер: Автоматическое закрытие ресурсов
Как мы знаем, после того, как файл был открыт и обработан, важно быстро закрыть его, чтобы освободить ресурсы памяти. Пренебрежение этим может привести к утечке памяти или даже к сбою нашей системы.
Как показано выше, оператор “with” является ключевым для контекстных менеджеров Python. Пока мы открываем файл через него и обрабатываем файл под ним, файл будет автоматически закрыт после обработки.
Как мы знаем, после того, как файл был открыт и обработан, важно быстро закрыть его, чтобы освободить ресурсы памяти. Пренебрежение этим может привести к утечке памяти или даже к сбою нашей системы.
Как показано выше, оператор “with” является ключевым для контекстных менеджеров Python. Пока мы открываем файл через него и обрабатываем файл под ним, файл будет автоматически закрыт после обработки.
Используйте метод “Enumerate” Для элегантного перебора списков
В некоторых случаях нам необходимо использовать как индекс, так и значения элементов в списке при его повторении.
Мы можем написать подобную логику на Python, но my_list[i] кажется немного неуместным, особенно когда нам нужно вызывать значение элемента много раз.
Реальный питоновский способ сделать это - использовать функцию enumerate() для получения как индекса, так и значений напрямую.
В некоторых случаях нам необходимо использовать как индекс, так и значения элементов в списке при его повторении.
Мы можем написать подобную логику на Python, но my_list[i] кажется немного неуместным, особенно когда нам нужно вызывать значение элемента много раз.
Реальный питоновский способ сделать это - использовать функцию enumerate() для получения как индекса, так и значений напрямую.
Добавление элемента только при выполнении условия
Вы можете добавить условие для использования
В этом примере, если
Вы можете добавить условие для использования
append()
. Если условие выполняется или если условия нет, append()
добавляет элемент в конец списка. Всё как обычно.В этом примере, если
temp
больше 25, то метод append()
добавляет элементы в конец списка numbers
. В нашем случае, это 30 и 27.Отличие append() от extend()
Метод
Таким образом, метод
Дело в том, что
Метод
extend()
также используется для добавления элементов в список, но в отличие от append()
, он принимает итерируемый объект (например, другой список) и добавляет его элементы по отдельности.Таким образом, метод
extend()
объединяет содержимое двух списков, тогда как метод append()
просто добавляет новый элемент в конец списка.Дело в том, что
append()
добавляет один элемент, в то время как extend()
добавляет все элементы переданного списка поочередно.Конкатенация списков с использованием append()
Когда мы используем
Результат этого кода —
Когда мы используем
append()
с другим списком, происходит не конкатенация (слияние) списков в привычном понимании, а добавление одного списка как элемента в другой список.Результат этого кода —
list1 = [1, 2, 3, [4, 5, 6]]
. Теперь list2
стал элементом последнего элемента списка list1
.Метавселенная Сбера для Всемирного фестиваля молодежи
Мероприятие проходит в Сочи с 1 по 7 марта, но возможность поучаствовать в нем есть у всех — метавселенная доступна и со смартфона, и с ПК. При этом скачивать ничего не нужно: все работает в браузере.
Внутри метавселенной есть несколько миров, где можно узнать о том, какие Сбер предлагает человекоцентричные и технологичные продукты. Кроме того, можно смотреть прямую трансляцию фестиваля, параллельно выполняя квесты от СберКота или проходя полосу препятствий.
Мероприятие проходит в Сочи с 1 по 7 марта, но возможность поучаствовать в нем есть у всех — метавселенная доступна и со смартфона, и с ПК. При этом скачивать ничего не нужно: все работает в браузере.
Внутри метавселенной есть несколько миров, где можно узнать о том, какие Сбер предлагает человекоцентричные и технологичные продукты. Кроме того, можно смотреть прямую трансляцию фестиваля, параллельно выполняя квесты от СберКота или проходя полосу препятствий.
Недостатки map()
К недостаткам
Это неплохо на малых оборотах, но на практике, где данные весьма разнообразны, без просмотра результата вероятность ошибок на проде увеличивается: мы просто не увидим потенциальных проблем.
К недостаткам
map()
, так же как и в случае с filter()
, можно отнести «ленивую оценку» (Lazy Evaluation). Создатели языка сделали немало в 3-й версии, чтобы улучшить производительность языка, и потому вместо обработанного объекта по умолчанию нам возвращается ссылка на итератор. Пока мы не обернем ее в list()
или другой метод, обработка функцией-дочкой еще не произошла.Это неплохо на малых оборотах, но на практике, где данные весьма разнообразны, без просмотра результата вероятность ошибок на проде увеличивается: мы просто не увидим потенциальных проблем.
Рандомные координаты
Про комикс, который вызывается с помощью import antigravity слышали все (если вы его не видели, то ловите). Но если покопаться, можно найти пасхалку в пасхалке: в модуле antigravity.py можно найти функцию geohash, которая открывает другой комикс и генерирует случайные координаты.
Про комикс, который вызывается с помощью import antigravity слышали все (если вы его не видели, то ловите). Но если покопаться, можно найти пасхалку в пасхалке: в модуле antigravity.py можно найти функцию geohash, которая открывает другой комикс и генерирует случайные координаты.
Шифр Цезаря
Модуль this.py, который выводит Zen of Python, выглядит так.
Строка s зашифрована с помощью ROT13 — все буквы сдвинуты на 13 позиций. Кстати, так же иногда скрывают спойлеры, что многих бесит.
Модуль this.py, который выводит Zen of Python, выглядит так.
Строка s зашифрована с помощью ROT13 — все буквы сдвинуты на 13 позиций. Кстати, так же иногда скрывают спойлеры, что многих бесит.
Дядя Барри
1 первого апреля 2009 года Гвидо ван Россум заявил, что уходит в отставку, чтобы сосредоточиться на покорении Эвереста, и теперь официально значится как Benevolent Dictator Emeritus Vacationing Indefinitely from the Language (BDEVIL) — или Великодушный почетный диктатор, отдыхающий от языка в течение неопределенного срока. На его место якобы пришел Барри Уорсоу (или Дядя Барри). И тут же ввел несколько изменений и обругал Python 3.0 и Си.
Все это оказалось первоапрельской шуткой, отголоски которой все еще можно найти в интерпретаторе.
1 первого апреля 2009 года Гвидо ван Россум заявил, что уходит в отставку, чтобы сосредоточиться на покорении Эвереста, и теперь официально значится как Benevolent Dictator Emeritus Vacationing Indefinitely from the Language (BDEVIL) — или Великодушный почетный диктатор, отдыхающий от языка в течение неопределенного срока. На его место якобы пришел Барри Уорсоу (или Дядя Барри). И тут же ввел несколько изменений и обругал Python 3.0 и Си.
Все это оказалось первоапрельской шуткой, отголоски которой все еще можно найти в интерпретаторе.