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

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

Фильм: Книга Илая

Год: 2010

После вселенской катастрофы Америка превратилась в выжженную пустыню. По бескрайним дорогам, кишащим бандами, враждующими между собой за воду и еду, странствует мудрый Илай. Однажды он прибывает в мрачные края, где когда-то была цветущая Калифорния, а теперь это сущий ад, где бесчинствует тиран Карнеги.

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

Приятного просмотра!
🔥51
Что выведет код с изображения ниже? №19
Anonymous Quiz
31%
011223
11%
001122
9%
112233
49%
112233end
🤯3👍1
Что выведет этот код? №19
🤯3
Вчерашняя задача на внимательность оказалась под силу только 33% ответивших, что, если честно, удивило нас. Наибольшим сюрпризом стал самый популярный ответ, набравший 54% голосов, потому что он же и самый невозможный из всех. Давайте разберёмся.

Код задачи:
z = 0
for i in range(1, 10):
if (i + 1 // 2) % 7 == 0:
break
else:
z += int(i % 2 == 0)
print(z, end='')
else:
print('end')


Цикл for-else.
Первым делом давайте вспомним как работает цикл for.

При объявлении цикла мы задаём итерируемую переменную (чаще всего это i, но не забывайте о читаемости кода, называйте переменные понятными словами!), а также сам итератор. Им может быть range(от, до) или список элементов, например, [1, 2, 3, 4, 5].

Цикл будет выполняться до тех пор, пока ему есть, по чему итерироваться, или пока он не будет остановлен. Для остановки цикла используется оператор break.

У циклов есть и ещё один необязательный блок - else. Он срабатывает только тогда, когда цикл закончил свою работу без остановок. Именно поэтому ответ 112233end никак не мог появиться, поскольку в основном блоке цикла происходит его остановка оператором break.

Разбор задачи.
Вернёмся к задаче и разберём процесс выполнения по порядку.

Определяем переменную z со значением 0.

Далее запускается цикл, перебирающий цифры от 1 до 10 (до 9 включительно).
В цикле находится условие:
- Если результат суммы целочисленного деления 1 на 2 со значением i кратно семи - останавливаем цикл. Обратите внимание, что 1 // 2 всегда будет давать 0, его можно игнорировать.
- Иначе к переменной z прибавляем преобразованный к числу результат проверки чётености числа в переменной i. И выводим значение z без переноса строки.

В таком случае у нас происходит всего 7 итераций цикла:
1. z=0, i=1. 1 кратно 7-ми? Нет. 1 чётное? Нет. К переменной z прибавляем 0 (потому что "False" - это и есть 0 в мире целых чисел) и выводим 0.
2. z=0, i=2, print=0. 2 кратно 7-ми? Нет. 2 чётное? Да. К переменной z прибавляем 1 (потому что "True" - это и есть 1 в мире целых чисел) и выводим 1.
3. z=1, i=3, print=01. 3 кратно 7-ми? Нет. 3 чётное? Нет. К переменной z прибавляем 0 и выводим 1.
4. z=1, i=4, print=011. 4 кратно 7-ми? Нет. 4 чётное? Да. К переменной z прибавляем 1 и выводим 2.
5. z=2, i=5, print=0112. 5 кратно 7-ми? Нет. 5 чётное? Нет. К переменной z прибавляем 0 и выводим 2.
6. z=2, i=6, print=01122. 6 кратно 7-ми? Нет. 6 чётное? Да. К переменной z прибавляем 1 и выводим 3.
7. z=3, i=7, print=011223. 7 кратно 7-ми? Да. Останавливаем цикл.
👍3🔥2👌1
Приветствую, друзья!

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

Фильм: Первый отряд

Год: 2009

1942 год. Отряд пионеров-героев вступает в схватку с фашистскими оккупантами и призраками рыцарей Ливонского ордена, вызванными из загробного мира нацистскими магами из печально известной организации Аненербе. Разумеется, главные герои - не простые пионеры. Они прошли обучение в Шестом отделе управления военной разведки, который занимается парапсихологией и оккультизмом. И теперь они готовы защищать Родину на невидимом для простых смертных фронте.

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

Приятного просмотра
🔥2
Выберите вариант ответа с изображения ниже. №20
Anonymous Quiz
0%
1
14%
2
59%
3
27%
4
Что выведет этот код? №20
В субботу мы опубликовали задачу с нестандартным выбором вариантов ответа. Судя по количеству голосов, формат вам не приглянулся. Обидненько. Тем не менее, среди тех, кто ответил, количество верных составляет 72%.

Код задачи:
class A:
def __init__(self, x, y):
self.x = x
self.y = y

def print(self):
print(self.x, self.y)


class B(A):
def print(self):
print(self.y, self.x)


class C(B):
def __init__(self, x, y, z):
super().__init__(x, y)
self.z = z

def __str__(self):
return str(self.x + self.z)


a = A(2, 4)
b = B(4, 2)
c = C(2, 4, 7)
c.x = c.z
a.print()
b.print()
c.print()
print(c)


Разбор задачи.
Задача может показаться большой и сложной, но на деле она просто большая.

Создаём первый класс A с двумя методами:
- Конструктор класса __init__, принимающий помимо себя, ещё x и y.
- Метод print (не путать с функцией print()!), выводящий на экран значения x и y.

Создаём второй класс B, унаследованный от класса A, с переопределённым методом print. В методе также выводим значения x и y, но поменяв их местами.

Создаём третий класс C, унаследованный от класса B.
В нём переопределяем __init__, в котором дополнительно принимаем аргумент z.
И определяем метод __str__, возвращающий сумму значений x и z.

Основа готова, перейдём к вызовам.

Создаём три экземпляра класса:
- a = A(2, 4) - x=2, y=4
- b = B(4, 2) - x=4, y=2
- c = C(2, 4, 7) - x=2, y=4, z=7

Далее заменяем содержимое переменной x в классе C на значение переменной z:
c.x = c.z - x=7, y=4, z=7

И, поочерёдно вызывая методы принт у созданных экземпляров классов, получаем следующий вывод:
- a.print() = 2 4
- b.print() = 2 4
- c.print() = 4 7

В конце вызываем функцию print(), выводящую метод __str__ у экземпляра класса C:
print(c) = 14.
👍3🔥1
Всем привет!

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

Фильм: Донни Дарко

Год: 2001

Донни Дарко — обычный старшеклассник, живет с родителями и двумя сестрами. Однажды он встречает человека в костюме кролика, который сообщает парню, что через 28 дней, 6 часов, 42 минуты и 12 секунд наступит конец света.

https://www.kinopoisk.ru/film/410/

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

Приятного просмотра
1🔥1
Что выведет код с изображения ниже? №21
Anonymous Quiz
20%
TypeError
20%
NameError
47%
-1
13%
0
🔥3👍1
Что выведет этот код? №21
🔥2
Вчера мы опубликовали непростую, на первый взгляд, задачу, но если посмотреть внимательнее, всё становится понятно. Отгадало задачу 11 человек, это 44% из 25-ти участвовавших.

Код задачи:
def x(z):
def q(x, y):
x = y + z + x
print(x)

return q


for i in range(1):
func = x(i)
func(i, i - 1)



Разбор задачи.
Функция в функции в цикле 🤯. Звучит и выглядит непонятно. Давайте разбираться.

Начнём с функций.

Определяем функцию x, принимающую аргумент z.
В теле функции x определяем вложенную функцию q, принимающую аргументы x и y. Не путать аргумент x и функцию x. Имена совпадают, но области видимости у них разные.

К содержимому функции q вернёмся чуть позже.

Далее в функции x делаем возврат функции q.

Понятнее не становится? Сейчас станет.

После определения функций создаём цикл, итерируемый по одному элементу - 0. Таким в образом, цикл сработает всего раз, а i будет равно 0.

Внутри цикла создаём переменную func, в которой вызываем функцию x, передавая в неё значение i.
Поскольку мы в функции x возвращаем функцию q, то переменная func теперь хранит в себе ссылку на функцию q, которая может быть вызвана с передаваемыми в неё аргументами.

Вызываем func (она же q), передавая в неё i и i - 1, т.е. 0 и -1.

Внутри функции q, переопределяя переменную x, мы складываем ранее переданные аргументы x и y, а также, благодаря замыканию, нам доступен аргумент z. Получается так: x = -1 + 0 + 0.

Далее просто выводим полученный результат на экран при помощи функции print.

Вот и всё)


