Код на салфетке
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
Приветствую, друзья!

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

Фильм: Ветер крепчает

Год: 2013

Мальчик Дзиро мечтает о полетах и красивых самолетах, способных обогнать ветер. Вот только пилотом ему не стать — он с рождения близорук. Но Дзиро не расстается с мечтой о небе, он начинает придумывать идеальный самолет и со временем становится одним из лучших авиаконструкторов мира. На пути к успеху он не только встретит много интересных людей, переживет Великое землетрясение в Токио и жестокие войны, но и обретет любовь своей жизни – прекрасную Наоко.

https://www.sspoisk.ru/film/693969/

Приятного просмотра!
🔥2
Сделали Shorts по второй задаче из рубрики "Что выведет этот код?"!

Ссылка на задачу, если вы пропустили: https://t.iss.one/press_any_button/410

Видео версия "Что выведет этот код? №2":
https://youtube.com/shorts/kE4tjQECbNI

Будем благодарны лайку и досмотру видео до конца, спасибо!
🔥4
Приветствуем!

Напоминаем, что у нас проходит конкурс по программированию!
Прочитать условие и принять участие можно тут: https://t.iss.one/press_any_button/757

Список участников на текущий момент:
- Виктор Вангели
- Худайберген
- Ηe_ΙΙροcΤο_Tακ
- Виктор Королев

Сдали pull request:
- Виктор Королев

Осталось 2.5 дня до вечера понедельника! Торопитесь!
Пусть у нас уже пять заявленных участников, только один сделал задание. Если не наберётся 3-х участников, конкурс будет отменён ☹️
🔥3😢2👍1
Что выведет код с изображения? №29
Anonymous Poll
13%
9
26%
IndexError
0%
3 3
35%
SyntaxError
0%
3 3 3 3
23%
ValueError
3%
27
Что выведет этот код? №29

Ответ завтра в разборе. Пишите свои варианты в комментарии!
Обновление библиотеки - AIOgram 3.9.0
Автор: Иван Ашихмин

Вышла новая версия библиотеки AIOgram 3.9.0.

Установить новую версию можно выполнив команду:
pip install -U aiogram


Главное.
- Добавлен инструмент разрешения ChatMember и обновлено руководство по миграции 2.x.
🔥21
- Добавлена полная поддержка Bot API 7.6.
- Добавлены классы aiogram.types.paid_media.PaidMedia, aiogram.types.paid_media_info.PaidMediaInfo, aiogram.types.paid_media_preview.PaidMediaPreview, aiogram.types.paid_media_photo.PaidMediaPhoto и aiogram.types.paid_media_video.PaidMediaVideo, содержащие информацию о платных медиа.
- Добавлен метод aiogram.methods.send_paid_media.SendPaidMedia и классы aiogram.types.input_paid_media.InputPaidMedia, aiogram.types.input_paid_media_photo.InputPaidMediaPhoto и aiogram.types.input_paid_media_video.InputPaidMediaVideo для поддержки отправки платных медиа.
- Документировано, что методы aiogram.methods.copy_message.CopyMessage и aiogram.methods.copy_messages.CopyMessages не могут быть использованы для копирования платных медиа.
- Добавлено поле can_send_paid_media в класс aiogram.types.chat_full_info.ChatFullInfo.
- Добавлено поле paid_media в классы aiogram.types.message.Message и aiogram.types.external_reply_info.ExternalReplyInfo.
- Добавлен класс aiogram.types.transaction_partner_telegram_ads.TransactionPartnerTelegramAds, содержащий информацию о транзакциях Telegram Star, связанных с платформой Telegram Ads.
- Добавлено поле invoice_payload в класс aiogram.types.transaction_partner_user.TransactionPartnerUser, содержащее указанный ботом payload счета.
- Изменен режим открытия по умолчанию для Direct Link Mini Apps.
- Добавлена поддержка запуска Web Apps через ссылку t.iss.one в классе aiogram.types.menu_button_web_app.MenuButtonWebApp.
- Добавлено поле section_separator_color в класс ThemeParams.


Исправления.
- Исправлено разрешение контекста события для callback-запроса, который поступает от бизнес-аккаунта.

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

#перевод #список_изменений #aiogram #telegram #новая_версия #telegram_бот #bot_api #changelog
🔥3
Вчера была достаточно интересная задача. Её решило 38% из 24-х человек (а что так мало участвовавших?).

Код задачи:
a = 3
b = a,
c = b * a

print(c[2] * *b)



Разбор задачи
Объявляем три переменные:
- a - Со значением 3.
- b - Кортеж с единственным элементом из переменной a, т.е. 3
- c - С результатом умножения кортежа b на a.

Затем в функции print выводим результат умножения третьего элемента из кортежа c на единственный элемент в кортеже b.

Очевидно, будет ошибка!
Всё верно. Будет ошибка SyntaxError, поскольку нельзя распаковывать коллекцию внутри математической операции.

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

Что будет если убрать ошибку?
Тут есть два варианта развития:
Первый. Если мы просто убёрем распаковку:
a = 3
b = a,
c = b * a

print(c[2] * b)


То в данном случае третий элемент кортежа c - 3 будет умножен на кортеж b и мы получим ответ (3, 3, 3).

