Kodduu Python
1.07K subscribers
317 photos
28 videos
191 links
Научись программировать на Python на интересных примерах

Самый быстрый курс https://stepik.org/a/187914
Самый нескучный курс https://stepik.org/a/185238

Во вопросам сотрудничества: @AlexErf
Download Telegram
Давайте рассмотрим библиотеку Pandas. Это мощный инструмент для обработки и анализа данных. С помощью pandas вы можете работать с табличными данными так же, как и с базами данных или электронными таблицами.

Установка:
bash
pip install pandas


Пример использования:

python
import pandas as pd

# Создание DataFrame из словаря
data = {
'Имя': ['Анна', 'Борис', 'Виктор', 'Дарья'],
'Возраст': [25, 30, 35, 40],
'Город': ['Москва', 'Питер', 'Новосибирск', 'Казань']
}

df = pd.DataFrame(data)

print(df)

# Фильтрация по возрасту
filtered_df = df[df['Возраст'] > 30]
print("\nЛюди старше 30:")
print(filtered_df)

# Статистика
print("\nСредний возраст:", df['Возраст'].mean())

# Загрузка и сохранение CSV-файла
df.to_csv('data.csv', index=False)
new_df = pd.read_csv('data.csv')
print("\nЗагруженные из CSV данные:")
print(new_df)


Pandas позволяет быстро агрегировать, трансформировать, фильтровать и визуализировать данные, что делает его незаменимым инструментом для аналитиков данных и научных исследователей.

Подпишись 👉🏻 @KodduuPython 🤖
2
Давайте поговорим о библиотеке TensorFlow, одной из наиболее известных библиотек для глубокого обучения и машинного обучения.

TensorFlow разработан Google и используется для построения и тренировки нейронных сетей. С его помощью можно решать множество задач, от базовых задач классификации и регрессии до сложных задач, таких как распознавание изображений, обработка естественного языка и др.

Установка:
bash
pip install tensorflow


Простой пример построения и обучения модели на данных:

python
import numpy as np
import tensorflow as tf
from tensorflow import keras

# Данные: соответствие числа его удвоенному значению
x = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
y = np.array([-2.0, 0.0, 2.0, 4.0, 6.0, 8.0], dtype=float)

# Создание простой модели
model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])

# Компиляция модели
model.compile(optimizer='sgd', loss='mean_squared_error')

# Обучение модели
model.fit(x, y, epochs=50)

# Предсказание
print(model.predict([10.0])) # ожидаем около 20


В этом простом примере мы создали модель, которая учится соответствию между числами x и y. После обучения модель способна предсказывать удвоенное значение для новых чисел.

Это лишь макушка айсберга в возможностях TensorFlow. Эта библиотека предоставляет инструменты для создания сложных архитектур нейронных сетей, включая свёрточные сети, рекуррентные сети и многое другое.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте рассмотрим библиотеку scikit-learn (или просто sklearn). Это одна из самых популярных библиотек для машинного обучения в Python. Она предлагает простые и эффективные инструменты для анализа данных, включая классификацию, регрессию, кластеризацию и многие другие задачи.

Установка:
bash
pip install scikit-learn


Пример использования с классификацией на датасете Iris:

python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# Загрузка датасета
iris = datasets.load_iris()
X = iris.data
y = iris.target

# Разделение данных на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Нормализация данных
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# Создание и обучение классификатора kNN
clf = KNeighborsClassifier(n_neighbors=3)
clf.fit(X_train, y_train)

# Предсказание
y_pred = clf.predict(X_test)

# Оценка модели
accuracy = accuracy_score(y_test, y_pred)
print(f"Точность модели: {accuracy:.2f}")


scikit-learn предоставляет множество алгоритмов машинного обучения, инструменты для предобработки данных, выбора признаков, настройки параметров моделей и оценки их производительности. Эта библиотека является стандартом для многих задач машинного обучения в Python благодаря своей простоте и гибкости.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте рассмотрим библиотеку PyTorch, разработанную Facebook. Это еще одна популярная библиотека для глубокого обучения, которая, наряду с TensorFlow, используется исследователями и инженерами в области искусственного интеллекта.