Что тут произошло?
Мы создали функцию, вложенную в другую функцию, и использовали переменную для доступа к вложенной функции. Примерно таким образом работают декораторы, о чём вы можете прочесть в посте "Декораторы в питоне".
🔥6
Всем привет!

У нас вышло небольшое затишье с постами, но мы исправимся.

Вот вам спойлер поста, который выйдет в среду...
🔥61😱1
Рад снова приветствовать вас, друзья!

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

Фильм: Всё везде и сразу

Год: 2022

Представьте, что существуют альтернативные варианты нашей реальности, где вы — совершенно другой человек. В этом лично убеждается Эвелин (Мишель Йео), получив доступ к воспоминаниям, эмоциям и невероятным способностям других версий себя. Теперь Эвелин может прожить тысячи жизней и быть кем угодно — известной актрисой, мастером боевых искусств, оперной дивой и даже небесным божеством. Но всем мультивселенным угрожает таинственная сущность, с которой Эвелин предстоит сразиться. Как знать, возможно, заодно она разберётся и с самым страшным злом — своими налогами.

https://www.kinopoisk.ru/film/1322324/

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

Приятного просмотра!
🔥6❤‍🔥1
Что выведет код с изображения ниже? №22
Anonymous Quiz
0%
b c d
17%
['b', 'c', 'd']
7%
TypeError
76%
c d e
🔥3
Что выведет этот код? №22
🔥3
Вчера мы опубликовали достаточно простую задачку, с которой справилось большинство - 71%!

