Приветствуем!
Вот-вот закончится приём работ для конкурса!
Дедлайн сдачи пуллреквестов - 19:00 по МСК!
На данный момент работы сдали четыре участника:
- Виктор Вангели
- Виктор Королев
- Ηe_ΙΙροcΤο_Tακ
- Анастасия Бастрыкина
Торопитесь! Ещё можно успеть!
После окончания приёма работ будет опубликован пост со ссылками на работы и голосованием.
Также. Завтра в 18:00 по МСК будет будет стрим на котором посмотрим на отправленные варианты и разберём их.
Вот-вот закончится приём работ для конкурса!
Дедлайн сдачи пуллреквестов - 19:00 по МСК!
На данный момент работы сдали четыре участника:
- Виктор Вангели
- Виктор Королев
- Ηe_ΙΙροcΤο_Tακ
- Анастасия Бастрыкина
Торопитесь! Ещё можно успеть!
После окончания приёма работ будет опубликован пост со ссылками на работы и голосованием.
Также. Завтра в 18:00 по МСК будет будет стрим на котором посмотрим на отправленные варианты и разберём их.
🔥4👏1
Внезапно у нашего конкурса появился ещё один спонсор — Юрий Б.!
Он предложил интересный дополнительный розыгрыш «Везунчик на салфетке» среди выполнивших задание участников!
Все подробности и сам розыгрыш этого дополнительного приза (или призов?😉) состоится завтра на стриме!
Спешите! До закрытия приёма работ осталось не так много времени!
Он предложил интересный дополнительный розыгрыш «Везунчик на салфетке» среди выполнивших задание участников!
Все подробности и сам розыгрыш этого дополнительного приза (или призов?😉) состоится завтра на стриме!
Спешите! До закрытия приёма работ осталось не так много времени!
🔥6😱1
Приём работ для конкурса ОКОНЧЕН!
Представляю вам конкурсантов:
1. Виктор Вангели - Выполненная работа
2. Виктор Королев - Выполненная работа
3. Александр Вязников - Выполненная работа
4. Анастасия Бастрыкина - Выполненная работа
Проголосуйте за понравившийся вариант решения в опросе ниже!
Завтра в 18:00 на стриме мы разберём решения участников, а также разыграем среди них дополнительный приз 😉
Результаты будут подведены в среду в 19:00. По результатам голосования, победитель получит 2000 рублей!
Вариант от редакции доступен в основной ветке репозитория.
Представляю вам конкурсантов:
1. Виктор Вангели - Выполненная работа
2. Виктор Королев - Выполненная работа
3. Александр Вязников - Выполненная работа
4. Анастасия Бастрыкина - Выполненная работа
Проголосуйте за понравившийся вариант решения в опросе ниже!
Завтра в 18:00 на стриме мы разберём решения участников, а также разыграем среди них дополнительный приз 😉
Результаты будут подведены в среду в 19:00. По результатам голосования, победитель получит 2000 рублей!
Вариант от редакции доступен в основной ветке репозитория.
🔥6👍1👏1
Чьё решение вам понравилось больше?
Anonymous Poll
13%
1. Виктор Вангели
8%
2. Виктор Королев
53%
3. Александр Вязников
27%
4. Анастасия Бастрыкина
🔥15👏2😱1🤩1
Найдите ошибку в коде ниже и исчерпывающим образом объясните ее в комментариях.
#python #код_на_салфетке #найди_ошибку
#python #код_на_салфетке #найди_ошибку
🤯4
Вчера мы опубликовали четвёртую задачу на поиск ошибки в коде. К сожалению, правильного ответа в комментариях не было ☹️
Код задачи:
Разбор задачи.
Сперва разберём что делает код и как устроена задача.
В переменную
В функции
В функции
Затем увеличиваем число на единицу и возвращаем его.
В самом конце выводим результат в консоль.
А где ошибка?
Я думаю, на этапе разбора вы уже догадались, где ошибка. Если нет, то давайте запустим код:
Как видим, выводится ошибка
Всё дело в том, что в функции
Решается это достаточно просто. Необходимо вызвать функцию в блоке
Код задачи:
def get_number(number):
def increment_number():
nonlocal number
number += 1
return number
if number < 10:
return increment_number
return number
result = 12 / get_number(5)
print(result)
Разбор задачи.
Сперва разберём что делает код и как устроена задача.
В переменную
result помещаем результат деления числа 12 на вызов функции get_number с переданным аргументом 5.В функции
get_number в блоке if проверяем, если переданное число меньше 10-ти, возвращаем функцию increment_number, в противном случае возвращаем переданное в функцию число.В функции
increment_number оператором nonlocal открываем доступ к переменной number из внешней области видимости, т.е. из агрумента функции get_number.Затем увеличиваем число на единицу и возвращаем его.
В самом конце выводим результат в консоль.
А где ошибка?
Я думаю, на этапе разбора вы уже догадались, где ошибка. Если нет, то давайте запустим код:
result = 12 / get_number(5)
~~~^~~~~~~~~~~~~~~
TypeError: unsupported operand type(s) for /: 'int' and 'function'
Как видим, выводится ошибка
TypeError с сообщением, что делить число на функцию нельзя.Всё дело в том, что в функции
get_number в блоке if мы возвращаем не результат работы функции increment_number, т.е. не вызываем её, а саму функцию, ссылку на объект в памяти.Решается это достаточно просто. Необходимо вызвать функцию в блоке
if:def get_number(number):
def increment_number():
nonlocal number
number += 1
return number
if number < 10:
return increment_number() # <- или вызываем функцию тут
return number
result = 12 / get_number(5)()
print(result)
🔥3
К текстовому разбору подготовили новый Shorts!
https://youtube.com/shorts/9aCoeOe5xm8?feature=share
Будем благодарны, если вы поставите видео лайк и досмотрите его до конца. Спасибо!
https://youtube.com/shorts/9aCoeOe5xm8?feature=share
Будем благодарны, если вы поставите видео лайк и досмотрите его до конца. Спасибо!
🔥4👍2
Приветствуем!
Вот и подошёл к концу наш первый конкурс для начинающих программистов на Python!
За эти полторы недели произошло многое и главным местом событий оказался наш чат: https://t.iss.one/pressanybutton_chat
Мы пронаблюдали все стадии принятия поставленной задачи, обсуждали варианты написания, а потом решения.
Хотим поблагодарить всех участников, включая тех, кто попытался, но не смог найти силы или время для реализации, а также спонсоров этого мероприятия Сергея и Юрия.
Победителем становиться - Александр Вязников! Он получает от нас 2000 рублей!
Ссылки на работы участников доступны в этом посте: https://t.iss.one/press_any_button/790
Нам понравилось проводить подобное мероприятие и наверняка, в будущем будут и другие конкурсы! Как говориться - Stay tuned!
Если у вас есть идеи, предложения или вы хотите проспонсировать что-то подобное - пишите нам, мы открыты к диалогу.
Поддержать канал, чтобы было больше интересного контента и мероприятий можно:
- На нашем Boosty.
- В нашем Telegram-боте.
- Отправив донат в DonationAlerts.
Вот и подошёл к концу наш первый конкурс для начинающих программистов на Python!
За эти полторы недели произошло многое и главным местом событий оказался наш чат: https://t.iss.one/pressanybutton_chat
Мы пронаблюдали все стадии принятия поставленной задачи, обсуждали варианты написания, а потом решения.
Хотим поблагодарить всех участников, включая тех, кто попытался, но не смог найти силы или время для реализации, а также спонсоров этого мероприятия Сергея и Юрия.
Победителем становиться - Александр Вязников! Он получает от нас 2000 рублей!
Ссылки на работы участников доступны в этом посте: https://t.iss.one/press_any_button/790
Нам понравилось проводить подобное мероприятие и наверняка, в будущем будут и другие конкурсы! Как говориться - Stay tuned!
Если у вас есть идеи, предложения или вы хотите проспонсировать что-то подобное - пишите нам, мы открыты к диалогу.
Поддержать канал, чтобы было больше интересного контента и мероприятий можно:
- На нашем Boosty.
- В нашем Telegram-боте.
- Отправив донат в DonationAlerts.
🔥7👍2
Где применяются Python и C/C++ (часть 1)
Автор: Arduinum628
Вступление
Всем доброго дня! Сегодня мы поговорим об области применения Python и C/C++. Тема областей применения очень обширная, поэтому информация будет разделена на несколько статей. Отложите свои IDE, налейте чая, возьмите вкусняшек и расслабьтесь. Ибо код писать мы сегодня не будем =)
Прототипирование
Начнём с нашего высокоуровневого языка Python. Синтаксис языка Python простой как две копейки, что делает его идеальным вариантом для быстрого написания прототипа. Например, мы можем написать на нём прототип веб приложения. Из-за простоты и лаконичности его синтаксиса разрабатывать на нём действительно быстро. Ещё он высокоуровневый, поэтому мы можем сосредоточиться на архитектуре приложения, а не на железе ПК. Языки C/C++ не годятся для этой роли из-за того, что писать код на них гораздо сложнее. Кроме того, из-за их более большого синтаксиса писать на них гораздо дольше.
Автор: Arduinum628
Вступление
Всем доброго дня! Сегодня мы поговорим об области применения Python и C/C++. Тема областей применения очень обширная, поэтому информация будет разделена на несколько статей. Отложите свои IDE, налейте чая, возьмите вкусняшек и расслабьтесь. Ибо код писать мы сегодня не будем =)
Прототипирование
Начнём с нашего высокоуровневого языка Python. Синтаксис языка Python простой как две копейки, что делает его идеальным вариантом для быстрого написания прототипа. Например, мы можем написать на нём прототип веб приложения. Из-за простоты и лаконичности его синтаксиса разрабатывать на нём действительно быстро. Ещё он высокоуровневый, поэтому мы можем сосредоточиться на архитектуре приложения, а не на железе ПК. Языки C/C++ не годятся для этой роли из-за того, что писать код на них гораздо сложнее. Кроме того, из-за их более большого синтаксиса писать на них гораздо дольше.
🔥4
Прототипы нужны для проверки гипотез и идей на практике. Их часто используют на начальной стадии разработки продукта. Они помогают оценить работу и возможности продукта. Прототипы экономят время и ресурсы необходимые для разработки. Также прототип можно использовать для демонстрации работы продукта заказчику.
Прототипирование на Python обычно используют крупные компании такие как Яндекс. Не обязательно, чтобы код на Python был именно прототипом. Иногда спустя время рабочий код тоже могут переписать с Python на C++ для увеличения производительности. Это только пример, ибо Яндекс может писать много на каких языках. Почему же они переписывают код Python на C++? Всё очень просто. Микросервис на C++ работает гораздо быстрее и выдерживает гораздо больше нагрузки. Это делает связку Python и C++ хорошей для веб разработки. Код на C++ пишут, если важна скорость вычислений и количество запросов в секунду rps. Для сравнения: код, написанный на C++, может держать rps в 4 раза больше чем аналогичный на Python. В конце статьи я прикреплю ссылку на видео компании Яндекс с упоминанием об этом (момент на 16м 21с в видео).
Веб приложения это не единственное где вы можете написать прототип на Python, а затем переписать на C++. Также вы можете, например, написать Библиотеку для обработки изображений, алгоритмы машинного обучения, систему управления базой данных и тд. Количество областей для этого очень большое.
Веб приложения
Выше я уже слегка затронул тему веб приложений, а тут я её раскрою и конкретизирую. На Python обычно пишут бэкенд на таких фреймворках как Flask, Django, Fastapi, Streamlit. Затронем вкратце каждый из них чтоб было понятно какой из них выбрать для своей задачи.
Начнём с фреймворка Flask. Это лёгкий и модульный микрофреймворк. Он очень минималистичен и подходит для маленьких сайтов и веб приложений. Также на нём можно писать и большие приложения, где важна гибкость и кастомизация. Хорошая документация, работа с шаблонизатором Jinja2, работа с rest api, возможность использовать много разных библиотек и многое другое. Он подходит как для монолитной, так и для микросервисной архитектуры приложения. Минус его в том что он не поддерживает напрямую асинхронность. Однако есть возможность использовать его с ASGI сервером Uvicorn через адаптер WSGI-to-ASGI. Для работы с ним потребуется библиотека asgiref. Помните, что это не идеальное решение для асинхронности и высокой скорости. Ссылку на неё я оставлю в ссылках к статье.
Следующим на очереди у нас идёт большой фреймворк Django. Данный фреймворк нужен для написания веб сайтов и приложений на монолитной архитектуре. На нём можно быстро поднять стартап. У него есть всё необходимое, чтобы написать веб сайт в кратчайшие сроки. Тут вам и встроенная админка, поддержка orm, поддержка асинхронности и многое другое. Единственное, для чего он не подходит, это микросервисы. Однако к нему можно подключать сторонние микросервисы и боты. Получится монолит + микросервисы.
Далее идёт быстрый фреймворк Fastapi. Его я рекомендую использовать, когда вы хотите разделить свой проект на много микросервисов и когда вам важна скорость. Данный фреймворк начинает набирать популярность в компаниях из-за своей скорости, простоты и асинхронности. Также микросервисы обеспечивают высокую отказоустойчивость и надёжность работы сайтов и веб приложений. Обычно микросервисная архитектура не подходит маленьким проектам из-за сложности проектирования данной архитектуры.
Последним в моём списке популярных микросервисов идёт фреймворк Streamlit. Этот фреймворк хорош в быстром прототипировании сайтов и веб приложений. На нём можно создать простое веб приложение без глубоких познаний в html и css. Также в него можно внедрять и свои html и css как это делается в других фреймворках. У него очень мал порог вхождения поэтому он хорошо подходит начинающим разработчикам. Время, потраченное на разработку сайта на Streamlit, будет меньше в сравнении с другими фреймворками.
Прототипирование на Python обычно используют крупные компании такие как Яндекс. Не обязательно, чтобы код на Python был именно прототипом. Иногда спустя время рабочий код тоже могут переписать с Python на C++ для увеличения производительности. Это только пример, ибо Яндекс может писать много на каких языках. Почему же они переписывают код Python на C++? Всё очень просто. Микросервис на C++ работает гораздо быстрее и выдерживает гораздо больше нагрузки. Это делает связку Python и C++ хорошей для веб разработки. Код на C++ пишут, если важна скорость вычислений и количество запросов в секунду rps. Для сравнения: код, написанный на C++, может держать rps в 4 раза больше чем аналогичный на Python. В конце статьи я прикреплю ссылку на видео компании Яндекс с упоминанием об этом (момент на 16м 21с в видео).
Веб приложения это не единственное где вы можете написать прототип на Python, а затем переписать на C++. Также вы можете, например, написать Библиотеку для обработки изображений, алгоритмы машинного обучения, систему управления базой данных и тд. Количество областей для этого очень большое.
Веб приложения
Выше я уже слегка затронул тему веб приложений, а тут я её раскрою и конкретизирую. На Python обычно пишут бэкенд на таких фреймворках как Flask, Django, Fastapi, Streamlit. Затронем вкратце каждый из них чтоб было понятно какой из них выбрать для своей задачи.
Начнём с фреймворка Flask. Это лёгкий и модульный микрофреймворк. Он очень минималистичен и подходит для маленьких сайтов и веб приложений. Также на нём можно писать и большие приложения, где важна гибкость и кастомизация. Хорошая документация, работа с шаблонизатором Jinja2, работа с rest api, возможность использовать много разных библиотек и многое другое. Он подходит как для монолитной, так и для микросервисной архитектуры приложения. Минус его в том что он не поддерживает напрямую асинхронность. Однако есть возможность использовать его с ASGI сервером Uvicorn через адаптер WSGI-to-ASGI. Для работы с ним потребуется библиотека asgiref. Помните, что это не идеальное решение для асинхронности и высокой скорости. Ссылку на неё я оставлю в ссылках к статье.
Следующим на очереди у нас идёт большой фреймворк Django. Данный фреймворк нужен для написания веб сайтов и приложений на монолитной архитектуре. На нём можно быстро поднять стартап. У него есть всё необходимое, чтобы написать веб сайт в кратчайшие сроки. Тут вам и встроенная админка, поддержка orm, поддержка асинхронности и многое другое. Единственное, для чего он не подходит, это микросервисы. Однако к нему можно подключать сторонние микросервисы и боты. Получится монолит + микросервисы.
Далее идёт быстрый фреймворк Fastapi. Его я рекомендую использовать, когда вы хотите разделить свой проект на много микросервисов и когда вам важна скорость. Данный фреймворк начинает набирать популярность в компаниях из-за своей скорости, простоты и асинхронности. Также микросервисы обеспечивают высокую отказоустойчивость и надёжность работы сайтов и веб приложений. Обычно микросервисная архитектура не подходит маленьким проектам из-за сложности проектирования данной архитектуры.
Последним в моём списке популярных микросервисов идёт фреймворк Streamlit. Этот фреймворк хорош в быстром прототипировании сайтов и веб приложений. На нём можно создать простое веб приложение без глубоких познаний в html и css. Также в него можно внедрять и свои html и css как это делается в других фреймворках. У него очень мал порог вхождения поэтому он хорошо подходит начинающим разработчикам. Время, потраченное на разработку сайта на Streamlit, будет меньше в сравнении с другими фреймворками.
🔥3
Теперь поговорим о языке C++. Пишут ли на нём бэкенд для сайтов и веб приложений? Конечно же да и они гораздо более производительны чем аналогичные по функциональности сайты и веб приложения на Python. Помните о том, что не каждая команда или компания может себе позволить переписывать код Python или другого высокоуровневого языка на C++ или писать на нём с нуля. Однако иногда так случается, что определённому функционалу нужна максимальная производительность и скорость низкоуровневого языка. Также для C++ существуют веб фреймворки такие как Wt, Poco, CppCMS и другие.
Поговорим о фреймворке Wt. Этот веб фреймворк обладает встроенными виджетами и компонентами, что облегчает и ускоряет время на создание интерфейсов. Низкоуровневый C++ обеспечивает высокую производительность для сайта и веб приложения, написанного на данном фреймворке.
Poco (Portable Components) - это набор библиотек C++, предназначенных для разработки сетецентрических, портативных приложений. Сетецентрическое веб-приложение - это тип веб-приложения, который активно использует сетевые протоколы и технологии для обмена данными между клиентом и сервером. Данная библиотека портативна и портирована на различные платформы. Это делает её удобной для создания кроссплатформенных приложений. Poco включает поддержку различных сетевых протоколов, таких как HTTP, FTP, SMTP, а также предоставляет HTTP-сервер и парсер XML с интерфейсами SAX2 и DOM. Poco использует принцип RAII (Resource Acquisition Is Initialization) для безопасного управления ресурсами. Производительный, имеет мощный функционал, даже позволяет работать с потоками. Из недостатков - требуется хорошее и глубокое знание языка C++.
CppCMS - это открытый фреймворк с лицензией MIT. Фреймворк позволяет разрабатывать как производительные сайты, так и веб сервисы. CppCMS поддерживает кроссплатформенную разработку, что позволяет разрабатывать приложения для различных операционных систем. Данный фреймворк поддерживает протоколы http, fastcgi, scgi (ссылки на последние два оставлю в ссылках к данной статье), имеет поддержку ajax и comet. Поддерживает различные модели параллелизма: single thread (один поток), thread pool (пул потоков) и prefork (префорк). В данной статье я не буду заострять внимания на данных вещах, но очень хочу в них копнуть в будущих статьях. CppCMS поддерживает и шаблонизатор, который позволяет работать с данными в html.
Что же касается чистого языка С, то в этом плане он не совсем удобен. На нём можно написать некое подобие бэкэндной части, используя такие библиотеки как Libcurl, PicoHTTP и т.д. Расскажу вкратце об этих двух библиотеках.
Libcurl - это библиотека для выполнения различных операций с URL, таких как GET, POST, FTP, FTPS, SCP, SFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTSP, RTMP, SMB, SMBS, TFTP, HTTP, HTTPS, и многие другие. Она предоставляет высокоуровневый интерфейс для работы с сетевыми протоколами и поддерживает множество платформ, включая Windows, macOS, Linux, Unix, Solaris и другие. Libcurl широко используется в различных проектах, начиная от командной строки до сложных веб-приложений.
PicoHTTP - это легковесная HTTP-серверная библиотека на языке программирования C, которая позволяет быстро создавать веб-серверы с минимальными требованиями к ресурсам. Она идеально подходит для использования в устройствах с ограниченными возможностями, таких как микроконтроллеры, где требуется минимизация потребления памяти и процессорного времени.
Игры
Следующее, что можно писать на языке Python, это игры. Данный язык не является идеальным для создания игр, так как он высокоуровневый и его производительности может оказаться недостаточно для современных игр. Однако существует ряд библиотек для Python, на которых можно делать игры. Не буду перечислять большое количество библиотек, а лишь озвучу несколько примеров для создания 2d и 3d игр.
Поговорим о фреймворке Wt. Этот веб фреймворк обладает встроенными виджетами и компонентами, что облегчает и ускоряет время на создание интерфейсов. Низкоуровневый C++ обеспечивает высокую производительность для сайта и веб приложения, написанного на данном фреймворке.
Poco (Portable Components) - это набор библиотек C++, предназначенных для разработки сетецентрических, портативных приложений. Сетецентрическое веб-приложение - это тип веб-приложения, который активно использует сетевые протоколы и технологии для обмена данными между клиентом и сервером. Данная библиотека портативна и портирована на различные платформы. Это делает её удобной для создания кроссплатформенных приложений. Poco включает поддержку различных сетевых протоколов, таких как HTTP, FTP, SMTP, а также предоставляет HTTP-сервер и парсер XML с интерфейсами SAX2 и DOM. Poco использует принцип RAII (Resource Acquisition Is Initialization) для безопасного управления ресурсами. Производительный, имеет мощный функционал, даже позволяет работать с потоками. Из недостатков - требуется хорошее и глубокое знание языка C++.
CppCMS - это открытый фреймворк с лицензией MIT. Фреймворк позволяет разрабатывать как производительные сайты, так и веб сервисы. CppCMS поддерживает кроссплатформенную разработку, что позволяет разрабатывать приложения для различных операционных систем. Данный фреймворк поддерживает протоколы http, fastcgi, scgi (ссылки на последние два оставлю в ссылках к данной статье), имеет поддержку ajax и comet. Поддерживает различные модели параллелизма: single thread (один поток), thread pool (пул потоков) и prefork (префорк). В данной статье я не буду заострять внимания на данных вещах, но очень хочу в них копнуть в будущих статьях. CppCMS поддерживает и шаблонизатор, который позволяет работать с данными в html.
Что же касается чистого языка С, то в этом плане он не совсем удобен. На нём можно написать некое подобие бэкэндной части, используя такие библиотеки как Libcurl, PicoHTTP и т.д. Расскажу вкратце об этих двух библиотеках.
Libcurl - это библиотека для выполнения различных операций с URL, таких как GET, POST, FTP, FTPS, SCP, SFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTSP, RTMP, SMB, SMBS, TFTP, HTTP, HTTPS, и многие другие. Она предоставляет высокоуровневый интерфейс для работы с сетевыми протоколами и поддерживает множество платформ, включая Windows, macOS, Linux, Unix, Solaris и другие. Libcurl широко используется в различных проектах, начиная от командной строки до сложных веб-приложений.
PicoHTTP - это легковесная HTTP-серверная библиотека на языке программирования C, которая позволяет быстро создавать веб-серверы с минимальными требованиями к ресурсам. Она идеально подходит для использования в устройствах с ограниченными возможностями, таких как микроконтроллеры, где требуется минимизация потребления памяти и процессорного времени.
Игры
Следующее, что можно писать на языке Python, это игры. Данный язык не является идеальным для создания игр, так как он высокоуровневый и его производительности может оказаться недостаточно для современных игр. Однако существует ряд библиотек для Python, на которых можно делать игры. Не буду перечислять большое количество библиотек, а лишь озвучу несколько примеров для создания 2d и 3d игр.
🔥3
Pygame - это одна из самых популярных библиотек для создания 2D игр на Python. Она основана на Simple DirectMedia Layer (SDL) и предлагает простые средства для работы с графикой, звуком и вводом. Pygame хорошо подходит для создания классических аркадных игр, платформеров и головоломок, делая ее универсальным выбором для разработчиков, начинающих работу с созданием игр. Создание простеньких игр может стать хорошим хобби или работой. Альтернативой для 2d игр может стать библиотека Arcade.
Panda3D - это мощный открытый фреймворк для разработки 3D игр и симуляций на Python. Он предлагает ряд функций, таких как физическая симуляция, рендеринг и поддержка аудио, что делает его подходящим для создания погружающих игровых опытов. Panda3D поддерживает кроссплатформенность, имеет мощный движок рендеринга, встроенный физический движок для реалистичного взаимодействия объектов, поддержку анимации, интеграцию аудио, управление сценографией и сетевые возможности для многопользовательских игр. Более простой альтернативой для 3d игр может стать библиотека Ursina. Ursina построена поверх Panda3D и предоставляет специализированный движок для разработки игр, упрощающий многие аспекты Panda3D.
Ren'Py - это популярный игровой движок для создания визуальных новелл и интерактивных историй на Python. Он был разработан для облегчения процесса написания визуальных новелл, предлагая удобные инструменты для работы с текстом, изображениями, музыкой и звуковыми эффектами. Его простой синтаксис и возможность использования скриптов на Python делают его доступным даже для начинающих разработчиков. Ren'Py поддерживает кроссплатформенность, позволяя создавать игры для Windows, macOS, Linux, Android и iOS. Для тех, кто хочет сосредоточиться на создании визуальных новелл с минимальными усилиями, Ren'Py является отличным выбором благодаря своей интуитивно понятной структуре и мощным инструментам.
Язык C++ в свою очередь подходит для создания высокопроизводительных игр. На нём написаны такие игровые движки как Open 3D Engine, Unreal Engine, CryEngine.
Open 3D Engine - это открытый и бесплатный движок для создания 2D и 3D игр. Он предлагает широкий набор инструментов для разработки игр, включая физику, рендеринг, сетевые возможности и многое другое. O3DE поддерживает разработку на нескольких платформах, включая настольные компьютеры, консоли и мобильные устройства.
Unreal Engine - один из самых популярных игровых движков, используемых в индустрии. Он предлагает мощные инструменты для создания 3D игр, включая физическую симуляцию, AI, сетевые возможности и многое другое. Unreal Engine поддерживает разработку на C++ и Blueprint Visual Scripting. Blueprint Visual Scripting - это система визуального программирования, используемая в Unreal Engine, которая позволяет разработчикам создавать элементы игрового процесса с помощью графического интерфейса.
CryEngine - это профессиональный 3D движок, известный своей высокой производительностью и реалистичным рендерингом. Он используется во многих крупных играх и фильмах. CryEngine поддерживает разработку на C++ и C#, предлагая мощные инструменты для создания высококачественных 3D игр.
На языке C тоже можно создавать игры, но в современных реалиях делать это гораздо сложнее чем на С++ или Python. Примером может являться библиотека Allegro для 2D-графики и звука, поддерживающая множество платформ и языков программирования. Такая игра как DOOM в 1993 году была написана именно на языке C. Движок DOOM, также известный как id Tech 1, был написан в основном на языке программирования ANSI C, с некоторыми элементами на языке ассемблера. Стандарт ANSI был завершен в 1989 году и утвержден как ANSI X3.159-1989 для языка программирования C. Разработка велась на компьютерах NeXT, работающих под операционной системой NeXTSTEP. Этот движок использовался в играх DOOM и DOOM II: Hell on Earth, а также в других играх. Эту великую игру я проходил в детстве и в более взрослом возрасте уже по сети со своим двоюродным братом. Я не могу удержаться и оставлю видео ролик об истории этой легендарной игры в ссылках к этой статье =)
Panda3D - это мощный открытый фреймворк для разработки 3D игр и симуляций на Python. Он предлагает ряд функций, таких как физическая симуляция, рендеринг и поддержка аудио, что делает его подходящим для создания погружающих игровых опытов. Panda3D поддерживает кроссплатформенность, имеет мощный движок рендеринга, встроенный физический движок для реалистичного взаимодействия объектов, поддержку анимации, интеграцию аудио, управление сценографией и сетевые возможности для многопользовательских игр. Более простой альтернативой для 3d игр может стать библиотека Ursina. Ursina построена поверх Panda3D и предоставляет специализированный движок для разработки игр, упрощающий многие аспекты Panda3D.
Ren'Py - это популярный игровой движок для создания визуальных новелл и интерактивных историй на Python. Он был разработан для облегчения процесса написания визуальных новелл, предлагая удобные инструменты для работы с текстом, изображениями, музыкой и звуковыми эффектами. Его простой синтаксис и возможность использования скриптов на Python делают его доступным даже для начинающих разработчиков. Ren'Py поддерживает кроссплатформенность, позволяя создавать игры для Windows, macOS, Linux, Android и iOS. Для тех, кто хочет сосредоточиться на создании визуальных новелл с минимальными усилиями, Ren'Py является отличным выбором благодаря своей интуитивно понятной структуре и мощным инструментам.
Язык C++ в свою очередь подходит для создания высокопроизводительных игр. На нём написаны такие игровые движки как Open 3D Engine, Unreal Engine, CryEngine.
Open 3D Engine - это открытый и бесплатный движок для создания 2D и 3D игр. Он предлагает широкий набор инструментов для разработки игр, включая физику, рендеринг, сетевые возможности и многое другое. O3DE поддерживает разработку на нескольких платформах, включая настольные компьютеры, консоли и мобильные устройства.
Unreal Engine - один из самых популярных игровых движков, используемых в индустрии. Он предлагает мощные инструменты для создания 3D игр, включая физическую симуляцию, AI, сетевые возможности и многое другое. Unreal Engine поддерживает разработку на C++ и Blueprint Visual Scripting. Blueprint Visual Scripting - это система визуального программирования, используемая в Unreal Engine, которая позволяет разработчикам создавать элементы игрового процесса с помощью графического интерфейса.
CryEngine - это профессиональный 3D движок, известный своей высокой производительностью и реалистичным рендерингом. Он используется во многих крупных играх и фильмах. CryEngine поддерживает разработку на C++ и C#, предлагая мощные инструменты для создания высококачественных 3D игр.
На языке C тоже можно создавать игры, но в современных реалиях делать это гораздо сложнее чем на С++ или Python. Примером может являться библиотека Allegro для 2D-графики и звука, поддерживающая множество платформ и языков программирования. Такая игра как DOOM в 1993 году была написана именно на языке C. Движок DOOM, также известный как id Tech 1, был написан в основном на языке программирования ANSI C, с некоторыми элементами на языке ассемблера. Стандарт ANSI был завершен в 1989 году и утвержден как ANSI X3.159-1989 для языка программирования C. Разработка велась на компьютерах NeXT, работающих под операционной системой NeXTSTEP. Этот движок использовался в играх DOOM и DOOM II: Hell on Earth, а также в других играх. Эту великую игру я проходил в детстве и в более взрослом возрасте уже по сети со своим двоюродным братом. Я не могу удержаться и оставлю видео ролик об истории этой легендарной игры в ссылках к этой статье =)
🔥4
Робототехника и DIY
Язык Python применяется активно в робототехнике и DIY. DIY - аббревиатура английского Do It Yourself, то есть - сделай сам. Некие "очумелые ручки", но с микроконтроллерами, датчиками и прочими устройствами =) Для этого можно использовать такие одноплатные компьютеры как Raspberry Pi, Orange Pi и Banana Pi. В России появилась своя альтернатива этим платам под названием Repka Pi, ссылку на неё оставлю в ссылках к статье. Эти платы достаточно мощные для установки на них Linux систем с полноценным Python 3. Это позволяет вам создавать сложных роботов, которые способны распознавать объекты, умные дома и многое другое. Кроме того к этим платам можно подключить камеры и прочие датчики. Программирование для этих плат схоже с обычным программированием на Python. Дополнительно нужно уметь работать с пинами GPIO, к которым подключаются различные датчики, прочими встроенным модулями (например, wi-fi) и модулям с особыми разъёмами (например, камера с разъемом CSI). Обычный Python не лучший выбор если вам важна скорость работы вашего проекта. Также существует MicroPython, разработанный специально для программирования слабых плат с микроконтроллерами типа Raspberry Pi Pico или Nano 33 BLE Sense. Микроконтроллер - это компактная интегральная схема, предназначенная для управления электронными устройствами. MicroPython - это экономичная и эффективная реализация языка программирования Python, которая включает в себя небольшое подмножество стандартной библиотеки Python и которая оптимизирована для работы на микроконтроллерах и в ограниченных средах. Мало кто использовал MicroPython поэтому, думаю, вам будет интересно о нём почитать. Ссылку на MicroPython оставлю в ссылках к статье.
Языки C/C++ тоже очень популярны в робототехнике и DIY. Такие платы с микроконтроллерами как Arduino, STM32, ESP32 поддерживают эти языки. В самой слабенькой из них, Arduino UNO, стоит микропроцессор ATmega328P, который имеет всего 8 МГц, 8 бит, 32кб флеш памяти и 2кб озу. Такой маленькой малышке просто показана экономия ресурсов и низкоуровневый язык прекрасно для этого подходит. На Arduino вы можете сделать простенького робота на Bluetooth или IR (аналог пульта от телевизора) управлении, часы с будильником и многое другое. У него есть пины, чтобы подключить простенькое устройство (например, ультразвуковой дальномер).
Для сравнения, STM32 ARM процессор может иметь и 550 МГц (зависит от модели) и 32 бит что гораздо мощнее простых моделей Arduino. STM32 поддерживает широкий спектр интерфейсов, включая Ethernet, USB OTG, CAN, SPI, I2C, USART, а также поддержку беспроводных технологий, таких как Bluetooth и Wi-Fi. Это расширяет возможности подключения и взаимодействия с другими устройствами. Для сравнения: STM32 предлагает от 16 до 144 GPIO пинов подключения, а Arduino от 14 до 54 GPIO. Высокая производительность STM32 позволяет браться за более сложные в плане вычисления задачи. Например, к мощным моделям STM32 можно подключить даже простенькую видеокамеру. STM32 доминирует на промышленном секторе из-за своей высокой надёжности. STM32 может запускать операционные системы реального времени, такие как FreeRTOS и RT-Thread, что делает его подходящим для сложного управления системами. STM32 предлагает широкий выбор интегрированных периферийных устройств, включая большее количество GPIO, более продвинутые таймеры, несколько АЦП и ЦАП, аппаратное ускорение шифрования и другие дополнительные функции. Это увеличивает гибкость и контроль над проектированием систем.
Язык Python применяется активно в робототехнике и DIY. DIY - аббревиатура английского Do It Yourself, то есть - сделай сам. Некие "очумелые ручки", но с микроконтроллерами, датчиками и прочими устройствами =) Для этого можно использовать такие одноплатные компьютеры как Raspberry Pi, Orange Pi и Banana Pi. В России появилась своя альтернатива этим платам под названием Repka Pi, ссылку на неё оставлю в ссылках к статье. Эти платы достаточно мощные для установки на них Linux систем с полноценным Python 3. Это позволяет вам создавать сложных роботов, которые способны распознавать объекты, умные дома и многое другое. Кроме того к этим платам можно подключить камеры и прочие датчики. Программирование для этих плат схоже с обычным программированием на Python. Дополнительно нужно уметь работать с пинами GPIO, к которым подключаются различные датчики, прочими встроенным модулями (например, wi-fi) и модулям с особыми разъёмами (например, камера с разъемом CSI). Обычный Python не лучший выбор если вам важна скорость работы вашего проекта. Также существует MicroPython, разработанный специально для программирования слабых плат с микроконтроллерами типа Raspberry Pi Pico или Nano 33 BLE Sense. Микроконтроллер - это компактная интегральная схема, предназначенная для управления электронными устройствами. MicroPython - это экономичная и эффективная реализация языка программирования Python, которая включает в себя небольшое подмножество стандартной библиотеки Python и которая оптимизирована для работы на микроконтроллерах и в ограниченных средах. Мало кто использовал MicroPython поэтому, думаю, вам будет интересно о нём почитать. Ссылку на MicroPython оставлю в ссылках к статье.
Языки C/C++ тоже очень популярны в робототехнике и DIY. Такие платы с микроконтроллерами как Arduino, STM32, ESP32 поддерживают эти языки. В самой слабенькой из них, Arduino UNO, стоит микропроцессор ATmega328P, который имеет всего 8 МГц, 8 бит, 32кб флеш памяти и 2кб озу. Такой маленькой малышке просто показана экономия ресурсов и низкоуровневый язык прекрасно для этого подходит. На Arduino вы можете сделать простенького робота на Bluetooth или IR (аналог пульта от телевизора) управлении, часы с будильником и многое другое. У него есть пины, чтобы подключить простенькое устройство (например, ультразвуковой дальномер).
Для сравнения, STM32 ARM процессор может иметь и 550 МГц (зависит от модели) и 32 бит что гораздо мощнее простых моделей Arduino. STM32 поддерживает широкий спектр интерфейсов, включая Ethernet, USB OTG, CAN, SPI, I2C, USART, а также поддержку беспроводных технологий, таких как Bluetooth и Wi-Fi. Это расширяет возможности подключения и взаимодействия с другими устройствами. Для сравнения: STM32 предлагает от 16 до 144 GPIO пинов подключения, а Arduino от 14 до 54 GPIO. Высокая производительность STM32 позволяет браться за более сложные в плане вычисления задачи. Например, к мощным моделям STM32 можно подключить даже простенькую видеокамеру. STM32 доминирует на промышленном секторе из-за своей высокой надёжности. STM32 может запускать операционные системы реального времени, такие как FreeRTOS и RT-Thread, что делает его подходящим для сложного управления системами. STM32 предлагает широкий выбор интегрированных периферийных устройств, включая большее количество GPIO, более продвинутые таймеры, несколько АЦП и ЦАП, аппаратное ускорение шифрования и другие дополнительные функции. Это увеличивает гибкость и контроль над проектированием систем.
🔥4
Теперь поговорим о ESP32 и посмотрим что это за зверь такой =) Из его особенностей я бы хотел отметить встроенные модули Bluetooth и Wi-Fi, её миниатюрность, хорошую мощность и низкую стоимость. Это делает ESP32 идеальной платой для начинающих. Для примера плата ESP-WROOM-32 DevKit v1 имеет двух ядерный 32 битный микропроцессор с тактовой частотой 240 мгц, 4мб флеш памяти и 520 кб оперативной памяти. Согласитесь, это гораздо больше чем в Arduino? Её можно спокойно применять в сфере интернет-вещей. На ней можно запускать даже страницы html. Я приложу ссылку на интересную статью от Amperka про ESP32, где на ней мигают светодиодом используя кнопки на веб странице. Прошу заметить, что ESP32 тоже имеет поддержку FreeRTOS и RT-Thread, как и STM32.
Какую из этих плат выбрать, зависит от требований к вашему проекту и ваших финансовых возможностей. И на этом я заканчиваю первую часть статьи о применении Python и C/C++. Скоро выйдет вторая часть данной статьи. Дальше будет ещё интереснее :)
Заключение
- Поговорили о прототипировании;
- Поговорили о веб разработке;
- Насладились темой игр;
- Вдохновились робототехникой и DIY;
Ссылки к статье
- ШБР 2023 - Вводная лекция про бэкенд (Яндекс)
- Библиотека asgiref для WSGI-to-ASGI адаптера (Flask)
- Протокол FastCGI
- Протокол Scgi
- 16 бит тому назад - idTech1 (Doom) engine
- Repka Pi
- MicroPython
- ESP32 Amperka мигает светодиодами через веб страницу
Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram
#Python #django #Сравнение_Python_и_C #C #C++ #fastapi #микроконтроллеры #фреймворки #renpy #DIY #pygame #web #flask #arduin #stm
Какую из этих плат выбрать, зависит от требований к вашему проекту и ваших финансовых возможностей. И на этом я заканчиваю первую часть статьи о применении Python и C/C++. Скоро выйдет вторая часть данной статьи. Дальше будет ещё интереснее :)
Заключение
- Поговорили о прототипировании;
- Поговорили о веб разработке;
- Насладились темой игр;
- Вдохновились робототехникой и DIY;
Ссылки к статье
- ШБР 2023 - Вводная лекция про бэкенд (Яндекс)
- Библиотека asgiref для WSGI-to-ASGI адаптера (Flask)
- Протокол FastCGI
- Протокол Scgi
- 16 бит тому назад - idTech1 (Doom) engine
- Repka Pi
- MicroPython
- ESP32 Amperka мигает светодиодами через веб страницу
Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram
#Python #django #Сравнение_Python_и_C #C #C++ #fastapi #микроконтроллеры #фреймворки #renpy #DIY #pygame #web #flask #arduin #stm
🔥5
Продолжаем снимать видео по уже выпущенным задачам!
На этот раз "Что выведет этот Python код? №12"
Ссылка на задачу.
Ссылка на видео.
Будем благодарны, если вы поставите видео лайк и досмотрите его до конца. Спасибо!
На этот раз "Что выведет этот Python код? №12"
Ссылка на задачу.
Ссылка на видео.
Будем благодарны, если вы поставите видео лайк и досмотрите его до конца. Спасибо!
🔥5
Привет, друзья!
Сегодня пятница, а это значит, что настало время для новой кинопремьеры в нашем канале. На этой неделе мы подготовили для вас фильм "Господин никто" — захватывающую историю, которая заставит вас задуматься о выборе и его последствиях. Устраивайтесь поудобнее, готовьте свои любимые закуски и погружайтесь в этот увлекательный мир.
Фильм: Господин Никто
Год: 2009
Проснувшийся немощным стариком Немо Никто оказывается последним смертным в гротескном будущем. Все люди уже давно бессмертны и с удовольствием наблюдают за телешоу, где главная звезда — дряхлый и безумный старик Немо, доживающий последние дни. К нему приходит журналист, и Немо рассказывает ему свою историю.
https://www.kinopoisk.ru/film/232785/
https://www.sspoisk.ru/film/232785/
Не забывайте делиться своими впечатлениями в комментариях — нам очень интересно узнать ваше мнение о фильме.
Приятного вечера и отличного начала выходных!
Сегодня пятница, а это значит, что настало время для новой кинопремьеры в нашем канале. На этой неделе мы подготовили для вас фильм "Господин никто" — захватывающую историю, которая заставит вас задуматься о выборе и его последствиях. Устраивайтесь поудобнее, готовьте свои любимые закуски и погружайтесь в этот увлекательный мир.
Фильм: Господин Никто
Год: 2009
Проснувшийся немощным стариком Немо Никто оказывается последним смертным в гротескном будущем. Все люди уже давно бессмертны и с удовольствием наблюдают за телешоу, где главная звезда — дряхлый и безумный старик Немо, доживающий последние дни. К нему приходит журналист, и Немо рассказывает ему свою историю.
https://www.kinopoisk.ru/film/232785/
https://www.sspoisk.ru/film/232785/
Не забывайте делиться своими впечатлениями в комментариях — нам очень интересно узнать ваше мнение о фильме.
Приятного вечера и отличного начала выходных!
🔥2
Что выведет код с изображения? №30
Anonymous Quiz
51%
{4}
5%
{3}
8%
{1, 4}
23%
set()
0%
{2, 4}
13%
{1, 3, 4}
🔥4