Опоздав на недельку, вчера мы опубликовали очередную субботнюю задачу. Задача весьма простая, но требует внимательности 😉
Код задачи:
**Разбор задачи.**
Пропустим часть, в которой описываются действия, и сразу перейдём к разбору.
В самом начале мы создаём переменную
Далее мы в эту же переменную
В нашем случае, в качестве функции мы передаём анонимную
В конце при помощи функции
Получаем:
Код задачи:
lst = [i ** 2 for i in range(10)]
lst = filter(lambda x: x % 2 == 0, lst)
print(list(lst)[::2])
**Разбор задачи.**
Пропустим часть, в которой описываются действия, и сразу перейдём к разбору.
В самом начале мы создаём переменную
lst, в которой при помощи list comprehension (лист компрехеншен) создаём список квадратов чисел от 0 до 9. В итоге получаем следующий список:lst = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Далее мы в эту же переменную
lst помещаем результат работы функции filter(). Данная функция, как понятно из названия, "фильтрует" проходящий через неё список или кортеж, создавая на выходе итератор с подходящими по условию элементами. В качестве условия filter() принимает функцию возвращающую True или False.В нашем случае, в качестве функции мы передаём анонимную
lambda-функцию, которая проверяет, является ли число из списка lst чётным или нет. В итоге имеем следующий результат:lst = [0, 4, 16, 36, 64]
В конце при помощи функции
print() мы выводим преобразованный в список итератор на экран. При этом мы используем срез, выводящий каждый второй элемент (начиная с нулевого).Получаем:
>>> [0, 16, 64]
🔥8
Приветствую!
Добро пожаловать на вечерний пятничный просмотр фильма! Сегодня вечером мы собрались здесь, чтобы насладиться увлекательным и захватывающим кинематографическим произведением. Вместе мы погрузимся в другие миры, переживем приключения и почувствуем всю палитру эмоций, которые кино может подарить. Приготовьтесь к незабываемому вечеру, полному сюрпризов и волнения. Погрузитесь в красочный мир кино и насладитесь каждым моментом.
Фильм: Книга Илая
Год: 2010
После вселенской катастрофы Америка превратилась в выжженную пустыню. По бескрайним дорогам, кишащим бандами, враждующими между собой за воду и еду, странствует мудрый Илай. Однажды он прибывает в мрачные края, где когда-то была цветущая Калифорния, а теперь это сущий ад, где бесчинствует тиран Карнеги.
https://www.sspoisk.ru/film/424266/
Приятного просмотра!
Добро пожаловать на вечерний пятничный просмотр фильма! Сегодня вечером мы собрались здесь, чтобы насладиться увлекательным и захватывающим кинематографическим произведением. Вместе мы погрузимся в другие миры, переживем приключения и почувствуем всю палитру эмоций, которые кино может подарить. Приготовьтесь к незабываемому вечеру, полному сюрпризов и волнения. Погрузитесь в красочный мир кино и насладитесь каждым моментом.
Фильм: Книга Илая
Год: 2010
После вселенской катастрофы Америка превратилась в выжженную пустыню. По бескрайним дорогам, кишащим бандами, враждующими между собой за воду и еду, странствует мудрый Илай. Однажды он прибывает в мрачные края, где когда-то была цветущая Калифорния, а теперь это сущий ад, где бесчинствует тиран Карнеги.
https://www.sspoisk.ru/film/424266/
Приятного просмотра!
🔥5❤1
Что выведет код с изображения ниже? №19
Anonymous Quiz
31%
011223
11%
001122
9%
112233
49%
112233end
🤯3👍1
Вчерашняя задача на внимательность оказалась под силу только 33% ответивших, что, если честно, удивило нас. Наибольшим сюрпризом стал самый популярный ответ, набравший 54% голосов, потому что он же и самый невозможный из всех. Давайте разберёмся.
Код задачи:
Цикл for-else.
Первым делом давайте вспомним как работает цикл
При объявлении цикла мы задаём итерируемую переменную (чаще всего это
Цикл будет выполняться до тех пор, пока ему есть, по чему итерироваться, или пока он не будет остановлен. Для остановки цикла используется оператор
У циклов есть и ещё один необязательный блок -
Разбор задачи.
Вернёмся к задаче и разберём процесс выполнения по порядку.
Определяем переменную
Далее запускается цикл, перебирающий цифры от 1 до 10 (до 9 включительно).
В цикле находится условие:
- Если результат суммы целочисленного деления 1 на 2 со значением
- Иначе к переменной
В таком случае у нас происходит всего 7 итераций цикла:
1.
2.
3.
4.
5.
6.
7.
Код задачи:
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/
Приятного просмотра
Снова пятница, а это значит, что пришло время отдохнуть от дел и немного отвлечься. Давайте воспользуемся этим моментом и как следует отдохнём, наслаждаясь просмотром отличного фильма. Запаситесь чем-нибудь аппетитным под ваш любимый напиток, расслабьтесь, очистите голову от мыслей и приготовьтесь к приятному времяпрепровождению.
Фильм: Первый отряд
Год: 2009
1942 год. Отряд пионеров-героев вступает в схватку с фашистскими оккупантами и призраками рыцарей Ливонского ордена, вызванными из загробного мира нацистскими магами из печально известной организации Аненербе. Разумеется, главные герои - не простые пионеры. Они прошли обучение в Шестом отделе управления военной разведки, который занимается парапсихологией и оккультизмом. И теперь они готовы защищать Родину на невидимом для простых смертных фронте.
https://www.sspoisk.ru/film/392521/
Приятного просмотра
🔥2
В субботу мы опубликовали задачу с нестандартным выбором вариантов ответа. Судя по количеству голосов, формат вам не приглянулся. Обидненько. Тем не менее, среди тех, кто ответил, количество верных составляет 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/
Приятного просмотра
Сегодня мы собрались здесь, чтобы вместе окунуться в удивительный мир кинематографа и насладиться просмотром потрясающего фильма. Давайте забудем о повседневных заботах и проблемах и полностью погрузимся в атмосферу кино. Пусть этот вечер станет для нас возможностью отдохнуть, расслабиться и насладиться качественным киноискусством.
Фильм: Донни Дарко
Год: 2001
Донни Дарко — обычный старшеклассник, живет с родителями и двумя сестрами. Однажды он встречает человека в костюме кролика, который сообщает парню, что через 28 дней, 6 часов, 42 минуты и 12 секунд наступит конец света.
https://www.kinopoisk.ru/film/410/
https://www.sspoisk.ru/film/410/
Приятного просмотра
❤1🔥1
🔥3👍1
Вчера мы опубликовали непростую, на первый взгляд, задачу, но если посмотреть внимательнее, всё становится понятно. Отгадало задачу 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
Рад снова приветствовать вас, друзья!
Пятница вернулась, и это повод отдохнуть от суеты и отвлечься. Давайте воспользуемся этой возможностью и насладимся просмотром прекрасного фильма. Готовьте закуски и напитки, располагайтесь поудобнее и наслаждайтесь просмотром!
Фильм: Всё везде и сразу
Год: 2022
Представьте, что существуют альтернативные варианты нашей реальности, где вы — совершенно другой человек. В этом лично убеждается Эвелин (Мишель Йео), получив доступ к воспоминаниям, эмоциям и невероятным способностям других версий себя. Теперь Эвелин может прожить тысячи жизней и быть кем угодно — известной актрисой, мастером боевых искусств, оперной дивой и даже небесным божеством. Но всем мультивселенным угрожает таинственная сущность, с которой Эвелин предстоит сразиться. Как знать, возможно, заодно она разберётся и с самым страшным злом — своими налогами.
https://www.kinopoisk.ru/film/1322324/
https://www.sspoisk.ru/film/1322324/
Приятного просмотра!
Пятница вернулась, и это повод отдохнуть от суеты и отвлечься. Давайте воспользуемся этой возможностью и насладимся просмотром прекрасного фильма. Готовьте закуски и напитки, располагайтесь поудобнее и наслаждайтесь просмотром!
Фильм: Всё везде и сразу
Год: 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
Вчера мы опубликовали достаточно простую задачку, с которой справилось большинство - 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