Чудеса GameDev'a который мы заслужили 🎮
Для установки библиотеки вводим
Недавно я погрузился в изучение библиотек Python и наткнулся на библиотеку для создания игр. Вдохновившись, я решил попробовать свои силы и написал простую игру, где нужно управлять тунчиком и стрелять по астероидам.
По законам рекламы, я просто обязан описать умопомрачительные тонкости геймплея:
🔍 Основные особенности игры:
Управление тунком 🕹️
Вы управляете танком, который движется по арене.
Стрельба по астероидам 💥
Ваша задача — уничтожать астероиды. За каждый сбитый астероид начисляются очки.
Ограничения арены 🚫
Танк не может выходить за пределы арены, его положение постоянно отслеживается.
Конец игры 🛑
Игра заканчивается, если происходит столкновение с астероидом.
Код моего сверх проекта можно посмотреть по ссылке тык
Думаю можно бахнуть трейлер😧
#Python #GameDevelopment #GameDev
Для установки библиотеки вводим
pip install pygame
Недавно я погрузился в изучение библиотек Python и наткнулся на библиотеку для создания игр. Вдохновившись, я решил попробовать свои силы и написал простую игру, где нужно управлять тунчиком и стрелять по астероидам.
По законам рекламы, я просто обязан описать умопомрачительные тонкости геймплея:
🔍 Основные особенности игры:
Управление тунком 🕹️
Вы управляете танком, который движется по арене.
Стрельба по астероидам 💥
Ваша задача — уничтожать астероиды. За каждый сбитый астероид начисляются очки.
Ограничения арены 🚫
Танк не может выходить за пределы арены, его положение постоянно отслеживается.
Конец игры 🛑
Игра заканчивается, если происходит столкновение с астероидом.
Код моего сверх проекта можно посмотреть по ссылке тык
Думаю можно бахнуть трейлер
#Python #GameDevelopment #GameDev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1👍1
Декораторы и метапрограммирование 🛠️
🏗️ В мире Python декораторы играют важную роль, позволяя изменять поведение функций без изменения их кода. Это мощный инструмент метапрограммирования, который открывает новые возможности для расширения функциональности программ.
Что такое декораторы?
Декораторы - это функции, которые принимают другую функцию в качестве аргумента и возвращают новую функцию, изменяя или расширяя поведение оригинальной функции. Они используются для добавления дополнительной логики, проверок или обертывания функций для упрощения кода.
Пример декоратора, который замеряет время выполнения функции:
🔍 В этом примере декоратор
Зачем это нужно?
Использование декораторов позволяет разделять логику программы на более мелкие и легко управляемые части. Они позволяют добавлять функциональность к существующему коду без его изменения, делая код более модульным и гибким.
Заключение:
Декораторы - это мощный инструмент, который помогает улучшить структуру и функциональность Python-приложений. Понимание их работы и применение в коде позволят вам писать более эффективный и легко поддерживаемый код.
#Python #PythonCrafts 🔧
🏗️ В мире Python декораторы играют важную роль, позволяя изменять поведение функций без изменения их кода. Это мощный инструмент метапрограммирования, который открывает новые возможности для расширения функциональности программ.
Что такое декораторы?
Декораторы - это функции, которые принимают другую функцию в качестве аргумента и возвращают новую функцию, изменяя или расширяя поведение оригинальной функции. Они используются для добавления дополнительной логики, проверок или обертывания функций для упрощения кода.
Пример декоратора, который замеряет время выполнения функции:
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Время выполнения функции {func.__name__}: {end_time - start_time} сек.")
return result
return wrapper
@timer
def some_function():
# Что-то выполняется...
time.sleep(2)
return "Готово!"
print(some_function())
🔍 В этом примере декоратор
timer измеряет время выполнения функции some_function и выводит результаты. Обратите внимание на использование символа @ перед именем декоратора, что делает его применение к функции более удобным.Зачем это нужно?
Использование декораторов позволяет разделять логику программы на более мелкие и легко управляемые части. Они позволяют добавлять функциональность к существующему коду без его изменения, делая код более модульным и гибким.
Заключение:
Декораторы - это мощный инструмент, который помогает улучшить структуру и функциональность Python-приложений. Понимание их работы и применение в коде позволят вам писать более эффективный и легко поддерживаемый код.
#Python #PythonCrafts 🔧
👍3👏1😱1
🚀 Три самых современных способа создания интерфейсов на Python
PyQt и PySide — мощные обертки для библиотеки Qt.
Преимущества:
Богатые возможности (виджеты, анимации, мультимедиа)
Кросс-платформенность (Windows, macOS, Linux)
Визуальный дизайнер (Qt Designer)
Kivy — фреймворк для мультитач приложений и натурального пользовательского интерфейса.
Преимущества:
Кросс-платформенность (Windows, macOS, Linux, Android, iOS)
Современный UI (жесты, анимации)
Быстрая разработка и тестирование
Dear PyGui — относительно новый фреймворк для высокопроизводительных интерфейсов, основанный на ImGui.
Преимущества:
Высокая производительность (рендеринг на GPU)
Простота использования и интеграции
Современные возможности (графики, таблицы, мультимедиа)
Каждый из этих фреймворков имеет свои особенности и возможности. Выбирайте тот, который лучше всего подходит для вашего проекта! 💻
#python #programming #PyQt #Kivy #DearPyGui #coding #development #tech
👨💻 Подписаться
PyQt и PySide — мощные обертки для библиотеки Qt.
Преимущества:
Богатые возможности (виджеты, анимации, мультимедиа)
Кросс-платформенность (Windows, macOS, Linux)
Визуальный дизайнер (Qt Designer)
from PyQt5.QtWidgets import QApplication, QLabel
app = QApplication([])
label = QLabel('Hello, World!')
label.show()
app.exec_()
Kivy — фреймворк для мультитач приложений и натурального пользовательского интерфейса.
Преимущества:
Кросс-платформенность (Windows, macOS, Linux, Android, iOS)
Современный UI (жесты, анимации)
Быстрая разработка и тестирование
from kivy.app import App
from kivy.uix.label import Label
class MyApp(App):
def build(self):
return Label(text='Hello, World!')
if __name__ == '__main__':
MyApp().run()
Dear PyGui — относительно новый фреймворк для высокопроизводительных интерфейсов, основанный на ImGui.
Преимущества:
Высокая производительность (рендеринг на GPU)
Простота использования и интеграции
Современные возможности (графики, таблицы, мультимедиа)
import dearpygui.dearpygui as dpg
dpg.create_context()
with dpg.window(label="Example Window"):
dpg.add_text("Hello, world!")
dpg.add_button(label="Press Me")
dpg.create_viewport(title='Custom Title', width=600, height=400)
dpg.setup_dearpygui()
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()
Каждый из этих фреймворков имеет свои особенности и возможности. Выбирайте тот, который лучше всего подходит для вашего проекта! 💻
#python #programming #PyQt #Kivy #DearPyGui #coding #development #tech
👨💻 Подписаться
❤3👍1🥰1
🔧 Генератор текстов 🔧
Сегодня делюсь интересным Python-скриптом, который поможет генерировать сомнительный текст из 10 предложений на любую тему и завершать текст мудрой цитатой из книг Виктора Пелевина. Так сказать прародитель этих ваших нейросетей.
Вот как это работает:
Введите любое слово – и программа построит вокруг него 10 предложений.
Предложения всегда используют слово в именительном падеже, что делает текст более связным и логичным.
В конце текста добавляется случайная цитата из книг Виктора Пелевина – для глубоких размышлений и вдохновения.
🛠️ Просто запустите код, введите любое слово, и наслаждайтесь уникальным текстом с мудрой цитатой на закуску!
Попробуйте сами и делитесь своими результатами в комментариях! 📩
#python #ai #fun
Подписаться
Сегодня делюсь интересным Python-скриптом, который поможет генерировать сомнительный текст из 10 предложений на любую тему и завершать текст мудрой цитатой из книг Виктора Пелевина. Так сказать прародитель этих ваших нейросетей.
Вот как это работает:
Введите любое слово – и программа построит вокруг него 10 предложений.
Предложения всегда используют слово в именительном падеже, что делает текст более связным и логичным.
В конце текста добавляется случайная цитата из книг Виктора Пелевина – для глубоких размышлений и вдохновения.
import random
def generate_sentences(word):
phrases = [
f"{word.capitalize()} — это важная часть нашей жизни.",
f"Многие люди не задумываются о значении слова {word.lower()}.",
f"{word.capitalize()} оказывает значительное влияние на нашу повседневную жизнь.",
f"Изучение {word.lower()} может привести к неожиданным открытиям.",
f"Интерес к {word.lower()} растет с каждым годом.",
f"Каждый человек понимает {word.lower()} по-своему.",
f"Современные исследования показывают, что {word.lower()} имеет множество применений.",
f"{word.capitalize()} было важным понятием на протяжении всей истории.",
f"Существует множество теорий о происхождении {word.lower()}.",
f"Обсуждение {word.lower()} часто вызывает оживленные дискуссии.",
f"Невозможно представить себе мир без {word.lower()}.",
f"В последнее время {word.lower()} стало предметом многочисленных обсуждений.",
f"Существует множество подходов к изучению {word.lower()}.",
f"Значение слова {word.lower()} трудно переоценить.",
f"Научный прогресс значительно изменил наше понимание {word.lower()}.",
f"В разных культурах {word.lower()} имеет разные значения.",
f"Понимание {word.lower()} помогает нам лучше осознать окружающий мир.",
f"История {word.lower()} насчитывает многие века.",
f"Множество факторов влияет на восприятие {word.lower()}.",
f"Исследования показывают, что {word.lower()} связано с множеством других понятий."
]
quotes = [
"Все иллюзии рассыпаются на глазах, стоит только тронуть их пальцем.",
"В нашем мире есть только два источника власти: слово и пуля.",
"Когда человек долго смотрит в бездну, бездна начинает смотреть в него.",
"Свобода — это осознание необходимости.",
"Каждый видит то, что хочет видеть, или то, что ему велено видеть.",
"Никто не знает, что такое счастье, но все понимают, что это не просто так.",
"Мы все живем в мире своих иллюзий, пока не столкнемся с реальностью.",
"Смысл жизни не в счастье, а в стремлении к нему.",
"Человек — это то, во что он верит.",
"Только иллюзии делают жизнь выносимой."
]
sentences = random.sample(phrases, 10)
quote = random.choice(quotes)
for sentence in sentences:
print(sentence)
print("\nЦитата Виктора Пелевина:")
print(quote)
# Получение слова от пользователя
word = input("Введите слово: ")
generate_sentences(word)
🛠️ Просто запустите код, введите любое слово, и наслаждайтесь уникальным текстом с мудрой цитатой на закуску!
Попробуйте сами и делитесь своими результатами в комментариях! 📩
#python #ai #fun
Подписаться
👏3🤣2🤔1
Автоматизация рутинных задач с помощью Python
В мире, где каждую минуту на счету, автоматизация рутинных задач становится не просто удобством, а необходимостью. Python, благодаря своей простоте и мощи, является идеальным инструментом для автоматизации множества повседневных задач.
Переименование файлов 📁
Ситуация: у вас есть множество файлов с именами, которые не соответствуют желаемому формату. Вы хотите их переименовать, не тратя на это много времени.
Переименуйте файлы в папке 'путь_к_вашей_папке', добавив префикс 'новый_префикс'
rename_files('путь_к_вашей_папке', 'новый_префикс')
Отправка email-уведомлений 📧
Ситуация: необходимо автоматически отправлять уведомления по электронной почте, например, напоминания.
Отправьте письмо с 'ваш_емейл@gmail.com' на 'получатель@gmail.com' с указанной темой и текстом
send_email('ваш_емейл@gmail.com', 'получатель@gmail.com', 'Тема письма', 'Текст письма', 'smtp.gmail.com', 587, 'ваш_емейл@gmail.com', 'ваш_пароль')
Сбор данных с веб-сайтов 🌐
Ситуация: вам нужно собирать данные с веб-страниц, например, последние новости или цены на товары.
Соберите заголовки новостей с указанного URL
scrape_website('https://news.ycombinator.com/')
Заключение
Автоматизация с помощью Python не только экономит ваше время, но и повышает вашу продуктивность. Эти простые примеры показывают, как легко можно автоматизировать переименование файлов, отправку email-уведомлений и сбор данных с веб-сайтов.
Подписаться
#Автоматизация #Python #Программирование #Скрипты #ОтправкаEmail #ВебСкрапинг #Советы 🚀
В мире, где каждую минуту на счету, автоматизация рутинных задач становится не просто удобством, а необходимостью. Python, благодаря своей простоте и мощи, является идеальным инструментом для автоматизации множества повседневных задач.
Переименование файлов 📁
Ситуация: у вас есть множество файлов с именами, которые не соответствуют желаемому формату. Вы хотите их переименовать, не тратя на это много времени.
python
import os
def rename_files(directory, prefix):
for count, filename in enumerate(os.listdir(directory)):
new_name = f"{prefix}_{count + 1}{os.path.splitext(filename)[1]}"
os.rename(os.path.join(directory, filename), os.path.join(directory, new_name))
print("Файлы успешно переименованы!")
Переименуйте файлы в папке 'путь_к_вашей_папке', добавив префикс 'новый_префикс'
rename_files('путь_к_вашей_папке', 'новый_префикс')
Отправка email-уведомлений 📧
Ситуация: необходимо автоматически отправлять уведомления по электронной почте, например, напоминания.
python
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def send_email(sender_email, receiver_email, subject, body, smtp_server, smtp_port, login, password):
msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = receiver_email
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(login, password)
server.sendmail(sender_email, receiver_email, msg.as_string())
print("Письмо успешно отправлено!")
Отправьте письмо с 'ваш_емейл@gmail.com' на 'получатель@gmail.com' с указанной темой и текстом
send_email('ваш_емейл@gmail.com', 'получатель@gmail.com', 'Тема письма', 'Текст письма', 'smtp.gmail.com', 587, 'ваш_емейл@gmail.com', 'ваш_пароль')
Сбор данных с веб-сайтов 🌐
Ситуация: вам нужно собирать данные с веб-страниц, например, последние новости или цены на товары.
python
import requests
from bs4 import BeautifulSoup
def scrape_website(url):
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# Предположим, мы собираем заголовки новостей
headlines = soup.find_all('h2', class_='news-title')
for idx, headline in enumerate(headlines):
print(f"{idx + 1}. {headline.text.strip()}")
Соберите заголовки новостей с указанного URL
scrape_website('https://news.ycombinator.com/')
Заключение
Автоматизация с помощью Python не только экономит ваше время, но и повышает вашу продуктивность. Эти простые примеры показывают, как легко можно автоматизировать переименование файлов, отправку email-уведомлений и сбор данных с веб-сайтов.
Подписаться
#Автоматизация #Python #Программирование #Скрипты #ОтправкаEmail #ВебСкрапинг #Советы 🚀
👍2🔥1👏1
Мониторинг системных ресурсов своими руками 🖥
Существует тонна подобных плагинов, почему бы не сделать его самому. Мониторинг системных ресурсов, таких как процессор, память и дисковое пространство, важен для поддержания стабильной работы компьютера или сервера. 📊🔧
Шаг 1: Установка библиотек 📦
Шаг 2: Код для мониторинга 📝
Создайте файл
Шаг 3: Запуск мониторинга 🚀
Скрипт будет каждые 5 секунд отображать текущую загрузку процессора, памяти и дискового пространства. 📊🖥
С помощью этого простого скрипта на Python вы можете отслеживать системные ресурсы вашего компьютера или сервера. Попробуйте сами и убедитесь, как легко это сделать! 🔧
#Мониторинг #Python #СистемныеРесурсы #Программирование #Автоматизация #Кодирование #Технологии #IT
Существует тонна подобных плагинов, почему бы не сделать его самому. Мониторинг системных ресурсов, таких как процессор, память и дисковое пространство, важен для поддержания стабильной работы компьютера или сервера. 📊🔧
Шаг 1: Установка библиотек 📦
pip install psutil
Шаг 2: Код для мониторинга 📝
Создайте файл
monitor.py и добавьте следующий код:import psutil
import time
def get_cpu_usage():
return psutil.cpu_percent(interval=1)
def get_memory_usage():
memory_info = psutil.virtual_memory()
return memory_info.percent
def get_disk_usage():
disk_info = psutil.disk_usage('/')
return disk_info.percent
def monitor_system():
while True:
cpu = get_cpu_usage()
memory = get_memory_usage()
disk = get_disk_usage()
print(f"CPU Usage: {cpu}%")
print(f"Memory Usage: {memory}%")
print(f"Disk Usage: {disk}%")
print("-" * 20)
time.sleep(5)
if __name__ == "__main__":
monitor_system()
Шаг 3: Запуск мониторинга 🚀
python monitor.py
Скрипт будет каждые 5 секунд отображать текущую загрузку процессора, памяти и дискового пространства. 📊🖥
С помощью этого простого скрипта на Python вы можете отслеживать системные ресурсы вашего компьютера или сервера. Попробуйте сами и убедитесь, как легко это сделать! 🔧
#Мониторинг #Python #СистемныеРесурсы #Программирование #Автоматизация #Кодирование #Технологии #IT
👍2🔥1😱1
1. Использование встроенной функции `max`:
max_element = max(array)
Это самый простой и быстрый способ, поскольку
max оптимизирован и написан на C.2. Использование цикла `for`:
max_element = array[0]
for element in array:
if element > max_element:
max_element = element
Это более явный способ, но он менее эффективен, чем встроенные функции.
3. Использование функции `reduce` из модуля `functools`:
from functools import reduce
max_element = reduce(lambda x, y: x if x > y else y, array)
Этот способ также менее эффективен, чем встроенная функция
max, но может быть полезен в определенных контекстах.4. Использование библиотеки `numpy`:
import numpy as np
max_element = np.max(array)
Если массив является объектом
numpy, этот метод будет очень быстрым благодаря оптимизациям библиотеки.5. Использование многопоточности:
Для огромных массивов можно разбить задачу на части и выполнить поиск максимума параллельно. Пример с использованием
concurrent.futures: from concurrent.futures import ThreadPoolExecutor, as_completed
def find_max(sub_array):
return max(sub_array)
def parallel_max(array, num_threads):
chunk_size = len(array) // num_threads
futures = []
with ThreadPoolExecutor(max_workers=num_threads) as executor:
for i in range(num_threads):
sub_array = array[i*chunk_size:(i+1)*chunk_size]
futures.append(executor.submit(find_max, sub_array))
results = [future.result() for future in as_completed(futures)]
return max(results)
max_element = parallel_max(array, 4) # Например, с 4 потоками
Это может ускорить процесс для очень больших массивов на многопроцессорных системах.
Самый быстрый и рекомендуемый способ — это использование встроенной функции
max для стандартных массивов Python, либо функции np.max для массивов numpy, так как они написаны на C и максимально оптимизированы для производительности.@debugblog
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥1