Код на салфетке
2.24K subscribers
749 photos
15 videos
2 files
792 links
Канал для тех, кому интересно программирование на Python и не только.

Сайт: https://pressanybutton.ru/
Чат: https://t.iss.one/+Li2vbxfWo0Q4ZDk6
Заметки автора: @writeanynotes

Реклама и взаимопиар: @Murzyev1995
Сотрудничество и др.: @proDreams
Download Telegram
Приветствую, на связи Иван.

Хочу рассказать вам о Лёше Кластере.
Ещё до того, как я начал программировать, я смотрел ролики Лёши на YouTube и поражался его горящим глазам. Он с интересом и знанием дела пишет программы, проекты для ретро-консолей и развивает OpenSourse. Именно с его видео начался мой путь в IT и создание многих проектов, в числе которых и наш замечательный и уютный канал.

Он недавно завёл свой Telegram-канал "Лёша Кластер Live". На нём он делится своими мыслями, рассказывает о проектах, процессе записи видео.

Хочется поддержать хорошего человека рекомендацией подписаться на его канал!
🔥7🤡2
Записали разбор вчерашней задачи!
Мы продолжаем работать над визуальной составляющей видео, напишите, как вам?

Смотреть на YouTube.

Будем благодарны, если досмотрите видео до конца и поставите лайк. Это покажет YouTube, что видео интересное и, что его следует рекомендовать. Спасибо!

P.S. Текстовый разбор через несколько часов 😉
🔥43
Задача на работу с функцией и списками может показаться немного запутанной из-за множественных присвоений и изменения элементов. Давайте разберём её пошагово, чтобы понять, почему правильный ответ именно такой. Задачу решили 16% из 30-ти человек.

Код задачи:
def shuffle_lists(x: list, y: list):
x, y = y, x
x[0], y[0] = y[0], x[0]
return x, y

a = [1, 2, 3]
b = [4, 5, 6]

c, d = shuffle_lists(a, b)
a[1] = 7
d[2] = 8

print(a, b, c, d)


Разбор задачи

Определяем функцию shuffle_lists, принимающую два списка x и y.

Внутри функции сначала происходит обмен значений переменных x и y, в этой строке:
 x, y = y, x


Теперь x ссылается на список, который изначально был y, а y ссылается на список, который изначально был x.

Затем происходит обмен первых элементов списков:
x[0], y[0] = y[0], x[0]


Теперь первый элемент нового x (который изначально был списком y) и новый y (который изначально был списком x) меняются местами.

Возвращаем кортеж изменённых списков.

Далее создаём две переменные со списками a = [1, 2, 3] и b = [4, 5, 6].
И передаём их в функцию shuffle_lists.

После выполнения функции, результат присваивается переменным c и d.
Получается следующий результат:
- Переменная d ссылается на список a и он имеет значение `[4, 2, 3].
- Переменная `c` ссылается на список b, и он имеет значение `[1, 5, 6].

Мы только изменили первые значения списков. Поскольку список, это ссылочный тип данных, то передав список в функцию и изменив его, меняется и "оригинал".

Далее, мы делаем две замены:
- Присваиваем `a[1] = 7`. Это изменяет второй элемент списка a, который теперь становится [4, 7, 3]. Это же изменяет и связанный список d.
- Присваиваем d[2] = 8. Так как d ссылается на тот же объект, что и a, изменяется третий элемент списка a, который теперь становится [4, 7, 8].

Выводим все четыре переменные на экран.

Правильный ответ: [4, 7, 8] [1, 5, 6] [1, 5, 6] [4, 7, 8].


Почему такой ответ?
Все переменные ссылаются на списки, и изменения отражаются на всех переменных, ссылающихся на тот же список. В Python списки изменяемы, и при передаче их в функции или присвоении переменных, фактически передаются ссылки на эти списки, а не их копии. Поэтому изменения в одном месте могут отразиться на всех переменных, ссылающихся на тот же объект.
🔥5🤔1
Привет, друзья!

Прошла еще одна неделя, и у нас накопилось много интересных материалов: статьи, новости и полезные советы. Вот наш недельный дайджест:

Понедельник (26.08.2024) Пагинация в aiogram 3

Вторник (27.08.2024) Опрос

Четверг (29.08.2024) FastAPI 1. Инициализация проекта

Пятница (30.08.2024) Пятничный кинорелакс

Суббота (31.08.2024) Задача

Воскресенье (01.09.2024) Видео разбор субботней задачи и Текстовый разбор задачи


Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе!

С уважением,
Команда канала "Код на салфетке".

#дайджест #материалы #новости #код_на_салфетке
🔥6
Tortoise ORM - Простая асинхронная альтернатива SQLAlchemy
Автор: Иван Ашихмин

В этом посте, кратко расскажу про библиотеку Tortoise ORM и о том, как она отличается от SQLAlchemy.


