Пришло время обсудить вот этот тест.
Все несложно
Во-первых, потому что можно легко проверить ответ в интерпретаторе)
Во-вторых, потому что с тонкостью этой задачи сталкиваться приходится довольно часто.
Запустим в интерпретаторе:
Все, можно спокойно выбрать правильный ответ))😜
Но почему так?
Что мы на самом деле делаем:
Мы проверяем является ли какое-то значение объектом класса кортеж.
Значение
Значение
Для того, чтобы сделать это значение кортежем нужно просто добавить запятую:
Ну а
Лайфхак:
Функция tuple() - позволяет сделать из любой последовательности кортеж.
Пример:
Все несложно
Во-первых, потому что можно легко проверить ответ в интерпретаторе)
Во-вторых, потому что с тонкостью этой задачи сталкиваться приходится довольно часто.
Запустим в интерпретаторе:
>>> isinstance((), tuple)True>>> isinstance((1), tuple)False>>> isinstance((1, 2), tuple)TrueВсе, можно спокойно выбрать правильный ответ))😜
Но почему так?
Что мы на самом деле делаем:
Мы проверяем является ли какое-то значение объектом класса кортеж.
Значение
() - это способ объявления пустого кортежаЗначение
(1) - это просто 1 в скобочках>>> type((1))<class 'int'>Для того, чтобы сделать это значение кортежем нужно просто добавить запятую:
(1,)>>> type((1,))<class 'tuple'>Ну а
(1, 2) - это простой кортеж из двух элементов.Лайфхак:
Функция tuple() - позволяет сделать из любой последовательности кортеж.
Пример:
>>> tuple('join us')('j', 'o', 'i', 'n', ' ', 'u', 's')>>> tuple(['Поделись', 'каналом', 'c', 'друзьями'])('Поделись', 'каналом', 'c', 'друзьями')Наша команда создала тест
Просто 9 вопросов по python. В конце можно получить сертификат о прохождении - мелочь, а приятно)
Просто 9 вопросов по python. В конце можно получить сертификат о прохождении - мелочь, а приятно)
Немного поменяли способ подсчета баллов теста выше.
Все результаты пересчитаны, чтобы стало проще
Интересно увидеть статистику по всем пользователям?
Все результаты пересчитаны, чтобы стало проще
Интересно увидеть статистику по всем пользователям?
Anonymous Poll
50%
Покажите графики
19%
Покажите лучших
31%
Ещё тестов создайте
Статистика по тесту 📊.
Пока что его прошло 77 человек. Особенно радует, что многие проходили его несколько раз с одного ip, чтобы получить заветную пятерку!
Наша команда уже готовит следующий тест - не пропусти.
У нас есть план запустить бесплатный интенсив, без какой-либо жуткой рекламы, по модулю itertools.
Покажем базовые возможности, а также красивые и удобные фишки библиотеки.
Если интересно поучаствовать - напиши об этом нашему боту, хотим знать сколько тут замотивированных на учебу!
Поделись каналом с друзьями - мы сейчас только начинаем развиваться, и без твоей помощи ничего грандиозного не получится)
Твоя обратная связь мотивирует команду Junior Python School работать лучше и быстрее, пользуйся этим)
Участвуй в нашем конкурсе. Шансы выиграть что-то сейчас очень высоки!
Пока что его прошло 77 человек. Особенно радует, что многие проходили его несколько раз с одного ip, чтобы получить заветную пятерку!
Наша команда уже готовит следующий тест - не пропусти.
У нас есть план запустить бесплатный интенсив, без какой-либо жуткой рекламы, по модулю itertools.
Покажем базовые возможности, а также красивые и удобные фишки библиотеки.
Если интересно поучаствовать - напиши об этом нашему боту, хотим знать сколько тут замотивированных на учебу!
Поделись каналом с друзьями - мы сейчас только начинаем развиваться, и без твоей помощи ничего грандиозного не получится)
Твоя обратная связь мотивирует команду Junior Python School работать лучше и быстрее, пользуйся этим)
Участвуй в нашем конкурсе. Шансы выиграть что-то сейчас очень высоки!
А вот и сами варианты ответов)
Чур, не подглядывать в интерпретатор!!😜
1)
2)
3)
4)
Нельзя использовать в качестве параметра функции изменяемый объект.
Даже pycharm сразу такие ошибки подсвечивает!
1 - 19
👍👍👍👍👍👍👍👍 58%
2 - 3
👍👍 9%
3 - 10
👍👍👍👍👍 30%
4 - 1
👍 3%
👥 33 человека уже проголосовало.
Чур, не подглядывать в интерпретатор!!😜
1)
['I LOVE PYTHON']['I HATE JS', 'I LOVE PYTHON']['I LOVE PYTHON']2)
['I LOVE PYTHON']['I LOVE PYTHON', 'I HATE JS', 'I LOVE PYTHON']['I LOVE PYTHON', 'I HATE JS', 'I LOVE PYTHON', 'I LOVE PYTHON']3)
['I LOVE PYTHON']['I HATE JS', 'I LOVE PYTHON']['I LOVE PYTHON', 'I LOVE PYTHON']4)
Нельзя использовать в качестве параметра функции изменяемый объект.
Даже pycharm сразу такие ошибки подсвечивает!
1 - 19
👍👍👍👍👍👍👍👍 58%
2 - 3
👍👍 9%
3 - 10
👍👍👍👍👍 30%
4 - 1
👍 3%
👥 33 человека уже проголосовало.
crazy_dict = {1: 'int', 1.0: 'float', True: 'boolean'}print(crazy_dict)Наш стандартный вопрос:
Что выведет программа?
В интерпретатор смотреть не надо, мы его уже за вас проверили - правильный ответ в списке есть. Вроде.
1)
{1: 'int', 1.0: 'float', True: 'boolean'}2)
{True: 'int'}3)
{1.0: 'int', True:'boolean'}4)
{1: 'boolean'}5)
{1: 'float', True:'boolean'}1 - 15
👍👍👍👍👍👍👍👍 50%
2 - 3
👍👍 10%
3 - 2
👍👍 7%
4 - 7
👍👍👍👍 23%
5 - 3
👍👍 10%
👥 30 человек уже проголосовало.
Давайте обсудим нашу рождественскую задачку
Вот теперь уже можно подсмотреть в интерпретатор)
Что за магия?
Просто нужно запомнить, что в момент инициализации функции автоматически инициализируются значения по-умолчанию у всех параметров и записываются в кортеж
В кортеже
Просто каждый раз, когда вы вызываете функцию с параметром по-умолчанию (явно не указывая этот параметр), 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%
>>