Код задачи:
print(*list(map(lambda x: chr(ord(x) + 2), ['a', 'b', 'c'])))



Разбор задачи.
Задача намеренно написана в одну строку для усложнения восприятия. Давайте упростим для разбора:
char_map = map(lambda x: chr(ord(x) + 2), ['a', 'b', 'c'])
char_list = list(char_map)
print(*char_list)


В переменной char_map выполняем функцию map. Функция map итерируется по переданному вторым аргументом итератору и применяет к каждому элементу, указанную первым элементом функцию.

В нашем случае мы проходим по списку ['a', 'b', 'c'] и применяем к нему lambda-функцию.
В lambda-функции мы получаем в переменную x букву из списка. Затем получаем порядковый номер буквы в таблице кодировки и увеличиваем его на два. Затем получаем букву по получившемуся номеру. Выходит своеобразный Шифр Цезаря.

Поскольку результат работы функции map – это генератор, то в переменной char_list приводим его к списку.

В конце, используя распаковку списка, выводим результат в консоль.
🔥3
Всем привет!

Каналу уже 11 месяцев и пора что-то менять.

Начнём с аватарки канала.
На выбор есть 9 сгенерированных нейронкой изображений.
В голосовании можно выбрать несколько вариантов ответа.

Если картинка наберёт больше 50% - выбираем её, если нет, то будет второй тур с самыми топовыми.
🔥1
Выбираем аватарку!
Final Results
6%
1
23%
2
17%
3
4%
4
10%
5
13%
6
8%
7
38%
8
27%
9
Второй тур голосования!

Из претендентов остались только №2, №8 и №9.

Тот, который наберёт больше всего - ПОБЕДИТ!
💩3🔥2
Выбираем аватарку (снова)
Final Results
13%
2
52%
8
44%
9
🔥2