Читать пост в Telegram

Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram

#PostgreSQL #SQLite #ORM #MySQL #работа_с_БД #SQLAlchemy #Pydantic #Tortoise #ОРМ #Модели_БД #База_Данных
10🔥7👍2😱1
Что для вас важно в обучающих видео уроках? Выберите один или несколько вариантов ответа. В комментариях более полный вопрос.
Anonymous Poll
46%
Практическая сторона урока
12%
Теоретическая сторона урока
61%
Баланс теории/практики
30%
Визуальный ряд
12%
Не смотрю обучающие видео
2%
Другое (напишите свой вариант в комментарии)
FastAPI 2. Подготовка проекта
Автор: Иван Ашихмин

В этом посте мы рассмотрим принципы организации структуры проекта на FastAPI, упростим запуск приложения с помощью Poetry и создадим файл для переменных окружения, необходимых для подключения к PostgreSQL.

Читать пост в Telegram

Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram

#Python #Гайды #dotenv #FastAPI #SQLAlchemy #Pydantic #переменные_окружения #pydantic_settings #poetry #PostgresDsn #SecretStr
24🔥8👍1💅1
Приветствуем!

Продолжаем рубрику "Вопросы и ответы"!

В течение недели вы в комментариях к этому посту можете задавать различные вопросы нашей команде. Вопросы могут быть о чём угодно (в рамках разумного): о постах, о Python, о разработке в целом.

Ровно через неделю мы подготовим пост с ответами на появившиеся вопросы.

Также у нас есть чат, в котором тоже можно задавать вопросы и просто общаться)
🔥4
Приветствую!

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

Фильм: Братья из Гримсби

Год: 2016

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

Приятного просмотра!
10🔥7
Что выведет этот код? №36

Задача:
У вас есть два списка посещений пользователей на сайте за разные дни. Необходимо найти пользователей, которые заходили на сайт в оба дня, но не были активны в промежуток между этими днями.

Условие:
- Первый список содержит идентификаторы пользователей, которые заходили на сайт в первый день.
- Второй список содержит идентификаторы пользователей, которые заходили на сайт во второй день.
- Третий список содержит идентификаторы пользователей, которые заходили на сайт между этими днями.


Напишите в комментарии, как вам новый формат задачи?
🔥3
Что выведет код с изображения? №36
Anonymous Quiz
25%
3
22%
4
9%
5
28%
TypeError
16%
6
🔥5
Сегодня разберём вчерашнюю задачу, где нам нужно найти пользователей сайта. Верно ответили 17% из 18-ти человек.


Задача:
У вас есть два списка посещений пользователей на сайте за разные дни. Необходимо найти пользователей, которые заходили на сайт в эти дни, но не были активны в промежуток между этими днями.


Условие:
- Первый список содержит идентификаторы пользователей, которые заходили на сайт в первый день.
- Второй список содержит идентификаторы пользователей, которые заходили на сайт во второй день.
- Третий список содержит идентификаторы пользователей, которые заходили на сайт между этими днями.


Код задачи:
day1 = {101, 102, 103, 104, 105, 106}
day2 = {104, 105, 106, 107, 108, 109}
midday = {105, 107, 110}

common = day1 & day2
inactive_in_between = common - midday

day2.add(102)
midday.add(103)

result = len(inactive_in_between |
midday -
day2)
print(result)



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

1. Шаг первый: пересекаем множества day1 и day2 с помощью оператора & (пересечение).
common = day1 & day2


Оператор & находит общие элементы между двумя множествами. В данном случае, мы находим пользователей, которые заходили на сайт в оба дня. Получаем:
common = {104, 105, 106}


2. Шаг второй: вычитаем из этого множества тех, кто был активен в промежуточный день, используя оператор - (разность).
inactive_in_between = common - midday


Оператор - убирает из множества все элементы, которые есть в другом множестве. Здесь мы убираем пользователей, заходивших в промежуток между днями. Остаётся:
inactive_in_between = {104, 106}


3. Шаг третий: добавляем в day2 пользователя 102, а в midday — 103.
day2.add(102)
midday.add(103)


Теперь:
- day2 = {102, 104, 105, 106, 107, 108, 109}
- midday = {103, 105, 107, 110}

4. Шаг четвёртый: финальное выражение.
result = len(inactive_in_between | midday - day2)


Внутри функции len(), мы выполняем две операции: | и -, однако, выполнение идёт не по порядку. В Python приоритет операций с множествами такой, что сначала выполняется операция вычитания (-), а затем объединение (|). Д

- Первым делом выполняется вычитание midday - day2. Убираем всех пользователей, которые были во второй день, из тех, кто заходил между днями:
{103, 105, 107, 110} - {102, 104, 105, 106, 107, 108, 109} = {103, 110}