Установка:
bash
pip install torch torchvision


Простой пример использования PyTorch для линейной регрессии:

python
import torch
import torch.nn as nn
import torch.optim as optim

# Генерация данных
x = torch.linspace(-1, 1, 100).view(100, 1)
y = 3*x + 2 + torch.randn(x.size()) * 0.3

# Определение модели
class LinearRegression(nn.Module):
def __init__(self):
super(LinearRegression, self).__init__()
self.linear = nn.Linear(1, 1)

def forward(self, x):
return self.linear(x)

model = LinearRegression()
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)

# Обучение модели
for epoch in range(1000):
outputs = model(x)
loss = criterion(outputs, y)
optimizer.zero_grad()
loss.backward()
optimizer.step()

if (epoch+1) % 100 == 0:
print(f'Epoch [{epoch+1}/1000], Loss: {loss.item():.4f}')

# Проверка весов
print('y = {:.2f}x + {:.2f}'.format(model.linear.weight.item(), model.linear.bias.item()))


PyTorch привлекает своей гибкостью и интуитивно понятным интерфейсом, что делает его особенно популярным среди научных исследователей. Библиотека предоставляет инструменты для создания сложных архитектур нейронных сетей, автоматического вычисления градиентов, оптимизации моделей и многое другое.

Подпишись 👉🏻 @KodduuPython 🤖
3
Давайте рассмотрим библиотеку SQLAlchemy. Это библиотека для работы с базами данных, которая предоставляет высокоуровневый ORM (Object-Relational Mapping) и низкоуровневые SQL-выразы.

Установка:
bash
pip install sqlalchemy


Пример использования SQLAlchemy для создания и работы с базой данных SQLite:

python
from sqlalchemy import create_engine, Column, Integer, String, Sequence
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

# Определение модели
class User(Base):
__tablename__ = 'users'
id = Column(Integer, Sequence('user_id_seq'), primary_key=True)
name = Column(String(50))
age = Column(Integer)

# Создание базы данных SQLite в памяти
engine = create_engine('sqlite:///:memory:')

# Создание таблицы
Base.metadata.create_all(engine)

# Создание сессии для работы с базой
Session = sessionmaker(bind=engine)
session = Session()

# Добавление объекта в базу данных
new_user = User(name='Alex', age=30)
session.add(new_user)
session.commit()

# Запрос к базе данных
users = session.query(User).all()
for user in users:
print(user.id, user.name, user.age)


SQLAlchemy позволяет абстрагироваться от конкретной СУБД и писать код, который будет работать практически с любой базой данных. Она предоставляет как высокоуровневые инструменты для работы с данными через ORM, так и возможность написания чистых SQL-запросов.

Подпишись 👉🏻 @KodduuPython 🤖
2👍1
Давайте рассмотрим библиотеку spaCy. Это современная библиотека для обработки естественного языка (NLP) на Python. spaCy предлагает преобработку текста, распознавание именованных сущностей, частеречную разметку и многое другое.

Установка:
bash
pip install spacy


Для работы с определенными языками, вам также потребуются языковые модели. Для английского языка:
bash
python -m spacy download en_core_web_sm


Пример использования:

python
import spacy

# Загрузка языковой модели
nlp = spacy.load('en_core_web_sm')

# Обработка текста
text = "Apple is looking at buying U.K. startup for $1 billion"
doc = nlp(text)

# Частеречная разметка
for token in doc:
print(token.text, token.pos_, token.dep_)

# Распознавание именованных сущностей
for ent in doc.ents:
print(ent.text, ent.start_char, ent.end_char, ent.label_)


spaCy известна своей скоростью и эффективностью, а также интуитивно понятным API. Эта библиотека является хорошим выбором для многих задач обработки текста и NLP.

