Давайте обсудим нашу рождественскую задачку
Вот теперь уже можно подсмотреть в интерпретатор)
Что за магия?
Просто нужно запомнить, что в момент инициализации функции автоматически инициализируются значения по-умолчанию у всех параметров и записываются в кортеж
В кортеже
Просто каждый раз, когда вы вызываете функцию с параметром по-умолчанию (явно не указывая этот параметр), python не инициализирует параметр заново, а ищет его в
И если параметр изменяемый, и вы до этого его меняли, то получится ситуация как в задачке.
Поэтому вывод - старайтесь не делать изменяемые объекты значениями по-умолчанию!
Как нужно правильно написать эту функцию?
Домашнее задание!!
Попробуйте разобраться в интерпретаторе и обратите внимание на все существующие поля и методы
Вот теперь уже можно подсмотреть в интерпретатор)
Что за магия?
Просто нужно запомнить, что в момент инициализации функции автоматически инициализируются значения по-умолчанию у всех параметров и записываются в кортеж
__defaults__В кортеже
__defaults__ не должно появляться изменяемых объектов, только неизменяемые. Просто каждый раз, когда вы вызываете функцию с параметром по-умолчанию (явно не указывая этот параметр), python не инициализирует параметр заново, а ищет его в
__defaults__.И если параметр изменяемый, и вы до этого его меняли, то получится ситуация как в задачке.
Поэтому вывод - старайтесь не делать изменяемые объекты значениями по-умолчанию!
Как нужно правильно написать эту функцию?
def func(a=None): if a is None: a = [] a.append('I LOVE PYTHON') print(a)func()func(['I HATE JS'])func()Домашнее задание!!
Попробуйте разобраться в интерпретаторе и обратите внимание на все существующие поля и методы
func.(dir(func))Поехали обсуждать сумасшедшие словари из вот этого странного теста.
Шаг 1:
Пояснение:
Ну, почему,
Это приводит к тому, что
Пример:
Вывод:
Python считает
Шаг 2:
Python вернет последнее значение и первый ключ
Пример:
А тут пояснение простое: значения обновляются последовательно, а ключ не меняется - это оптимизация python - зачем обновлять эквивалентные ключи.
Оно так всегда работало:
ДЗ
Разберитесь, как работает поиск значения в словаре(про хеш таблицы почитайте).
Шаг 1:
True == 1 == 1.0Пояснение:
Ну, почему,
1==1.0 - понятноbool(False, True) в python работает точно также, как и числа 0 и 1. Правда если приводить их к строке, то вернутся 'False', 'True'Это приводит к тому, что
True и False можно использовать как 1 и 0.Пример:
['no', 'yes'][True] == "yes"['no', 'yes'][False] == "no"Вывод:
Python считает
1, True, 1.0 - одинаковыми. А значит это один и тот же ключ словаря. Сравни hash()Шаг 2:
Python вернет последнее значение и первый ключ
Пример:
>>> { 1.0: 'float', 1: 'int', True: 'boolean'}{1.0: 'boolean'}>>> {True: 'boolean', 1.0: 'float', 1: 'int'}{True: 'int'}А тут пояснение простое: значения обновляются последовательно, а ключ не меняется - это оптимизация python - зачем обновлять эквивалентные ключи.
Оно так всегда работало:
>>> {1: 'Первое значение', 1: 'Второе значение'}{1: 'Второе значение'}ДЗ
Разберитесь, как работает поиск значения в словаре(про хеш таблицы почитайте).
В этот раз мы решили создать задачку по-проще, но из нее развить тему серьезную.
Решайте задачу - потом выпустим кусочек интересной теории по set.
Как обычно - кто пользуется интерпретатором, век тому на паскале писать. Не используйте его!
Какие значения попадут в это множество?
{1, 2, 3, 4} - 23
👍👍👍👍👍👍👍👍 61%
{2, 3} - 1
👍 3%
{{1, 2, 3}, {2, 3, 4}} - 9
👍👍👍👍 24%
Тут ошибка - 5
👍👍👍 13%
👥 38 человек уже проголосовало.
Решайте задачу - потом выпустим кусочек интересной теории по set.
Как обычно - кто пользуется интерпретатором, век тому на паскале писать. Не используйте его!
set([set([1, 2, 3, 2]), set([2, 3, 4, 2, 3])])Какие значения попадут в это множество?
{1, 2, 3, 4} - 23
👍👍👍👍👍👍👍👍 61%
{2, 3} - 1
👍 3%
{{1, 2, 3}, {2, 3, 4}} - 9
👍👍👍👍 24%
Тут ошибка - 5
👍👍👍 13%
👥 38 человек уже проголосовало.
PEP8 - это важная часть python development.
Но никто полностью его не заучивает, а зря.. Потом не получается правильно отвечать на такие вот вопросы.
Нужно выбрать все варианты ответов, где все по PEP8.
1.
2.
3.
4.
Но никто полностью его не заучивает, а зря.. Потом не получается правильно отвечать на такие вот вопросы.
Нужно выбрать все варианты ответов, где все по PEP8.
1.
a[lower + ofs : upper + ofs]a[lower+ofs : upper+ofs]a[lower:upper]a[lower:upper:]a[lower::step]2.
a[lower:upper]a[lower:upper:]a[lower::step]a[lower : : upper]a[lower + ofs:upper + ofs]3.
a[lower + ofs : upper + ofs]a[lower + ofs : upper+ofs]a[lower:upper]a[lower:upper:]a[lower: :step]4.
a[lower:upper]a[lower: upper:]a[lower::step]a[lower :: upper]a[lower + ofs : upper + ofs]Какой ответ правильный?
1 - 2
👍👍👍 12%
2 - 2
👍👍👍 12%
3 - 9
👍👍👍👍👍👍👍👍 53%
4 - 4
👍👍👍👍 24%
👥 17 человек уже проголосовало.
1 - 2
👍👍👍 12%
2 - 2
👍👍👍 12%
3 - 9
👍👍👍👍👍👍👍👍 53%
4 - 4
👍👍👍👍 24%
👥 17 человек уже проголосовало.
Пока наша команда обсуждает тонкости поста про хешируемые объекты, чтобы помочь всем в этом разобраться, а пока есть задачка, чтобы никто не скучал.
Один пхпшник написал свой первый код на самой последней версии 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%
Я очень постараюсь поучаствовать