Занятие 1
import numpy as np
from sklearn.neural_network import MLPClassifier

X = np.array([
    [1.0, 2.0],
    [2.0, 3.0],
    [3.0, 1.0],
    [4.0, 2.0]
])
y = np.array([0, 0, 1, 1])

# 1. Создаём и обучаем MLPClassifier с одним скрытым слоем из 3 нейронов.
clf = MLPClassifier(hidden_layer_sizes=(3,), solver='lbfgs', random_state=42, max_iter=2000)
clf.fit(X, y)

# 2. Предсказываем класс для точки [1.5, 2.0].
pred = clf.predict(np.array())

# 3. Выводим только класс.
print(int(pred[0]))

Занятие 3
numbers = [5, 3, 8, 5, 2, 3, 9, 1]

# Добавьте число 7 в список с помощью метода append
numbers.append(7)

# Отсортируйте список с помощью метода sort
numbers.sort()

# Преобразуйте список в множество unique_numbers
unique_numbers = set(numbers)

# Выведите отсортированный список с подписью
print("Отсортированный список:", numbers)
print("Множество уникальных значений:", unique_numbers)

Занятие 4
import random

# Генерация 10 случайных точек
points = []
for _ in range(10):
    power = random.randint(1, 100)
    noise = random.randint(0, power)
    angle = random.randint(0, 359)
    points.append({"power": power, "noise": noise, "angle": angle})
print("Первоначальные данные с БВС:", points)

# Продолжи код
signals = []
angles = set()
for p in points:
    signal = p["power"] - p["noise"]
    signals.append((signal, p["angle"]))
    angles.add(p["angle"])

# Находим максимальный и минимальный signal
max_signal = max(signals, key=lambda t: t[0])[0]
min_signal = min(signals, key=lambda t: t[0])[0]

# Выводим результаты
print("Сигналы: (signal, angle):", signals)
print("Уникальные углы:", angles)
print("Максимальный сигнал:", max_signal)
print("Минимальный сигнал:", min_signal)

Занятие 5
try:
    num = float(input("Введите число: "))
    result = 100 / num
    print("Результат:", result)
except ValueError:
    print("Ошибка: не число!")
except ZeroDivisionError:
    print("Ошибка: делить на ноль нельзя!")

Занятие 7
import pandas as pd

df = pd.DataFrame({'color': ['red', 'green', 'blue', 'green', 'red']})
df['color'] = df['color'].astype('category')
codes = df['color'].cat.codes

print("Коды категорий:", "[", *codes, "]")

Занятие 8
import pandas as pd
from animals import init_animals

def to_codes(animal_list):
    s = pd.Series(animal_list)
    _, uniques = pd.factorize(s, sort=False) 
    mapping = pd.Series(range(len(uniques)), index=uniques).to_dict()
    return mapping

animals = init_animals()
print(to_codes(animals))

Занятие 9
import json

data = {"name": "Иван", "age": 25, "city": "Москва"}

# Сохраните словарь data в файл data.json в формате JSON
with open("data.json", "w", encoding="utf-8") as file:
    json.dump(data, file, ensure_ascii=False)

# Прочитайте содержимое файла обратно в переменную result
with open("data.json", "r", encoding="utf-8") as file:
    result = json.load(file)

# Выведите result в нужном формате
print("Результат:", result)

Занятие 11
import requests

# Выполните GET-запрос по адресу
response = requests.get("https://jsonplaceholder.typicode.com/todos/1")

# Преобразуйте ответ в словарь
result = response.json()

# Выведите результат
print("Результат:", result)

Занятие 12
from requests2 import get, RequestException

# Здесь ваш код -----------
def get_city_sensorsAPI():
    url = "https://city-eco-api.futurecity.ru/sensors"
    try:
        response = get(url)
        return response.json() # список словарей
    except RequestException:
        # В случае ошибки просто вернём пустой список,
        # чтобы программа не падала
        return []


def process_sensors(data):
    for sensor in data:
        district = sensor.get("district")
        pm25 = sensor.get("pm25")
        noise = sensor.get("noise")
        humidity = sensor.get("humidity")
        status = sensor.get("status")

        if pm25 is not None and pm25 > 50:
            print(
                f"В районе {district} превышен уровень загрязнения PM2.5: {pm25}. "
                f"Запустить очистители воздуха."
            )

        if noise is not None and noise > 65:
            print(
                f"В районе {district} превышен уровень шума: {noise} дБ. "
                f"Снизить уровень шума."
            )

        if humidity is not None and humidity < 30:
            print(
                f"В районе {district} критически низкая влажность: {humidity}%. "
                f"Включить полив."
            )

        if status != "ok":
            print(f"В районе {district} ошибка в данных. Срочно проверить датчики!")

    # ---------------
    print("Режим ЭКО: тревога устранена.")


if __name__ == "__main__":
    data = get_city_sensorsAPI()
    process_sensors(data)

Занятие 13
import matplotlib.pyplot as plt
import numpy as np

# Массив x от -10 до 10 включительно
x = np.arange(-10, 11, 1)

# Функция y = x^2
y = x ** 2

# Построение графика
plt.plot(x, y)

# Подписи осей и заголовок
plt.xlabel("x")
plt.ylabel("y = x^2")
plt.title("График функции y = x^2")

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