Подпишись 👉🏻 @KodduuPython 🤖
2👍1
Давайте рассмотрим пример в функциональном стиле на Python. Предположим, у нас есть список чисел, и мы хотим отфильтровать четные числа, удвоить их, а затем посчитать их сумму.

Вот как это можно сделать в функциональном стиле с использованием функций filter, map, и reduce:

python
from functools import reduce

# Функция для определения, является ли число четным
def is_even(num):
return num % 2 == 0

# Функция для удвоения числа
def double(num):
return num * 2

# Функция для нахождения суммы двух чисел
def add(x, y):
return x + y

# Список чисел
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Применяем функциональный стиль
result = reduce(add, map(double, filter(is_even, numbers)))

print(result) # Вывод: 60 (2*2 + 4*2 + 6*2 + 8*2 + 10*2)


Здесь мы использовали композицию функций filter, map и reduce, чтобы преобразовать исходный список. Функции передаются в качестве аргументов другим функциям, что является характерной особенностью функционального программирования.

Подпишись 👉🏻 @KodduuPython 🤖
Вот простой, но интересный код на Python, который позволяет визуализировать "Древо Пифагора". Древо Пифагора — это фрактал, основанный на квадратах.

python
import turtle

def draw_pythagoras_tree(t, branch_len, angle):
if branch_len <= 2:
t.color('green')
t.begin_fill()
t.forward(branch_len)
t.left(90)
t.forward(branch_len)
t.left(90)
t.forward(branch_len)
t.left(90)
t.forward(branch_len)
t.left(90)
t.end_fill()
return
new_len = branch_len / (2 ** 0.5)

t.forward(branch_len)
t.left(45)

draw_pythagoras_tree(t, new_len, angle)

t.right(45 + angle)
draw_pythagoras_tree(t, new_len, angle)

t.left(angle)
t.backward(branch_len)

def main():
window = turtle.Screen()
window.bgcolor("white")

pythagoras_tree = turtle.Turtle()
pythagoras_tree.speed(0)
pythagoras_tree.width(2)
pythagoras_tree.color("brown")

pythagoras_tree.left(90)
pythagoras_tree.backward(100)

draw_pythagoras_tree(pythagoras_tree, 70, 30)

window.mainloop()

if __name__ == '__main__':
main()


Вы можете изменять разные параметры, такие как длина ветви или угол поворота, чтобы увидеть различные формы дерева. Код использует библиотеку turtle для рисования, которая входит в стандартный пакет Python.

Подпишись 👉🏻 @KodduuPython 🤖
👍2
Давайте создадим небольшую текстовую игру-квест на Python, где игрок будет принимать решения и исследовать разные сюжетные линии.

python
def start_game():
print("Вы просыпаетесь в странной комнате. Выходит, вы были похищены инопланетянами!")
print("Вам предстоит принимать решения, чтобы выбраться отсюда.")
decision1()

def decision1():
print("\nПеред вами две двери: одна слева, другая справа. Куда вы пойдете?")
choice = input("Введите 'лево' или 'право': ")

if choice == 'лево':
alien_room()
elif choice == 'право':
control_room()
else:
print("Я не понимаю ваш выбор. Попробуйте еще раз.")
decision1()

def alien_room():
print("\nВы входите в комнату и видите инопланетянина! Он предлагает вам играть в игру на выбывание.")
choice = input("Играть с ним? (да/нет): ")

if choice == 'да':
print("Вы проиграли и стали его питомцем. Конец.")
elif choice == 'нет':
print("Инопланетянин уважает ваш выбор и позволяет уйти. Вы возвращаетесь обратно.")
decision1()
else:
print("Я не понимаю ваш выбор. Попробуйте еще раз.")
alien_room()

def control_room():
print("\nВы в комнате управления кораблем. Вы видите кнопку с надписью 'Вернуться на Землю'.")
choice = input("Нажать кнопку? (да/нет): ")

