CodeLab
145 subscribers
538 photos
20 videos
159 links
Говорим просто о сложном

Обсуждение, новости, материал и сплетни — все здесь https://t.me/CodeLabMLChat
Download Telegram
🧑‍💻 Итак, сегодня поговорим о делении в Python. На самом деле с делением в Python не все так просто, сейчас я вам это докажу:

🔗 Ниже дан пример. Для начала, попробуйте ответить у себя в голове⚙️

"Остаток от деления работает так, чтобы знак результата совпадал со знаком делителя"


1️⃣ print(10 % -3)



⚙️ Итак, в первом ответ -2. Сейчас объясню почему. Нам нужно найти ближайший множитель и уже через него найти остаток от деления, а с помощью этого равенства ❗️a=(a//b)×b+(a%b)❗️ мы проверим наши вычисления

0️⃣ Рассмотрим подробно:

"Ближайший множитель делителя берется так, чтобы частное
(a//b) округлялось вниз до меньшего целого числа"


🔗 Найдем целую часть 10 / −3 и получим -3.333... ➡️ Python округляет вниз, поэтому 10 // −3 = −4 ➡️ теперь умножим нашу целую часть -4 на делитель -3 и получаем 12 ➡️ остается найти остаток, а это делается вот так 10 − 12 = −2 (Остаток рассчитывается как разница между делимым (10) и произведением целой части на делитель (у нас это 12) ) ➡️

➡️ Остаток -2 найден
7❤‍🔥31🤓1👨‍💻1
🧑‍💻Продолжаем обучаться ML...

0️⃣🔗 В NumPy-массивы можно передавать не только целые числа, но и дробные:

import numpy as np
b = np.array([1.7, 2.3, 5.7])

print(b)
#[1.7 2.3 5.7]


П Р О Д О Л Ж Е Н И Е
3❤‍🔥2👍2🤯1👨‍💻1
🧑‍💻 Доброй вам ночи гайс! Продолжаем тему деления в Python, это куда интереснее, чем вы думаете...

Мы прекрасно знаем, что в нашем любимом питончике есть три типа чисел. Int — целые положительные и отрицательные числа и ноль.

🔗 По умолчанию Python распознаёт все числа в десятичной системе, но ещё умеет работать в двоичной, восьмеричной и шестнадцатеричной.

🔗 Нам всего лишь надо поставить — 0b для двоичной системы, 0o для восьмеричной и 0x для шестнадцатеричной.

b = 0b11011000 # бинарный (двоичный) формат

o = 0o12 # восьмеричный

h = 0x12 # шестнадцатеричный


⚙️ Кстати, вот это интересная штука, мы можем разделять разряды числа нижним подчёркиванием:

x = 2_684_777_020
print(x)

#2684777020


Тип данных float представляет вещественные числа, которые могут быть как положительными, так и отрицательными, с плавающей точкой. Такие числа можно записывать в стандартном формате или использовать научную нотацию с символами e или E.
5❤‍🔥31🥰1
⚙️ Какой будет ответ?

def make_incrementer(n):
return lambda x: x + n

increment_by_2 = make_incrementer(2)
increment_by_5 = make_incrementer(5)

n = 10
print(increment_by_2(n) + increment_by_5(n))
3❤‍🔥1👍1
Ответы ниже
Anonymous Quiz
0%
34
67%
27
25%
15
0%
30
8%
37
2❤‍🔥1👍1🤓1
This media is not supported in your browser
VIEW IN TELEGRAM
🧑‍💻 Библиотеки Python под различные задачи
1🤯4❤‍🔥1
🧑‍💻 Гайс, помните пост?

def make_incrementer(n):
return lambda x: x + n

increment_by_2 = make_incrementer(2)
increment_by_5 = make_incrementer(5)

n = 10
print(increment_by_2(n) + increment_by_5(n))


🔗 Почему я решил разобрать этот код? Да потому что 44% бездарей (моих любимых подписчиков) не смогли ответить. Если что, я шучу насчет бездарей, я специально вам сложные даю, чтобы голову свою напрягали.

0️⃣ Функция принимает один аргумент n, а дальше идет 🟰lambda🟰 функция. Че это такое? Кароч, lambda — ключевое слово, указывающее, что создаётся функция. 🔗 А сама функция создаёт функцию, которая принимает параметр x и возвращает x + 2 ( результат функции зависит как от x, так и от значения n, переданного в функцию 🟰make_incrementer🟰).

⚙️ Лямбда-функции в Python являются анонимными. Это означает, что функция безымянна. Как известно, ключевое слов def используется в Python для определения обычной функции. В свою очередь, ключевое слово lambda используется для определения анонимной функции.


 def make_incrementer(n):
return lambda x: x + n


1️⃣ Так, теперь 🟰increment_by_2🟰 и 🟰increment_by_5🟰 — это теперь функции, которые созданы через вызов 🟰make_incrementer🟰

increment_by_2 = make_incrementer(2)
increment_by_5 = make_incrementer(5)


🔗 Каждая из них хранит своё значение n:

🟰 increment_by_2 содержит n = 2.
🟰 increment_by_5 содержит n = 5.


▫️Если вызвать increment_by_2(10), то результат будет 10 + 2 = 12.
▫️Если вызвать increment_by_5(10), то результат будет 10 + 5 = 15.

2️⃣ Переменной n присваивается значение 10

n = 10
print(increment_by_2(n) + increment_by_5(n))


3️⃣ Переменной n присваивается значение 10, кароч тут происходят два вызова:

🔗 Первый вызов: 🟰increment_by_2(n):🟰

⚙️ Значение n из глобальной области передаётся в функцию как x = 10.

Результат: 10 + 2 = 12.

🔗 Второй вызов: 🟰increment_by_5(n):🟰

⚙️ Значение n снова передаётся в функцию как x = 10.

Результат: 10 + 5 = 15.

🧑‍💻 По итогу, код выведет 27
11❤‍🔥2👍1🤓1
🧑‍💻 Гайс, медленно, но верно мы продвигаемся. Хоть посты выходят сейчас реже, я стараюсь писать их качественнее. Работа ведется над двумя каналами, а также над их продвижением, надеюсь, вы меня понимаете 🫶

Проект у нас — менеджер паролей. В течение всей темы рассмотрим саму концепцию программы, как она работает и т.д


⚙️ Нам понадобятся две библиотеки:

import json
import os


1️⃣ Библиотека json

Библиотека json в Python используется для работы с данными в формате JSON (JavaScript Object Notation). JSON — это стандартный формат обмена данными, который легко читается людьми и машинами. В Python эта библиотека позволяет сериализовать объекты Python в формат JSON и наоборот, что полезно для обмена данными с другими программами, сохранения настроек, обмена данными через веб-сервисы и т. д.


Когда использовать: Если нужно сохранить данные в файл, чтобы потом их прочитать или передать кому-то.
66❤‍🔥1👍1
🧑‍💻 Йоу воссап, друзья, потихонечку помаленечку мы продвигаемся. Но нам нельзя никак останавливаться, поэтому предлагаю заняться чем то серьезным, а именно — векторы, матрицы и вся эта сложная штука...

🔗 Итак, начнем конечно же с векторов, базу знать нам необходимо...

▫️Че такое этот ваш вектор? Это объект (математический), который имеет длину (модуль, мера его размера) и направление (ориентация в пространстве)

v = [u₁, u₂ u₃] — вот пример вектора в трехмерном пространстве

Как найти его длину (модуль) ?

|v| = √u²₁, u²₂ u²₃ + ... + u²ₓ

Например:

Если v = [3, 4], то v = 9 + 16 = 5 (я надеюсь, вы поняли че мы сделали, просто в формулу вставьте числа)

Для векторов функция numpy.linalg.norm вычисляет длину (или величину) вектора. По умолчанию она использует Евклидову норму (L2-норма):


import numpy as np
vp = np.array([3, 4])
length = np.linalg.norm(vp)
print(length)
# 5.0


🔗 Касаемо Евклидовой нормы, мы рассмотрим это дальше, пока не надо париться...

П Р О Д О Л Ж Е Н И Е
❤‍🔥1👍1🤓1
🧑‍💻 Гайс здарова 🤚

🔗 Можно как вариант разобрать задания на 🟰Stepik🟰, там как раз цикл 🟰while🟰 начался)

Задание перед вами, надеюсь, вам такое оформление нравится, ведь я очень стараюсь 🙏

'на вход подается последовательность слова...' — вот это все запоминаем и пишем:


d = input()


Теперь сам цикл 🟰while🟰:

while d != 'КОНЕЦ':


цикл продолжается, пока переменная dead не равна строке "КОНЕЦ"


Выводим текущее значение:

print(d)


И снова запрашиваем ввод у пользователя (Тип переменная d = 'какое то значение', затем он обновляется )

d = input()


🔗 Ну и сам код:

d = input()
while d != 'КОНЕЦ':
print(d)
d = input()
❤‍🔥3👍1
#1

a = [1, 2, 3]
b = a
c = a[:]
b[0] = 99
c[1] = 88
a.append(4)

print(a)
print(b)
print(c)
❤‍🔥2🥰1🤯1
#1 (Представляйте, что в столбик ответы, тг не позволяет прост )
Anonymous Quiz
23%
[99, 2, 3, 4] [99, 2, 3, 4] [1, 88, 3]
15%
[99, 2, 3, 4] [1, 2, 3, 4] [1, 88, 3]
31%
[99, 2, 3] [99, 2, 3] [1, 88, 3]
31%
[1, 2, 3, 4] [1, 2, 3, 4] [1, 88, 3]
❤‍🔥2👍1🤯1
Media is too big
VIEW IN TELEGRAM
🧑‍💻1️⃣ Скалярное произведение векторов

Скалярное произведение двух векторов a и b — это сумма произведений их соответствующих компонентов


🔗 a⋅b=∣a∣∣b∣cos(θ)

🔗 ∣a∣ и ∣b∣ — длины векторов, θ — угол между ними


Если угол равен 90°, то скалярное произведение равно 0, так как cos(90°) = 0


Теперь напишем пример на Python:

П Р О Д О Л Ж Е Н И Е
❤‍🔥3🥰1
Forwarded from CodeLab ML
Media is too big
VIEW IN TELEGRAM
🧑‍💻1️⃣ Скалярное произведение векторов

Скалярное произведение двух векторов a и b — это сумма произведений их соответствующих компонентов


🔗 a⋅b=∣a∣∣b∣cos(θ)

🔗 ∣a∣ и ∣b∣ — длины векторов, θ — угол между ними


Если угол равен 90°, то скалярное произведение равно 0, так как cos(90°) = 0


Теперь напишем пример на Python:

import numpy as np
a = ([1, 2, 3])
b = ([4, 5, 6])

dot_product = np.dot(a, b)
print(dot_product)


Dot Product — это операция между двумя векторами, которая возвращает одно число (скаляр). Она вычисляется как сумма произведений соответствующих компонент векторов.
❤‍🔥3👍1
Гайс, переходим, сейчас там наибольшая активность 🔽🔽🔽https://t.me/CodeLabML
❤‍🔥2👍1🤯1
Forwarded from CodeLab ML
Строим график синусоиды

0️⃣ Импортируем две базовые библиотеки:

import matplotlib.pyplot as plt
import numpy as np


1️⃣ Создание фигуры (с помощью Figure)


fig = plt.figure(figsize=(5, 4))


🔗 Итак, 🟰plt.figure🟰 создаёт новый объект, на которой будут отображаться графики. А что касаемо параметров (5, 4) ? Параметры отвечают за размер фигуры:

первая цифра (5) — это ширина фигуры
вторая цифра (4) — это высота фигуры


Итак, создаётся фигура размером 5x4 дюйма


2️⃣ Добавляем оси

ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])


