мыш
654 subscribers
38 photos
19 videos
3 files
23 links
Нескучные туториалы по Python и ML
Download Telegram
Channel created
В Python очень долго не появлялся оператор match (switch в других языках), во многом потому, что часто использование функций как объектов дает возможность сделать то же самое, но более коротко и читаемо. Сравните дурацкий пример с калькулятором, написанный 3 раза - на if, на match, и на словаре с функциями.
Генераторы на канале, на очереди видео для новичков по работе с файлами
Как обычно поздно реагирую на новости. О новом редакторе Zed за последние несколько месяцев не рассказал только ленивый. Я вообще убежденный ценитель PyCharm, но последнее время был в поисках нового редактора для видео, который был бы минималистичным как Sublime, но не настолько, чтобы не иметь встроенного терминала.

И тут попробовал убийцу VS Code, и мне он очень понравился. Так что следующее видео будет записано в Zed, а если хотите видео со сравнением всех редакторов, дайте знать
Мистер Андерсон!

Видео о работе с файлами уже на канале. На следующей неделе будет ремейк видео про Pytest. А в комментариях можете закинуть свои идеи для следуюдего контента.
Очень хитрый вопрос с интервью. Чему равен a?

TL;DR: во второй строке будет вызвано исключение TypeError, но тройка в конец все равно добавится. Кортеж будет равен ([1, 2, 3], [4, 5]).

Первая строка выполнится без проблем - список может быть элементом кортежа, хотя на практике так делать точно не стоит. Изменить список в кортеже тоже можно - неизменяемость кортежа предполагает неизменяемость только ссылки на объект, а не его состояния. И составной оператор присвоения действительно не изменяет ссылку на объект. Проблема здесь в том, что уже после изменения объекта на месте он пытается присвоить результат первому элементу кортежа, что и вызывает TypeError.
Бегущий по Pytest уже на канале

Еще у меня готово 2 сценария - по аннотациям типов и NumPy. Что-то из этого ждите на следующей неделе
Аннотации типов уже на канале

На обложке Безухий Хойчи из фильма ужасов "Кайдан"
Media is too big
VIEW IN TELEGRAM
Тест на тимлида
This media is not supported in your browser
VIEW IN TELEGRAM
Сеньор уволился

Извинияюсь, увлекся переозвучкой
This media is not supported in your browser
VIEW IN TELEGRAM
Если кто-то ждет видео, оно будет сегодня или завтра
Герои не носят плащи - видео о NumPy уже на канале.

В этот раз у нас более интерактивный формат - ниже будут решения задач из видео
Ответы к задачам из видео

Задача #1 - проверить основное тригонометрическое тождество: сумма квадрата синуса и квадрата косинуса любого угла должна быть равна единице.


import numpy as np

x = np.array([1, 2, 3])
print(np.sin(x) 2 + np.cos(x) 2)


Задача #2 - нормализовать массив случайных чисел: привести все элементы к диапазону [0; 1], а потом сделать обратное преобразование.


import numpy as np

x = np.random.randint(1, 10, (3, 3))
print(x)

x_min = x.min()
x_range = x.max() - x.min()
x = (x - x_min) / x_range
print(x)

x = x * x_range + x_min
print(x)


Задача #3 - убрать выбросы из массива: удалить все элементы, которые больше среднего в 3 раза или меньше 1/3 от среднего.


import numpy as np

x = np.array([1, 20, 30, 100, 40, 5, 200])
x = x[(x < 3 * x.mean()) & (x > x.mean() / 3)]
print(x)