if choice == 'да':
print("Вы успешно вернулись на Землю! Поздравляю!")
elif choice == 'нет':
print("Вы решили остаться и исследовать космос. Приключения только начинаются!")
else:
print("Я не понимаю ваш выбор. Попробуйте еще раз.")
control_room()

if __name__ == "__main__":
start_game()


В этой игре вы начинаете в комнате на инопланетном корабле и делаете выбор между двумя дверьми. Ваш выбор влияет на исход истории. Вы можете дополнительно развивать сюжет, добавляя больше комнат, решений и возможных исходов!

Подпишись 👉🏻 @KodduuPython 🤖
👍4
Предлагаю создать небольшой генератор историй. Пользователь вводит несколько слов (имя, глагол, место и т. д.), и программа создаёт историю на основе этих слов.

python
def get_user_input():
name = input("Введите имя: ")
verb = input("Введите глагол в прошедшем времени: ")
place = input("Введите место: ")
object_name = input("Введите предмет: ")
emotion = input("Введите эмоцию (например, 'радостный', 'грустный'): ")

return name, verb, place, object_name, emotion

def generate_story(name, verb, place, object_name, emotion):
story = (f"{name} {verb} в {place}. На пути {name} нашел {object_name}. "
f"Подняв {object_name}, {name} почувствовал себя {emotion}. "
f"Этот день стал по-настоящему незабываемым!")

return story

def main():
user_input = get_user_input()
story = generate_story(*user_input)
print("\nВаша история:\n" + story)

if __name__ == "__main__":
main()


При запуске этой программы пользователю предлагается ввести несколько слов, и программа генерирует историю на их основе. Этот код может быть отличной отправной точкой для более сложного генератора историй или игры на основе выбора!

Подпишись 👉🏻 @KodduuPython 🤖
🔥3
Давайте создадим небольшой скрипт для книги рецептов, где пользователь может добавлять, просматривать и искать рецепты.

python
class RecipeBook:
def __init__(self):
self.recipes = {}

def add_recipe(self, name, ingredients, instructions):
self.recipes[name] = {
'ingredients': ingredients,
'instructions': instructions
}
print(f"Рецепт '{name}' добавлен!")

def show_recipe(self, name):
if name in self.recipes:
print(f"\n{name}")
print("Ингредиенты:", ", ".join(self.recipes[name]['ingredients']))
print("Инструкции:", self.recipes[name]['instructions'])
else:
print(f"Рецепт с именем '{name}' не найден!")

def search_by_ingredient(self, ingredient):
found = [name for name, details in self.recipes.items() if ingredient in details['ingredients']]
if found:
print(f"\nРецепты с ингредиентом {ingredient}: {', '.join(found)}")
else:
print(f"Рецепты с ингредиентом '{ingredient}' не найдены!")

def main():
book = RecipeBook()

while True:
print("\nВыберите действие:")
print("1: Добавить рецепт")
print("2: Посмотреть рецепт")
print("3: Найти рецепт по ингредиенту")
print("4: Выход")

choice = input("> ")

if choice == "1":
name = input("Введите название рецепта: ")
ingredients = input("Введите ингредиенты через запятую: ").split(',')
instructions = input("Введите инструкции: ")
book.add_recipe(name, ingredients, instructions)

elif choice == "2":
name = input("Введите название рецепта для просмотра: ")
book.show_recipe(name)

elif choice == "3":
ingredient = input("Введите ингредиент для поиска: ")
book.search_by_ingredient(ingredient)

elif choice == "4":
break

if __name__ == "__main__":
main()


С помощью этого кода вы можете создать свою базу данных рецептов, просматривать и искать их по ингредиентам. Надеюсь, это поможет вам на пути к созданию идеального блюда!

Подпишись 👉🏻 @KodduuPython 🤖
Давайте создадим мини-приложение для того чтобы научиться запоминать новые слова на английском языке. Программа будет показывать слово на родном языке, а пользователь должен будет ввести его перевод на английский.

