Сделал управление рукой в игре Subway Surfers.
При помощи Python и компьютерного зрения на OpenCV!
https://youtu.be/DLYO_4TtqMs
При помощи Python и компьютерного зрения на OpenCV!
https://youtu.be/DLYO_4TtqMs
YouTube
Subway Surfers но управляю СВОЕЙ РУКОЙ вместо клавиатуры :D
Сделал управление рукой в игре Subway Surfers.
При помощи Python и компьютерного зрения на OpenCV!
Кликайте по ссылке в описании https://cutt.ly/FHuiOrp и приобретайте билет на PHDays 2022 - по промокоду HOWDYHO со скидкой 23%. Поторопитесь, их количество…
При помощи Python и компьютерного зрения на OpenCV!
Кликайте по ссылке в описании https://cutt.ly/FHuiOrp и приобретайте билет на PHDays 2022 - по промокоду HOWDYHO со скидкой 23%. Поторопитесь, их количество…
👍32😁1
This media is not supported in your browser
VIEW IN TELEGRAM
крутящийся пончик который написан на Python!
похожий пончик был на C, но теперь появился и на Python!
всего 114 строк и у тебя будет такой же :3
он сделан благодаря математическим вычислениям с помощью библиотеки math, а поле было создано с помощью библиотеки pygame.
код можно посмотреть здесь
похожий пончик был на C, но теперь появился и на Python!
всего 114 строк и у тебя будет такой же :3
он сделан благодаря математическим вычислениям с помощью библиотеки math, а поле было создано с помощью библиотеки pygame.
код можно посмотреть здесь
👍69🤯18🔥12🎉1
Matplotlib — одна из основных библиотек для выстраивания графиков.
С помощью Matplotlib можно создавать любые визуализации, например: гистограммы, столбцовые диаграммы, точечные диаграммы и другое.
Так же данная библиотека облегчает использование меток, сеток, легенд и других объектов форматирования.
Matplotlib написан и поддерживался в основном Джоном Хантером и распространяется на условиях BSD-подобной лицензии.
Maptlotlib это поистине функциональная библиотека, речь идёт обо всём, что можно нарисовать 🔥
Ставится командой ⚙
Документация и примеры кода здесь.
С помощью Matplotlib можно создавать любые визуализации, например: гистограммы, столбцовые диаграммы, точечные диаграммы и другое.
Так же данная библиотека облегчает использование меток, сеток, легенд и других объектов форматирования.
Matplotlib написан и поддерживался в основном Джоном Хантером и распространяется на условиях BSD-подобной лицензии.
Maptlotlib это поистине функциональная библиотека, речь идёт обо всём, что можно нарисовать 🔥
Ставится командой ⚙
pip install matplotlib
Документация и примеры кода здесь.
👍35🔥3😱3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Pyxel — это игровой движок для Python в стиле ретро.
Благодаря своей простоте, вдохновленной старыми игровыми консолями - вы можете легко создавать игры в стиле пиксель-арт.
Данный модуль так же поддерживает джойстик, поэтому вам даже не нужна клавиатура и мышь 🤯
В модуле есть редактор изображений и музыки, поэтому никуда отлучаться не нужно :3
Есть 2 версии Pyxel, одна автономная, а другая - нет, но сейчас мы говорим про модуль Python.
Ставится командой ⚙
Документация и примеры кода здесь.
Благодаря своей простоте, вдохновленной старыми игровыми консолями - вы можете легко создавать игры в стиле пиксель-арт.
Данный модуль так же поддерживает джойстик, поэтому вам даже не нужна клавиатура и мышь 🤯
В модуле есть редактор изображений и музыки, поэтому никуда отлучаться не нужно :3
Есть 2 версии Pyxel, одна автономная, а другая - нет, но сейчас мы говорим про модуль Python.
Ставится командой ⚙
pip install -U pyxel
Документация и примеры кода здесь.
🤯33👍24🔥3❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Manim — это библиотека для того, чтобы создавать точные математические анимации!
Сложнейшие математические графики, симуляции и точные анимации — всё это есть в Manim!
Например, на гифке выше вы можете наблюдать за "гармоническим маятником" который создан при помощи Manim. Красиво, не правда ли?
Ставится командой ⚙
Сложнейшие математические графики, симуляции и точные анимации — всё это есть в Manim!
Например, на гифке выше вы можете наблюдать за "гармоническим маятником" который создан при помощи Manim. Красиво, не правда ли?
Ставится командой ⚙
pip install manim
Документация и примеры кода здесь👍35❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Симуляция гравитации :3
Очень красивая реализация гравитационного поля. так же как и пончик, эта симуляция создана с помощью математических вычислений.
Использованные модули: pygame, math и random. pygame для поля, math для математических вычислений а random для диопазона.
Есть 3 представленных формы для симуляции, а именно: line, square и circle. Думаю по желанию можно добавить ещё несколько форм :)
Всё выглядит безумно круто 🔥
Код вы можете найти здесь
Очень красивая реализация гравитационного поля. так же как и пончик, эта симуляция создана с помощью математических вычислений.
Использованные модули: pygame, math и random. pygame для поля, math для математических вычислений а random для диопазона.
Есть 3 представленных формы для симуляции, а именно: line, square и circle. Думаю по желанию можно добавить ещё несколько форм :)
Всё выглядит безумно круто 🔥
Код вы можете найти здесь
🔥43👍7
Type hinting - это аннотация типов для простого чтения кода.
Сверху приведён пример type hinting'a, там мы присваиваем двум аргументам тип данных "int" через двоеточие, стрелка "->" указывает, что функция add() вернёт int.
Для чего нужен type hinting? С type hinting'ом намного легче понять код и делать рефакторинг в будущем.
Раньше, когда на Python писали в основном небольшие скрипты, это не было такой уж острой проблемой, потому что всю программу за разумный промежуток времени можно было охватить взглядом и понять. В последнее время язык стал значительно популярнее.
Нужно отметить, что type hinting — это именно возможность, а не обязанность. У программиста есть выбор — добавлять информацию о типах или нет.
Чтобы узнать больше — читайте документацию здесь.
Сверху приведён пример type hinting'a, там мы присваиваем двум аргументам тип данных "int" через двоеточие, стрелка "->" указывает, что функция add() вернёт int.
Для чего нужен type hinting? С type hinting'ом намного легче понять код и делать рефакторинг в будущем.
Раньше, когда на Python писали в основном небольшие скрипты, это не было такой уж острой проблемой, потому что всю программу за разумный промежуток времени можно было охватить взглядом и понять. В последнее время язык стал значительно популярнее.
Нужно отметить, что type hinting — это именно возможность, а не обязанность. У программиста есть выбор — добавлять информацию о типах или нет.
Чтобы узнать больше — читайте документацию здесь.
👍32❤1
Typing — это библиотека которая обеспечивает поддержку выполнения аннотации типов.
В предыдущем посте мы рассмотрели аннотацию типов, сейчас же мы рассмотрим вспомогательную библиотеку typing для работы с аннотацией типов.
Для чего вам нужна вспомогательная библиотека? Как минимум для того, что это сильно облегчает процесс написания аннотации типов.
На фотографии выше видно, как мы используем Union и с помощью него создаём тип интонации, где мы указываем список типов в квадратных скобках а затем используем эти 2 типа, а именно float и int.
Библиотека довольно большая, поэтому документация и примеры здесь.
В предыдущем посте мы рассмотрели аннотацию типов, сейчас же мы рассмотрим вспомогательную библиотеку typing для работы с аннотацией типов.
Для чего вам нужна вспомогательная библиотека? Как минимум для того, что это сильно облегчает процесс написания аннотации типов.
На фотографии выше видно, как мы используем Union и с помощью него создаём тип интонации, где мы указываем список типов в квадратных скобках а затем используем эти 2 типа, а именно float и int.
Библиотека довольно большая, поэтому документация и примеры здесь.
👍26❤1
🐍 Совет по Python №7.
Используйте понятные названия.
Уметь давать понятные названия — это один из самых важных навыков хорошего программиста.
Что такое понятные названия?
Это такие имена переменных, которые четко отражают их содержимое, то есть то - что они хранят.
То же самое относится и к файлам, функциям, классам и т.д.
Так же понятные названия не изменяют вывод, как многие могли подумать.
Это облегчает работу с кодом в будущем, и для довольно крупных проектов это очень важный момент!
Как видите, на скрине выше - в переменной "
Нужно отметить, что понятные названия — это именно возможность, а не обязанность.
У программиста есть выбор добавлять информацию в названиях или нет.
Используйте понятные названия.
Уметь давать понятные названия — это один из самых важных навыков хорошего программиста.
Что такое понятные названия?
Это такие имена переменных, которые четко отражают их содержимое, то есть то - что они хранят.
То же самое относится и к файлам, функциям, классам и т.д.
Так же понятные названия не изменяют вывод, как многие могли подумать.
Это облегчает работу с кодом в будущем, и для довольно крупных проектов это очень важный момент!
Как видите, на скрине выше - в переменной "
name"
интуитивно понятно что там находится имя, но вот про переменную "a"
ничего сказать не выйдет :(Нужно отметить, что понятные названия — это именно возможность, а не обязанность.
У программиста есть выбор добавлять информацию в названиях или нет.
👍65😁5🤔1
geopy — это модуль для работы с геолокациями.
Данный модуль позволяет находить координаты городов, стран и достопримечательностей по всему миру!
Модуль позволяет: определить адрес места по координатам, определить координаты по адресу места и расчитать растояние между двумя точками, что может быть полезно в некоторых проектах.
На примере выше мы видим, как мы указываем имя своему приложению а затем ищем и выводим координаты Японии 🇯🇵
Geopy является клиентом для популярных сервисов геокодирования, поэтому и в своей работе использует сторонние геокодеры такие как: Google Geocoding API, OpenStreetMap и много других сервисов геокодирования.
Ставится командой ⚙
Документация и примеры кода здесь.
Данный модуль позволяет находить координаты городов, стран и достопримечательностей по всему миру!
Модуль позволяет: определить адрес места по координатам, определить координаты по адресу места и расчитать растояние между двумя точками, что может быть полезно в некоторых проектах.
На примере выше мы видим, как мы указываем имя своему приложению а затем ищем и выводим координаты Японии 🇯🇵
Geopy является клиентом для популярных сервисов геокодирования, поэтому и в своей работе использует сторонние геокодеры такие как: Google Geocoding API, OpenStreetMap и много других сервисов геокодирования.
Ставится командой ⚙
pip install geopy
Документация и примеры кода здесь.
👍25🤔4❤2
Обновлённая и расширенная версия самого нескучного урока по Python!)
Выучи за 1 час и уже пили свои проги и ботов на этом крутом языке ;)
https://www.youtube.com/watch?v=P0czP5MEbYQ
Выучи за 1 час и уже пили свои проги и ботов на этом крутом языке ;)
https://www.youtube.com/watch?v=P0czP5MEbYQ
YouTube
Учим Python за 1 час! #ОтПрофессионала | HD Remake
💗 Получи профессию python-разработчика с нуля в SkillFactory:
https://go.skillfactory.ru/toGEPQ
Скидка 45% по промокоду ХАУДИ до 30.06.2022 г.
Обновлённая и расширенная версия самого нескучного урока по Python!) Выучи за 1 час и уже пили свои проги и ботов…
https://go.skillfactory.ru/toGEPQ
Скидка 45% по промокоду ХАУДИ до 30.06.2022 г.
Обновлённая и расширенная версия самого нескучного урока по Python!) Выучи за 1 час и уже пили свои проги и ботов…
👍59🔥14😁4😢1
Folium — библиотека для визуализации данных на карте!
В предыдущем посте мы рассмотрели модуль geopy который был создан для работы с геолокациями, оттуда мы взяли координаты Японии, поэтому сегодня будем использовать именно эти координаты.
Folium позволяет как и привязать данные к карте для визуализации фоновых картограмм, так и передавать векторные, растовые и HTML визуализации в качестве маркеров на карте.
На примере выше мы видим, как в переменную "m" передаём координаты Японии и зумим так, как нам надо.
Далее в переменную tooltip передаётся текст, который будет показываться при наводке, добавляем маркер на заданные координаты и сохраняем в файл "xo_py.html".
То что у нас вышло - тут :3
Библиотека имеет ряд встроенных наборов тайлов от OpenStreetMap, Mapbox и Stamen и поддерживает пользовательские наборы тайлов с ключами API Mapbox или Cloudmade. folium поддерживает наложения изображений, видео, GeoJSON и TopoJSON.
Ставится командой ⚙
В предыдущем посте мы рассмотрели модуль geopy который был создан для работы с геолокациями, оттуда мы взяли координаты Японии, поэтому сегодня будем использовать именно эти координаты.
Folium позволяет как и привязать данные к карте для визуализации фоновых картограмм, так и передавать векторные, растовые и HTML визуализации в качестве маркеров на карте.
На примере выше мы видим, как в переменную "m" передаём координаты Японии и зумим так, как нам надо.
Далее в переменную tooltip передаётся текст, который будет показываться при наводке, добавляем маркер на заданные координаты и сохраняем в файл "xo_py.html".
То что у нас вышло - тут :3
Библиотека имеет ряд встроенных наборов тайлов от OpenStreetMap, Mapbox и Stamen и поддерживает пользовательские наборы тайлов с ключами API Mapbox или Cloudmade. folium поддерживает наложения изображений, видео, GeoJSON и TopoJSON.
Ставится командой ⚙
pip install folium
Документация и примеры кода здесь.👍35🔥4❤1🤯1
Генератор — это функция, которая возвращает объект итератора.
Она выглядит как обычная функция, за исключением того, что она содержит выражение yield для создания серии значений, которые можно использовать в цикле for … in или которые можно извлечь по одному с помощью функции next().
Сверху самый простой пример функции генератора.
Любая функция содержащая ключевое слово yield, является функцией генератора.
Генераторы это отличный способ улучшить производительность кода, и они очень просты в использовании!
Когда вызывается функция генератора, то она не возвращает единственное значение, как это делает оператор return. Вместо этого она возвращает объект генератора, который поддерживает протокол итератора.
Разница между yield и оператором return заключается в том, что при достижении выхода, состояние выполнения генератора приостанавливается и локальные переменные сохраняются. При следующем вызове метода генератора next() функция возобновит свое выполнение.
Подробнее о генераторах вы можете почитать здесь.
Она выглядит как обычная функция, за исключением того, что она содержит выражение yield для создания серии значений, которые можно использовать в цикле for … in или которые можно извлечь по одному с помощью функции next().
Сверху самый простой пример функции генератора.
Любая функция содержащая ключевое слово yield, является функцией генератора.
Генераторы это отличный способ улучшить производительность кода, и они очень просты в использовании!
Когда вызывается функция генератора, то она не возвращает единственное значение, как это делает оператор return. Вместо этого она возвращает объект генератора, который поддерживает протокол итератора.
Разница между yield и оператором return заключается в том, что при достижении выхода, состояние выполнения генератора приостанавливается и локальные переменные сохраняются. При следующем вызове метода генератора next() функция возобновит свое выполнение.
Подробнее о генераторах вы можете почитать здесь.
👍31❤2
Googletrans — это бесплатная и неограниченная библиотека Python, в которой реализован API Google Translate.
Что умеет данная библиотека?
Данная библиотека умеет переводить текст со 106-ти языков 🤯 (включая русский, украинский и, конечно же, английский), обнаруживать языки, писать транскрипция и другие полезные функции.
Где это может пригодится?
Библиотека может пригодится в различных ботах, сайтах, приложениях и тому подобное.
В связке с библиотекой gTTS (библиотека для озвучивания текста от Google) может получиться полноценная программа для перевода текста 🔥
Ставится командой ⚙
Документация и примеры кода здесь.
Что умеет данная библиотека?
Данная библиотека умеет переводить текст со 106-ти языков 🤯 (включая русский, украинский и, конечно же, английский), обнаруживать языки, писать транскрипция и другие полезные функции.
Где это может пригодится?
Библиотека может пригодится в различных ботах, сайтах, приложениях и тому подобное.
В связке с библиотекой gTTS (библиотека для озвучивания текста от Google) может получиться полноценная программа для перевода текста 🔥
Ставится командой ⚙
pip install googletrans
Документация и примеры кода здесь.
👍56🤩10🔥1
zip() — функция которая создает итератор кортежей.
Более формально: функция zip() возвращает итератор кортежей, где i-й кортеж содержит i-й элемент из каждой итерации аргументов.
В функции zip() элементы не будут обрабатываться, пока не будет повторена итерация, например циклом for/in или заключением в список list(zip()).
Следует учитывать, что итерации, передаваемые в zip(), могут иметь разную длину, иногда намеренно, а иногда из-за ошибки в коде.
По умолчанию функция zip() останавливается, когда исчерпывается самая короткая итерация. Она проигнорирует оставшиеся элементы в более длинных итерациях, обрезая результат до длины самой короткой итерации как показано на примере выше.
Более подробную информацию про функцию zip() можно прочитать здесь.
Более формально: функция zip() возвращает итератор кортежей, где i-й кортеж содержит i-й элемент из каждой итерации аргументов.
В функции zip() элементы не будут обрабатываться, пока не будет повторена итерация, например циклом for/in или заключением в список list(zip()).
Следует учитывать, что итерации, передаваемые в zip(), могут иметь разную длину, иногда намеренно, а иногда из-за ошибки в коде.
По умолчанию функция zip() останавливается, когда исчерпывается самая короткая итерация. Она проигнорирует оставшиеся элементы в более длинных итерациях, обрезая результат до длины самой короткой итерации как показано на примере выше.
Более подробную информацию про функцию zip() можно прочитать здесь.
👍30😢1
calendar — модуль для вывода календаря в Python!
Это одновременно простой, но и функциональный модуль для вывода календаря.
В модуле calendar есть функция month(), которая вернёт календарь указанного месяца в виде строки, как показано на примере выше.
Если строки вас не устраивают, то в модуле есть куча разных методов для получения самых разных итераторов. Так же можно получить календарь в виде HTML.
Стоит отметить что модуль является встроенным, отдельно его устанавливать не нужно :)
Документация и примеры кода здесь.
Это одновременно простой, но и функциональный модуль для вывода календаря.
В модуле calendar есть функция month(), которая вернёт календарь указанного месяца в виде строки, как показано на примере выше.
Если строки вас не устраивают, то в модуле есть куча разных методов для получения самых разных итераторов. Так же можно получить календарь в виде HTML.
Стоит отметить что модуль является встроенным, отдельно его устанавливать не нужно :)
Документация и примеры кода здесь.
👍57❤8
Wikipedia — это модуль для Python, который является оболочкой Wikipedia.
Он поддерживает: извлечение текстов, разделов, ссылок, категорий, переводов и т. д. из Википедии.
Цель модуля Wikipedia состоит в том, чтобы предоставить простой и удобный парсер для получения информации из Википедии.
Где может пригодится данный модуль?
Данный модуль универсален и подойдёт практически для всего того, что нужно найти. Например, в голосовом помощнике Alexa уже давно реализован поиск по Википедии, что не может не радовать.
Модуль имеет возможность получить код html-страницы, что может быть полезно в веб-сервисах.
Можно использовать как для личного, так и для коммерческого использования :)
Стоит отметить, что поиск информации осуществляется только при наличии подключения к сети, иначе - ничего не выйдет.
Ставится командой ⚙
Документация и примеры кода здесь.
Он поддерживает: извлечение текстов, разделов, ссылок, категорий, переводов и т. д. из Википедии.
Цель модуля Wikipedia состоит в том, чтобы предоставить простой и удобный парсер для получения информации из Википедии.
Где может пригодится данный модуль?
Данный модуль универсален и подойдёт практически для всего того, что нужно найти. Например, в голосовом помощнике Alexa уже давно реализован поиск по Википедии, что не может не радовать.
Модуль имеет возможность получить код html-страницы, что может быть полезно в веб-сервисах.
Можно использовать как для личного, так и для коммерческого использования :)
Стоит отметить, что поиск информации осуществляется только при наличии подключения к сети, иначе - ничего не выйдет.
Ставится командой ⚙
pip install wikipedia
Документация и примеры кода здесь.
🤩29👍9❤1🔥1
loguru — это библиотека, целью которой является приятное ведение логирования в Python!
Перестаньте уже использовать print(), используйте логирование!
В Python уже существует библиотека для логирования logging, но у неё есть одна проблема — время, которое мы тратим на настройку конфига, да и работа с ним затрудняется, если конфиг становится больше.
Кроме того, эта библиотека предназначена для того, чтобы сделать ведение логов Python менее болезненным, добавив ряд полезных функций, которые устраняют предостережения стандартных средств ведения логирования. Использование журналов в вашем приложении должно быть автоматическим, Loguru пытается сделать его одновременно приятным и мощным.
В loguru есть: асинхронность, стек вызовов, отправка уведомлений на почту и понятность :3
Стоит отметить, что основная концепция loguru заключается в том, что существует только один логгер.
Ставится командой ⚙
Перестаньте уже использовать print(), используйте логирование!
В Python уже существует библиотека для логирования logging, но у неё есть одна проблема — время, которое мы тратим на настройку конфига, да и работа с ним затрудняется, если конфиг становится больше.
Кроме того, эта библиотека предназначена для того, чтобы сделать ведение логов Python менее болезненным, добавив ряд полезных функций, которые устраняют предостережения стандартных средств ведения логирования. Использование журналов в вашем приложении должно быть автоматическим, Loguru пытается сделать его одновременно приятным и мощным.
В loguru есть: асинхронность, стек вызовов, отправка уведомлений на почту и понятность :3
Стоит отметить, что основная концепция loguru заключается в том, что существует только один логгер.
Ставится командой ⚙
pip install loguru
Документация и примеры кода здесь.👍36❤3
validate_email — это простой модуль для валидации email-адресов.
Модуль предоставляет одну основную одноименную функцию, предназначенную для валидации адреса, с помощью уже написанных регулярных выражений. Также в функции реализована проверка mx-записи у сервера и существования переданного адреса, за это отвечают необязательные параметры-флаги функции verify и check_mx.
Функция validate_email проверяет не на существование email-адреса, а возможность на его существования. На фото выше приведён пример.
Модуль отлично подойдёт для различных форм регистрации/входа и в различных других проектах.
Стоит отметить, что при обращении validate_email к DNS записям необходимо предварительно установить модуль py3dns.
Ставится командой ⚙
Простенькая документация и примеры кода здесь.
Модуль предоставляет одну основную одноименную функцию, предназначенную для валидации адреса, с помощью уже написанных регулярных выражений. Также в функции реализована проверка mx-записи у сервера и существования переданного адреса, за это отвечают необязательные параметры-флаги функции verify и check_mx.
Функция validate_email проверяет не на существование email-адреса, а возможность на его существования. На фото выше приведён пример.
Модуль отлично подойдёт для различных форм регистрации/входа и в различных других проектах.
Стоит отметить, что при обращении validate_email к DNS записям необходимо предварительно установить модуль py3dns.
Ставится командой ⚙
pip install validate_email
Простенькая документация и примеры кода здесь.
👍37❤1