▫️Этот метод добавляет оси на заданную фигур.

▫️[0.1, 0.1, 0.8, 0.8] — Список, который задаёт положение и размер области для осей внутри фигуры в виде четырёх чисел и вот как это выглядит:

0.1 — отступ от левой границы фигуры.
0.1 — отступ от нижней границы фигуры.
0.8 — ширина осей относительно ширины фигуры.
0.8 — высота осей относительно высоты фигуры.
2❤‍🔥1👍1
Гайс, всем сладких! Завтра выложу классный пост 🧑‍💻
❤‍🔥21
def add_to_list(val, my_list=None):
if my_list is None:
my_list = []
my_list.append(val)
return my_list

print(add_to_list(1))
print(add_to_list(2))
❤‍🔥1👍1🤓1
Что выведет код сверху?
Anonymous Quiz
70%
[1], [2]
0%
[1], [1, 2]
20%
[1, 2], [1, 2]
10%
Ошибка выполнения
❤‍🔥2👍2
🧑‍💻 Так, продолжаем машинку, завтра мб выложу тесты)

Помните мы написали формулу цена=100+50×количество комнат+небольшое расхождение.

⭕️ Когда мы говорим, что наклон
прямой равен 50, это означает, что каждый раз, добавляя в дом одну комнату, мы вычисляем, что цена дома вырастет на 50 долларов. Когда говорим, что y-пересечение прямой равно 100, это означает, что стоимость гипотетического
дома с нулевым количеством комнат базовая — 100 долларов.
❤‍🔥2