python
import random

class VocabularyTrainer:
def __init__(self):
self.vocabulary = {
"кошка": "cat",
"собака": "dog",
"дом": "house",
"автомобиль": "car",
"стол": "table",
"стул": "chair"
}

def train(self):
word, translation = random.choice(list(self.vocabulary.items()))
answer = input(f"Как будет '{word}' на английском? ")

if answer == translation:
print("Верно!")
else:
print(f"Неверно. Правильный ответ: {translation}.")

def add_word(self, word, translation):
self.vocabulary[word] = translation

def main():
trainer = VocabularyTrainer()

while True:
print("\nВыберите действие:")
print("1: Тренировка")
print("2: Добавить слово в словарь")
print("3: Выход")

choice = input("> ")

if choice == "1":
trainer.train()

elif choice == "2":
word = input("Введите слово на родном языке: ")
translation = input("Введите перевод слова на английский: ")
trainer.add_word(word, translation)
print(f"Слово '{word}' с переводом '{translation}' добавлено в словарь.")

elif choice == "3":
break

if __name__ == "__main__":
main()


Данный код создает простой тренажер для слов. Вы можете расширить словарный запас, добавив больше слов в словарь vocabulary или позволив пользователю самостоятельно добавлять новые слова через меню.

Подпишись 👉🏻 @KodduuPython 🤖
🆒2
Давайте создадим простой симулятор банковского счета, где пользователь может проверять свой баланс, вносить и снимать средства.

python
class BankAccount:
def __init__(self, owner, balance=0):
self.owner = owner
self.balance = balance

def deposit(self, amount):
self.balance += amount
print(f"Вы внесли {amount}$. Ваш текущий баланс: {self.balance}$.")

def withdraw(self, amount):
if amount > self.balance:
print("Недостаточно средств на счету!")
else:
self.balance -= amount
print(f"Вы сняли {amount}$. Ваш текущий баланс: {self.balance}$.")

def check_balance(self):
print(f"Баланс счета: {self.balance}$.")

def main():
account = BankAccount("Пользователь")

while True:
print("\nВыберите действие:")
print("1: Проверить баланс")
print("2: Внести средства")
print("3: Снять средства")
print("4: Выход")

choice = input("> ")

if choice == "1":
account.check_balance()

elif choice == "2":
amount = float(input("Введите сумму для внесения: "))
account.deposit(amount)

elif choice == "3":
amount = float(input("Введите сумму для снятия: "))
account.withdraw(amount)

elif choice == "4":
print("До свидания!")
break

else:
print("Неизвестный выбор. Попробуйте еще раз.")

if __name__ == "__main__":
main()


Такой симулятор может служить отправной точкой для создания более сложных финансовых приложений или игр на тему экономики.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте создадим простую текстовую игру-угадайку, где программа загадывает число от 1 до 100, а пользователь пытается угадать это число:

python
import random

def guess_number():
number = random.randint(1, 100)
attempts = 0

print("Я загадал число от 1 до 100. Попробуйте угадать его!")

while True:
try:
guess = int(input("Ваша попытка: "))
attempts += 1

if guess < number:
print("Загаданное число больше!")
elif guess > number:
print("Загаданное число меньше!")
else:
print(f"Поздравляю! Вы угадали число {number} за {attempts} попыток.")
break
except ValueError:
print("Пожалуйста, введите целое число.")

if __name__ == "__main__":
guess_number()


В этой игре программа сначала загадывает число с помощью генератора случайных чисел. Затем пользователь вводит свои предположения, а программа подсказывает, загаданное число больше или меньше предположенного. Когда число угадано, игра завершается.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте создадим небольшой скрипт, который будет создавать ASCII-арт из введенного пользователем текста:

python
from pyfiglet import figlet_format