- Затем выполняется объединение с множеством inactive_in_between. Объединяем множество пользователей, которые были неактивны в промежутке, с теми, кто заходил между днями и не зашёл во второй день:
{104, 106} | {103, 110} = {103, 104, 106, 110}


Теперь в результате остаются пользователи: {103, 104, 106, 110}.

Осталось посчитать количество элементов в этом множестве:
result = len({103, 104, 106, 110}) = 4



Правильный ответ: — 4.
🔥6👍1
Привет, друзья!

Прошла еще одна неделя, и у нас накопилось много интересных материалов: статьи, новости и полезные советы. Вот наш недельный дайджест:

Понедельник (02.09.2024) Дайджест за предыдущую неделю

Вторник (03.09.2024) Tortoise ORM - Простая асинхронная альтернатива SQLAlchemy

Среда (04.09.2024) Опрос

Четверг (05.09.2024) FastAPI 2. Подготовка проекта

Пятница (06.09.2024) Вопросы и ответы и Пятничный кинорелакс

Суббота (07.09.2024) Задача

Воскресенье (08.09.2024) Текстовый разбор задачи


Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе!

С уважением,
Команда канала "Код на салфетке".

#дайджест #материалы #новости #код_на_салфетке
104🔥2
Обновление библиотеки - AIOgram 3.12 и 3.13
Автор: Иван Ашихмин

Вышла новая версия AIOgram 3.12 и 3.13. Список изменений в новых версиях на русском языке.


Читать пост в Telegram

Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram

#Telegram #Bot_API #список_изменений #aiogram #Telegram_бот #новая_версия #Telegram_Stars #обновление #звёзды #aiogram3 #розыгрыши #платные_меди
🔥5
Сравнение hash map С и C++ с dict Python (часть 2)
Автор: Eugene Kaddo

Данная статья продолжит тему отличия hash table C/C++ от dict Python и способов их реализации.


Читать пост в Telegram

Файлы к посту, можно получить в боте по коду: 532480

Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram

#Python #Код_на_салфетке #Сравнение_Python_и_C #C #C++ #hash_map #hash_table #dict
10🔥6❤‍🔥1🤯1
Привет, Друзья!

Хотим поздравить всех наших подписчиков с днём программиста!

Желаем всем успехов в развитии навыков, жирных офферов и интересных проектов!

С уважением,
Команда канала "Код на салфетке".
1211🔥106🌚3
Привет, Друзья!

Хотим порекомендовать вам авторский канал про веб-разработку и сетевые технологии - "Давайте про IT".

Богдан специалист в Python-разработке и охотно делится со всеми гайдами, а также снимает видео! Сейчас на его канале активно рассказывается про OpenWRT и обходы сами знаете чего 😉

Наверняка вы найдёте много полезного для себя.
🔥8🤡1
Telegram Stars: Подробная инструкция по выводу
Автор: Иван Ашихмин

В этой статье разберёмся, что такое Telegram Stars, как их получить и пройдём полный путь по выводу звёзд с канала в рубли.


Читать пост в Telegram

Пост на сайте
Поддержать проект на Boosty
Поддержать проект в Telegram

#Гайды #Telegram_бот #Telegram_Stars #криптовалюта #TON #toncoin #вывод_звёзд #Вывод_ton
22🔥8👍2🤩2
Приветствую, друзья!

Сегодня пятница, а это значит, что пришло время нашей традиционной рубрики! На этой неделе мы приготовили для вас нечто особенное – трогательную и вдохновляющую историю. Этот фильм рассказывает о последних днях на Земле и невероятном путешествии, которое совершает главный герой вместе со своим верным роботом и собакой. Данный фильм затронет ваше сердце и заставит задуматься о важности человечности, дружбы и надежды.

Устраивайтесь поудобнее и приготовьте что-нибудь вкусное, ведь вас ждет незабываемое киноискусство!

Фильм: Финч

Год: 2021

Постапокалипсис. В Северной Америке бушует радиация, пыльные бури и торнадо. Инженер-робототехник Финч смертельно болен и переживает, что после его смерти некому будет заботиться о его собаке, поэтому собирает для этой цели человекоподобного робота. Узнав, что на местность надвигается супербуря, в которой он не выживет, Финч с собакой и роботами отправляется в Сан-Франциско.

Приятного просмотра!
10🔥6
Что выведет этот код? №37

Задача:
У вас есть функция, которая принимает сумму заказа и разные скидки, которые могут быть применены. Нужно корректно рассчитать итоговую сумму с учётом всех скидок.
🤯3🔥1
Что выведет код с изображения? №37
Anonymous Quiz
14%
90.0 170.0 135.38
16%
90.0 171.0 128.25
43%
90.0 171.0 243.68
16%
90 180 255
11%
TypeError
🤯5🔥1