Второй. Если мы хотим умножить именно на значение в кортеже:
a = 3
b = a,
c = b * a

print(c[2] * b[0])


То в данном случае получим выражение 3 * 3 и ответ 9.
🤯4
Подготовили разбор задачи на YouTube Shorts!

https://youtube.com/shorts/AX86xkxqGHE?feature=share

В этом видео мы немного изменили формат. Напишите в комментарии как вам?

Будем благодарны за лайк и досмотр видео до конца. Спасибо!
👍1🔥1
Код на салфетке
Обновление библиотеки - AIOgram 3.9.0 Автор: Иван Ашихмин Вышла новая версия библиотеки AIOgram 3.9.0. Установить новую версию можно выполнив команду: pip install -U aiogram Главное. - Добавлен инструмент разрешения ChatMember и обновлено руководство по…
Telegram в последнее время активно обновляют свой Bot API, aiogram'у только и остаётся поспевать за ним.

Вышло обновление aiogram 3.10.0. На целый пост не тянет, поэтому просто заметка.

Главное.
- Добавлен класс aiogram.types.refunded_payment.RefundedPayment, содержащий информацию о возвращенном платеже.
- Добавлено поле refunded_payment в класс aiogram.types.message.Message, описывающее служебное сообщение о возвращенном платеже.
Приветствуем!

Вот-вот закончится приём работ для конкурса!

Дедлайн сдачи пуллреквестов - 19:00 по МСК!

На данный момент работы сдали четыре участника:
- Виктор Вангели
- Виктор Королев
- Ηe_ΙΙροcΤο_Tακ
- Анастасия Бастрыкина

Торопитесь! Ещё можно успеть!

После окончания приёма работ будет опубликован пост со ссылками на работы и голосованием.

Также. Завтра в 18:00 по МСК будет будет стрим на котором посмотрим на отправленные варианты и разберём их.
🔥4👏1
Внезапно у нашего конкурса появился ещё один спонсор — Юрий Б.!

Он предложил интересный дополнительный розыгрыш «Везунчик на салфетке» среди выполнивших задание участников!

Все подробности и сам розыгрыш этого дополнительного приза (или призов?😉) состоится завтра на стриме!

Спешите! До закрытия приёма работ осталось не так много времени!
🔥6😱1
Приём работ для конкурса ОКОНЧЕН!

Представляю вам конкурсантов:
1. Виктор Вангели - Выполненная работа
2. Виктор Королев - Выполненная работа
3. Александр Вязников - Выполненная работа
4. Анастасия Бастрыкина - Выполненная работа

Проголосуйте за понравившийся вариант решения в опросе ниже!

Завтра в 18:00 на стриме мы разберём решения участников, а также разыграем среди них дополнительный приз 😉

Результаты будут подведены в среду в 19:00. По результатам голосования, победитель получит 2000 рублей!

Вариант от редакции доступен в основной ветке репозитория.
🔥6👍1👏1
Найдите ошибку в коде ниже и исчерпывающим образом объясните ее в комментариях.

#python #код_на_салфетке #найди_ошибку
🤯4
Уже через пол часа!

https://youtube.com/live/6sH_mAY5Fg8
🔥41👍1
👍54🔥2
Вчера мы опубликовали четвёртую задачу на поиск ошибки в коде. К сожалению, правильного ответа в комментариях не было ☹️

Код задачи:
def get_number(number):
def increment_number():
nonlocal number
number += 1
return number

if number < 10:
return increment_number
return number


result = 12 / get_number(5)
print(result)


Разбор задачи.
Сперва разберём что делает код и как устроена задача.

В переменную result помещаем результат деления числа 12 на вызов функции get_number с переданным аргументом 5.

В функции get_number в блоке if проверяем, если переданное число меньше 10-ти, возвращаем функцию increment_number, в противном случае возвращаем переданное в функцию число.

В функции increment_number оператором nonlocal открываем доступ к переменной number из внешней области видимости, т.е. из агрумента функции get_number.
Затем увеличиваем число на единицу и возвращаем его.

В самом конце выводим результат в консоль.

А где ошибка?
Я думаю, на этапе разбора вы уже догадались, где ошибка. Если нет, то давайте запустим код:
result = 12 / get_number(5)
~~~^~~~~~~~~~~~~~~
TypeError: unsupported operand type(s) for /: 'int' and 'function'


Как видим, выводится ошибка TypeError с сообщением, что делить число на функцию нельзя.

Всё дело в том, что в функции get_number в блоке if мы возвращаем не результат работы функции increment_number, т.е. не вызываем её, а саму функцию, ссылку на объект в памяти.

Решается это достаточно просто. Необходимо вызвать функцию в блоке if:
def get_number(number):
def increment_number():
nonlocal number
number += 1
return number

if number < 10:
return increment_number() # <- или вызываем функцию тут
return number


result = 12 / get_number(5)()
print(result)
🔥3
К текстовому разбору подготовили новый Shorts!

https://youtube.com/shorts/9aCoeOe5xm8?feature=share

Будем благодарны, если вы поставите видео лайк и досмотрите его до конца. Спасибо!
🔥4👍2