def ascii_art_generator():
try:
text = input("Введите текст, который вы хотите преобразовать в ASCII-арт: ")
font = input("Выберите шрифт (например, 'slant', '3-d', 'bubble' или 'digital'): ")
art = figlet_format(text, font=font)
print(art)
except Exception as e:
print(f"Ошибка: {e}")
print("Возможно, вы ввели неверное имя шрифта. Попробуйте еще раз.")

if __name__ == "__main__":
ascii_art_generator()


Для работы этого скрипта вам понадобится установить библиотеку pyfiglet:
pip install pyfiglet


После установки вы можете запустить скрипт, ввести текст и выбрать шрифт, чтобы увидеть красивый ASCII-арт!

Подпишись 👉🏻 @KodduuPython 🤖
Давайте создадим простой скрипт для симуляции броска игральных костей:

python
import random

def roll_dice(num=2):
"""
Симулирует бросок num игральных костей.
Возвращает список значений каждой кости.
"""
return [random.randint(1, 6) for _ in range(num)]

def main():
while True:
num = input("Введите количество костей для броска или 'q' для выхода: ")

if num == 'q':
break

try:
num = int(num)
result = roll_dice(num)
total = sum(result)

print(f"Выпавшие значения: {', '.join(map(str, result))}")
print(f"Общая сумма: {total}")

except ValueError:
print("Пожалуйста, введите корректное число или 'q' для выхода.")

if __name__ == "__main__":
main()

С помощью этого скрипта вы можете симулировать бросок любого количества игральных костей и получать их значения, а также общую сумму выпавших очков.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте создадим простой пример использования PsychoPy, который будет отображать круг разного цвета в зависимости от нажатой клавиши: если пользователь нажимает r, круг становится красным, при нажатии g - зеленым, а при нажатии b - синим.

python
from psychopy import visual, event, core

# Создаем окно размером 600x600 пикселей с белым фоном
win = visual.Window([600, 600], color="white")

# Создаем круг с начальным цветом "серый"
circle = visual.Circle(win, radius=50, fillColor="gray", lineColor="gray")

# Основной цикл программы
while True:
# Ждем нажатия клавиши
keys = event.waitKeys()

# Меняем цвет круга в зависимости от нажатой клавиши
if 'r' in keys:
circle.setFillColor('red')
circle.setLineColor('red')
elif 'g' in keys:
circle.setFillColor('green')
circle.setLineColor('green')
elif 'b' in keys:
circle.setFillColor('blue')
circle.setLineColor('blue')
elif 'q' in keys: # Если пользователь нажал 'q', выходим из программы
break

# Отображаем круг
circle.draw()
win.flip()

# Закрываем окно
win.close()


Этот код создает окно с кругом, который меняет свой цвет при нажатии определенных клавиш. Если пользователь хочет завершить программу, он может просто нажать клавишу q.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте рассмотрим библиотеку pygame. Это популярная библиотека для создания игр на Python.

### Пример: Простая аркадная игра с подвижным объектом и уклонением от падающих прямоугольников.

import pygame
import random

# Инициализация pygame
pygame.init()

# Цвета
WHITE = (255, 255, 255)
RED = (255, 0, 0)
BLUE = (0, 0, 255)

# Размеры экрана
WIDTH, HEIGHT = 480, 600

screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Уклонение от прямоугольников")

# Класс для игрока
class Player(pygame.sprite.Sprite):
def init(self):
super().init()
self.image = pygame.Surface((50, 25))
self.image.fill(BLUE)
self.rect = self.image.get_rect(center=(WIDTH/2, HEIGHT-30))

def move(self):
pressed = pygame.key.get_pressed()
if pressed[pygame.K_LEFT] and self.rect.left > 0:
self.rect.move_ip(-5, 0)
if pressed[pygame.K_RIGHT] and self.rect.right < WIDTH:
self.rect.move_ip(5, 0)

def update(self):
self.move()

