Пока наша команда обсуждает тонкости поста про хешируемые объекты, чтобы помочь всем в этом разобраться, а пока есть задачка, чтобы никто не скучал.
Один пхпшник написал свой первый код на самой последней версии python. Он использовал магический метод
Один пхпшник написал свой первый код на самой последней версии python. Он использовал магический метод
__cmp__, и ему надо это переписать(подумай, почему). Он расстроился и пришел к тебе. Подумай, что ему посоветовать.Разберись в таком синтаксисе и выбери правильный ответ.
Хотя.. вы уже и сами привыкли к подвохам)
Хотя.. вы уже и сами привыкли к подвохам)
Anonymous Quiz
15%
False False
24%
False True
8%
True False
7%
True True
17%
Небольшая ошибка в синтаксисе.
29%
Серьезная ошибка
Выбрать оператор с наибольшим приоритетом...
Anonymous Quiz
8%
| (bitwise OR)
13%
is
36%
**
8%
in
21%
and
13%
>>
Простой опрос для того, чтобы лучше понять куда двигаться дальше
Для чего вам python? Можно выбрать несколько ответов.
Для чего вам python? Можно выбрать несколько ответов.
Anonymous Poll
32%
Для web разработки на Django
22%
Для web разработки на других python frameworks
29%
Для дата сатанизма, машинного обучения
44%
Для написания небольших, полезных скриптов
32%
Для написания ботов, игр, мобильных приложух итд
10%
Для студенческих-школьных работ, олимпиад
34%
Для получения первой работы
31%
Для души
4%
Я уже знаю python на достаточном уровне, многих целей достиг - удивите меня
8%
Я тут случайно..
Что выведет программа?
Внимательность творит чудеса..
Внимательность творит чудеса..
Anonymous Quiz
11%
88
9%
90
38%
99
2%
100
9%
108
18%
117
13%
Другой ответ
Какой метод тут должен быть вместо METHOD?
Anonymous Quiz
27%
dict
23%
group
10%
groups
23%
groupdict
10%
span
7%
regs
sum(iterable, /, start=0) - воистину магическая встроенная функция питонистского языка.Пример:
>>> sum([1, 2, 3])6>>> sum([1, 2, 3], 2)8Простая сумма. Ничего сложного?
Но сможешь ли ты пройти тест, или ошибешься?
Мы очень радуемся, когда много людей ошибаются при решении наших тестов. Значит тест был не зря и мы смогли чем-то вас удивить.
Не стесняйся задавать вопросы знакомым программистам, или даже просто спрашивать что-то в питонячьих чатах или на stackoverflow. Пока другие тратят дни, чтобы дойти до чего-то самим, ты можешь потратить всего пару часов и выучить сильно больше. Ибо мир меняется слишком быстро..
Так чему равны list_sum и str_sum?
Anonymous Quiz
8%
[1, 2, 3] и 'ILovePython'
11%
[1, 2, 3] и 'I Love Python'
51%
6 и 'ILovePython'
13%
[1, 2, 3] и TypeError
9%
TypeError и TypeError
8%
TypeError и 'ILovePython'
Планируем запуск обещанного бесплатного мастер класса по библиотеке itertools. Материалы уже готовы. Должно быть очень интересно.
Мастер класс хотим провести в отдельно созданном для этого канале в ближайшее время. Анонс пришлём позже. Ты с нами?
Мастер класс хотим провести в отдельно созданном для этого канале в ближайшее время. Анонс пришлём позже. Ты с нами?
Anonymous Poll
78%
Да, я определенно с вами
22%
Я очень постараюсь поучаствовать
n = (0b011 + 0o007 + 0x00A)//0XA
Чему равно n?
Чему равно n?
Anonymous Quiz
16%
1
26%
2
26%
2.0
14%
10
9%
20
9%
20.0
Сессия обратной связи.
Чего не хватает каналу больше всего? (Можно выбрать несколько вариантов)
Чего не хватает каналу больше всего? (Можно выбрать несколько вариантов)
Anonymous Poll
27%
Простых задач
23%
Сложных задач
29%
Подсказок к задачам
32%
Решений задач
48%
Постов по теории
50%
Чаще делать посты
3%
Реже делать посты
31%
Сниппетов интересного кода
48%
Подборок материала для изучения python
39%
Новостей из мира python
Каррирование (currying) в python.
Каррирование - это популярная техника функционального программирования, а python поддерживает эту парадигму, поэтому стоит про это немного знать.
На самом деле, каррирование — это преобразование функции с множеством аргументов в набор вложенных функций с одним аргументом.
То есть f(a, b, c) = f(a)(b)(c)
Сложна? Давай разберем пример.
Допустим у нас есть функция, позволяющая отправить email от кого-то кому-то. В упрощенном виде такая:
Оказалось, что в вашей системе не так много лиц от которых шлется email. И от них шлется множество писем в разных ситуациях. Предположим, что их двое: СЕО и CTO компании.
Тогда имеет смысл, возможно, сделать такие манипуляции:
То есть send_email_from возвращает функцию, которой нужно передать только один параметр to, чтобы отправить email.
Как этим пользоваться.
Во-первых, теперь можно посылать письма так:
Что эквивалентно
Во-вторых, теперь можно делать такое
Это означает, что теперь, для того, чтобы отправить письмо от CEO, достаточно написать
что эквивалентно
Это разбиение аргументов по функциям, которые вызывают другие функции - и называется каррированием. Представь, что аргументов было очень много и многие из них редко менялись. Удобно?
Кстати, эта задача была про каррирование... Пересмотри ее еще раз!
Каррирование - это популярная техника функционального программирования, а python поддерживает эту парадигму, поэтому стоит про это немного знать.
На самом деле, каррирование — это преобразование функции с множеством аргументов в набор вложенных функций с одним аргументом.
То есть f(a, b, c) = f(a)(b)(c)
Сложна? Давай разберем пример.
Допустим у нас есть функция, позволяющая отправить email от кого-то кому-то. В упрощенном виде такая:
def send_email(from_, to): print(f'Email is sent from {from_} to {to}')Оказалось, что в вашей системе не так много лиц от которых шлется email. И от них шлется множество писем в разных ситуациях. Предположим, что их двое: СЕО и CTO компании.
Тогда имеет смысл, возможно, сделать такие манипуляции:
def send_email_from(from_): return lambda to: send_email(from_, to)То есть send_email_from возвращает функцию, которой нужно передать только один параметр to, чтобы отправить email.
Как этим пользоваться.
Во-первых, теперь можно посылать письма так:
send_email_from(CEO_EMAIL)('someone')Что эквивалентно
send_email(CEO_EMAIL, 'someone')Во-вторых, теперь можно делать такое
email_ceo = send_email_from(CEO_EMAIL)Это означает, что теперь, для того, чтобы отправить письмо от CEO, достаточно написать
email_ceo('someone')что эквивалентно
send_email(CEO_EMAIL, 'someone')Это разбиение аргументов по функциям, которые вызывают другие функции - и называется каррированием. Представь, что аргументов было очень много и многие из них редко менялись. Удобно?
Кстати, эта задача была про каррирование... Пересмотри ее еще раз!
Telegram
Junior Python School
Вот это функция. Всем функциям - функция. Хоть в каждый проект ее сувать..
Что же тут будет напечатано?
Что же тут будет напечатано?
print('start')
Cls()()Что будет выведено после
start? 1)
Metaclass __call__ was called2)
__new___ was called
__init__ was called
__call__ was called
Metaclass __new__ was called3)
Metaclass __init__ was called
Metaclass __call__ was called
__new___ was called
__init__ was called
__call__ was called
__new___ was called4)
__init__ was called
__call__ was called
Metaclass __new__ was called
Metaclass __init__ was called
__new___ was called
__init__ was called
__call__ was called