Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Функции sleep() и time()
Чтобы понять смысл функции sleep()
, разберём простой пример. Три строки выводятся в определённый промежуток времени – задержку обеспечивает sleep.
Сперва выводится первая строка, затем идёт функция sleep()
, которая задерживает вывод на 2 секунды. Точно так же для следующего print мы используем sleep на 5 секунд.
Рассмотрим пример использования sleep()
для создания промежутка времени. Мы используем функцию time()
, чтобы узнать текущее время, и localtime()
, чтобы получить текущие дату и время в конкретной местности. Кроме того, есть функция strftime()
(«string from time»), которая возвращает время в виде строки в указанном формате.
В результате интервал между двумя моментами времени составил две секунды.
Подписывайтесь на канал 👉@pythonofff
Как объединить словари в Python с помощью метода dict.update()
Самый очевидный путь – найти уже готовую функцию, то есть посмотреть на то, какие есть встроенные методы у словарей. Если вы исследуете класс словарей dict, вы найдете много различных методов. Один из них — метод update(), который можно использовать для «вливания» одного словаря в другой. Он нам и нужен!
Подписывайтесь на канал 👉@pythonofff
MBA в Школе Бизнеса "Синергия"
Курсы управления и предпринимательства
Рост дохода после обучения от 43% ⚡
Обучение для руководителей
Узнать больше
#реклама 16+
synergy.ru
О рекламодателе
Сортировка списков
В Python есть два встроенных способа для сортировки списков — функция sorted() и метод list.sort(). Результат в обоих случаях одинаков, но всё же есть нюансы.
Функция sorted() принимает на вход аргумент в виде списка, а возвращает уже новый, отсортированный список. При этом исходный список не изменяется.
Метод sort() в свою очередь применяется к списку, изменяет его непосредственно и ничего не возвращает.
Подписывайтесь на канал 👉@pythonofff
Использование изменяемых типов для аргументов, устанавливаемых по умолчанию
Распространенная проблема возникает при назначении изменяемых типов данных для аргументов по умолчанию.
Python оценивает значения по умолчанию для изменяемых типов данных только один раз, во время создания функции. Он не будет инициализировать значение по умолчанию для любого последующего вызова.
Вы можете не заметить ничего необычного, если выполняете только один вызов функции в своем коде, однако, если вы вызовете её второй раз, Python будет использовать значение по умолчанию, вычисленное во время первого вызова.
Подписывайтесь на канал 👉@pythonofff
Курс по Java-разработке с гарантией трудоустройства
Стань Java-разработчиком за 9 месяцев.
В финале курса гарантированное трудоустройство с зарплатой от 100 тыс. рублей. Все условия будут закреплены в твоем договоре с Kata Academy
Главное про курс по Java:
— обучение до уровня junior+ или middle
— оплата курса после трудоустройства из фактической зарплаты — трудоустройство в Москве или Санкт-Петербурге
— в программе курса: теория, практика, групповой проект, подготовка к трудоустройству
— поддержка менторов, HR-консультантов, комьюнити
— выпускник получает минимум три оффера на работу
— минимальная зарплата сразу после курса — 100 тыс. рублей, средняя зарплата выпускников через год после курса — 221 тыс. рублей
Для поступления нужно сделать тестовое задание. Оставь заявку по ссылке!
Узнать больше
#реклама 16+
kata.academy
О рекламодателе
Превращаем текст в речь
На Python есть классная библиотека gTTS (Google Text-to-Speech), которая взаимодействует с Google Translate's text-to-speech API и позволяет делать из текста аудиофайлы. Пакет как всегда устанавливается через pip.
При создании экземпляра класса gTTS мы передаем исходный текст первым аргументом. Также можно передать опциональный аргумент, отвечающий за язык, который по умолчанию является английским.
Сохранить полученный результат можно с помощью метода save, в который передаем название файла.
Подписывайтесь на канал 👉@pythonofff
Защищаем исходный код обфускацией
Обфускация кода — это превращение исходного кода в нечитаемый для человека вид, при этом сохраняя всю функциональность программы.
Цель подобных действий заключается в защите скриптов. Обфускация делает анализ кода крайне сложным, а иногда и невозможным.
Таким образом, другим разработчикам становится проблематично получить и понять ваш исходный код для того, чтобы, например, взломать программу.
В Python есть отличная библиотека pyarmor, предназначенная именно для этого. Пример использования этого пакета в терминале представлен выше на картинке.
Подписывайтесь на канал 👉@pythonofff
Превращаем текст в речь
На Python есть классная библиотека gTTS (Google Text-to-Speech), которая взаимодействует с Google Translate's text-to-speech API и позволяет делать из текста аудиофайлы. Пакет как всегда устанавливается через pip.
При создании экземпляра класса gTTS мы передаем исходный текст первым аргументом. Также можно передать опциональный аргумент, отвечающий за язык, который по умолчанию является английским.
Сохранить полученный результат можно с помощью метода save, в который передаем название файла.
Подписывайтесь на канал 👉@pythonofff
Защищаем исходный код обфускацией
Обфускация кода — это превращение исходного кода в нечитаемый для человека вид, при этом сохраняя всю функциональность программы.
Цель подобных действий заключается в защите скриптов. Обфускация делает анализ кода крайне сложным, а иногда и невозможным.
Таким образом, другим разработчикам становится проблематично получить и понять ваш исходный код для того, чтобы, например, взломать программу.
В Python есть отличная библиотека pyarmor, предназначенная именно для этого. Пример использования этого пакета в терминале представлен выше на картинке.
Подписывайтесь на канал 👉@pythonofff
Получаем информацию по IP
Недавно наткнулся на интересный пакет ip2geotools, с помощью которого можно получить геолокацию по IP из нескольких баз данных. Устанавливается он через пакетный менеджер pip.
Метод get из класса DbIpCity, который представляет некоммерческую базу данных, позволяет получить всю необходимую информацию по желаемому IP бесплатно.
Атрибуты city, region, country хранят в себе информацию о городе, регионе и стране. А обратившись к атрибутам latitude и longitude можно получить широту и долготу.
Подписывайтесь на канал 👉@pythonofff
Очистка элементов в последовательности
Встроенный модуль itertools был создан для работы с более сложными случаями итераторов. Плюс модуля в том, что он быстро работает и оптимизирован в плане памяти.
Иногда возникает необходимость в удалении ненужных объектов последовательности. Как раз для этого и используют itertools, а именно метод compress.
Первым аргументом передается какой-либо контейнер, например список. Вторым аргументом — логические значения, соответствующие элементам в последовательности.
Если логическое значения равно True или 1, то элемент сохраняется в последовательности, в противном случае — удаляется из нее.
Подписывайтесь на канал 👉@pythonofff
Подборка Telegram каналов для программистов
Системное администрирование 📌
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux
/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT.
/channel/phis_mat Обучающие видео, книги по Физике и Математике
/channel/php_lib Библиотека PHP программиста 👨🏼💻👩💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста
1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus
Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах
GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
/channel/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
/channel/game_devv Все о разработке игр
Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT
Чат программистов📌
/channel/developers_ru
Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов
БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика
Шутки программистов 📌
/channel/itumor Шутки программистов
Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров
Английский 📌
/channel/UchuEnglish Английский с нуля
Математика 📌
/channel/Pomatematike Канал по математике
Excel лайфхак📌
/channel/Excel_lifehack
Наличие дублей
Проверяет, есть ли в списке повторяющиеся значения, пользуясь тем, что set()содержит только уникальные элементы
Подписывайтесь на канал 👉@pythonofff
Разница между списками
Возвращает разницу между двумя списками после применения функции к каждому элементу обоих списков.
Подписывайтесь на канал 👉@pythonofff
Генераторы эндотермического газа RX!
Быстрый срок поставки: 2-6 месяцев.
Гарантированный сервис на всей территории РФ.
Безопасность в эксплуатации.
Точный контроль соотношения газов по компонентам газовой смеси.
Узнать больше
#реклама
endogen.a-mz.ru
О рекламодателе
Форматируем строку для URL-адреса
Для начала стоит вспомнить, что слаг (slug) — это уникальная строка-идентификатор, понятная человеку и содержащая только "безопасные" символы: латинские символы в нижнем регистре, цифры и дефис.
Чаще всего такое понятие можно встретить в контексте URL-адресов. Например, можно формировать слаг из названия какой-нибудь статьи и вставлять его в ссылку, чтобы людям было понятно, куда они переходят.
Выше в коде мы написали простую функцию, где использовали методы lower() для приведения в нижний регистр и strip() для удаления пробелов слева и справа.
Также для удаления некоторых символов и замены на знак дефиса были использованы регулярные выражения и встроенный пакет re для работы с ними.
Подписывайтесь на канал 👉@pythonofff
Удаление специальных символов из строки с применением метода sub из пакета re
Давайте воспользуемся функцией sub из пакета re, чтобы удалить специальные символы.
Метод sub() используется для гибкой замены одних символов другими.
Подписывайтесь на канал 👉@pythonofff
Рост и Результат: путь к успешному бизнесу от практика
Telegram канал Юлии Трус для предпринимателей, которые хотят стабильно расти в прибыли, основываясь на расчетах и цифрах. Максимально просто раскладываю как и что считать и делать.
Вы найдете много бесплатных материалов, готовых алгоритмов, советов и кейсов других предпринимателей в закрепленных записях.
А также личные истории и опыт Юлии, основанные на 22 годах построения бизнесов в различных нишах.
Подписывайтесь на канал и давайте расти вместе!
Подписаться
#реклама
О рекламодателе
Используйте dict.get() вместо dict[]
Есть несколько способов получения значений из словарей, и даже по такой теме разработчики часто спорят.
Многие получают значения по ключам через квадратные скобки, но если такого ключа нет, то будет вызвано исключение.
Поэтому мы считаем, что лучше использовать метод get у словарей. Его основной плюс заключается в том, что он принимает опциональный аргумент, отвечающий за значение по умолчанию.
Таким образом, если значение по ключу не найдено, то вернется дефолтное значение.
В итоге, мы убираем возможные ошибки в случае, если нужных ключей в словаре нет.
Подписывайтесь на канал 👉@pythonofff
Обратный список и строка
Скорее всего, вы используете обратную функцию для инверсионной записи списков или строк. Но знаете ли вы, как осуществить инверсию более эффективным способом?
Подписывайтесь на канал 👉@pythonofff
Генераторные выражения в Python
Для создания генераторов на скорую руку можно использовать выражения (как и для генераторов списка).
Подписывайтесь на канал 👉@pythonofff
Обратный список и строка
Скорее всего, вы используете обратную функцию для инверсионной записи списков или строк. Но знаете ли вы, как осуществить инверсию более эффективным способом?
Подписывайтесь на канал 👉@pythonofff
Генераторные выражения в Python
Для создания генераторов на скорую руку можно использовать выражения (как и для генераторов списка).
Подписывайтесь на канал 👉@pythonofff
Проверка использования памяти объектом
Возвращает размер объекта в байтах.
Если указано значение по умолчанию, то оно вернется, если объект не предоставляет способа получить размер. В противном случае возникнет исключение TypeError.
Getsizeof() вызывает метод объекта sizeof и добавляет размер дополнительной информации, которая хранится для сборщика мусора, если он используется.
Подписывайтесь на канал 👉@pythonofff
Объединение двух словарей
В Python 2 для соединения двух словарей мы использовали метод update(). В Python 3.5 процесс еще проще.
В этом же скрипте объединены два словаря. В случае пересечения используются значения из второго словаря.
Подписывайтесь на канал 👉@pythonofff
Склеивание n строк в одну
С помощью этого фрагмента можно сильно сэкономить память. Достаточно записать строку n раз без использования циклов
Подписывайтесь на канал 👉@pythonofff
Время исполнения программы
Зачастую требуется замерить время исполнения кода, чтобы понять, насколько оптимальное решение было выбрано.
Как вариант, можно воспользоваться функцией time из модуля time, которая возвращает текущее время в формате Unix.
Перед исполнением нашего кода сохраним начальное время, а после — конечное. Путем вычета первого из второго и получим время исполнения программы.
Использование time.time() — не самый точный и лучший вариант, но, например, для быстрого сравнения двух разных частей кода подходит хорошо.
Подписывайтесь на канал 👉@pythonofff
Списковые включения
На основе итерируемых объектов можно удобно и без циклов строить списки в одну строчку — такой синтаксис называется списковыми включениями.
Сейчас подробнее разберем именно списки, но по такому же принципу можно создавать и словари.
В квадратных скобках вы пишите самую обычную конструкцию цикла for, но само выражение ставите перед ключевым словом for. Также можно добавлять условия в конце записи.
Как правило, списковые включения работают заметно быстрее, чем циклы. Однако, злоупотреблять этим не рекомендуется, так как это зачастую снижает читаемость кода.
Подписывайтесь на канал 👉@pythonofff
Получаем информацию о памяти на диске
Со встроенным модулем shutil многие уже, вероятно, знакомы, но его обычно используют в контексте задач копирования, переноса файлов и папок.
Но с помощью shutil мы можем даже получить информацию о памяти на жестком диске компьютера. Метод disk_usage возвращает количество всей, занятой и свободной памяти.
Так как все три значения возвращаются в байтах, в примере мы их перевели и вывели в гигабайты для лучшей наглядности.
Подписывайтесь на канал 👉@pythonofff