# Класс для падающих прямоугольников
class Block(pygame.sprite.Sprite):
def init(self):
super().init()
self.image = pygame.Surface((random.randint(50,100), 12))
self.image.fill(RED)
self.rect = self.image.get_rect(center=(random.randint(50, WIDTH-50), 0))
self.speed = random.randint(2, 6)

def update(self):
self.rect.move_ip(0, self.speed)
if self.rect.top > HEIGHT:
self.kill()

player = Player()
enemies = pygame.sprite.Group()
all_sprites = pygame.sprite.Group()
all_sprites.add(player)

running = True
clock = pygame.time.Clock()

while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

screen.fill(WHITE)

if random.random() < 0.02:
new_enemy = Block()
enemies.add(new_enemy)
all_sprites.add(new_enemy)

all_sprites.update()
all_sprites.draw(screen)

if pygame.sprite.spritecollideany(player, enemies):
player.kill()
running = False

pygame.display.flip()
clock.tick(30)

pygame.quit()


В этой игре игрок управляет синим прямоугольником, который двигается влево или вправо с помощью стрелок. Цель игры - уклоняться от падающих красных прямоугольников. Если игрок сталкивается с падающим прямоугольником, игра завершается.

Подпишись 👉🏻 @KodduuPython 🤖
Посмотрим на библиотеку matplotlib, которая является одной из наиболее популярных библиотек для визуализации данных на Python.

### Пример: Визуализация роста функции sin(x) и cos(x) на одном графике

Python
import numpy as np
import matplotlib.pyplot as plt

# Генерируем массив данных для оси X
x = np.linspace(0, 2 * np.pi, 1000)

# Вычисляем значения sin(x) и cos(x)
y1 = np.sin(x)
y2 = np.cos(x)

# Создаем график
plt.figure(figsize=(8, 6))
plt.plot(x, y1, label='sin(x)', color='blue')
plt.plot(x, y2, label='cos(x)', color='red')

# Добавляем заголовок и подписи к осям
plt.title('Графики функций sin(x) и cos(x)')
plt.xlabel('x')
plt.ylabel('y')

# Добавляем легенду
plt.legend()

# Отображаем сетку
plt.grid(True)

# Отображаем график
plt.show()


В этом коде мы используем numpy для генерации массива данных и вычисления значений функций sin и cos, а затем визуализируем их с помощью matplotlib. График показывает функции sin(x) и cos(x) в диапазоне от 0 до 2pi. На графике синим обозначена функция sin(x), красным - cos(x).

Подпишись 👉🏻 @KodduuPython 🤖
2
Рассмотрим библиотеку pandas, которая является основным инструментом для анализа данных в Python.

### Пример: Анализ простого набора данных с использованием pandas

Предположим, у вас есть следующий CSV-файл (data.csv) с данными о продажах:

Date,Product,Amount
2023-01-01,Apple,10
2023-01-01,Banana,15
2023-01-02,Apple,12
2023-01-02,Banana,20
2023-01-03,Apple,14
2023-01-03,Banana,22

Давайте анализировать этот набор данных:

import pandas as pd

# Загрузим данные из CSV файла
df = pd.read_csv('data.csv')

# Выведем первые строки набора данных для проверки
print(df.head())

# Группировка данных по продуктам и подсчет общего количества для каждого продукта
total_sales = df.groupby('Product').sum()
print("\nОбщие продажи по продуктам:")
print(total_sales)

# Найдем день с максимальным объемом продаж для каждого продукта
max_sales_day = df.groupby('Product')['Amount'].idxmax()
print("\nДень с максимальным объемом продаж для каждого продукта:")
print(df.loc[max_sales_day])

В этом коде мы используем pandas для загрузки и анализа данных о продажах. Сначала мы загружаем данные из CSV-файла, затем группируем данные по продуктам, чтобы узнать общее количество продаж для каждого продукта, и, наконец, определяем день с максимальным объемом продаж для каждого продукта.

Этот код даст представление о мощи pandas для анализа и обработки данных.

Подпишись 👉🏻 @KodduuPython 🤖
👍2