Тест по языку программирования Python
Русский
Advanced
Этот тест позволит вам проверить свои знания языка программирования Python. Вы сможете узнать или повторить для себя его тонкости. Все вопросы теста относятся к классической реализации языка - CPython версии 3.x (если в вопросе не указано иное). Надеюсь, вам будет интересно, удачи! 🎯
Description
31
Questions
1 min
Per question
6:06
Average time
3.0
Contest Score
4.0
Community Rating
12
Participants
8 comments
Shiny Jaguar
Присутствуют грамматические ошибки. Также, желательно создавать картинки с примерами кода с помощью специальных сервисов. Не пикселит и выглядит приятнее.
Lawful Kiwi author
Спасибо за отзыв! Не могли бы вы написать, какие грамматические ошибки вы встретили? Был бы благодарен
Small Lizard
По поводу задания о print(a is b)

Если выполнить это в консоли:
>>> a = 257
>>> b = 257
>>> print(a is b)
То здесь выведется False, как и показано в объяснении к вопросу: https://stackoverflow.com/questions/306313/is-operator-behaves-unexpectedly-with-integers

Если же выполнить то же самое в одной программе:
a = 257
b = 257
print(a is b)
То здесь выведется True.
Ссылка на код: https://ideone.com/9FRxuW

Объяснение, почему так происходит: https://www.it-swarm.xyz/ru/python/chto-s-integer-cache-vnutri-python/1070875263/

В вопросе не указано, что строки - отдельные команды в консоли, следовательно правильный ответ - "True, True, True", а не "True, False, True"
Lawful Kiwi author
Да, вы правы, следовало обозначить, что команды выполняются в консоли
parikLS
Средняя сложность добавления в дикт log n
Lawful Kiwi author
Не могли бы вы сказать, почему вы так думаете? Насколько я знаю, средняя сложность составляет O(1). В словаре используется хеш-таблица, среднее время добавления в которую O(1). При этом, как указано в объяснении, с версии Python 3.7, когда словари стали упорядоченными, хеш-таблицы не были заменены красно-черными деревьями, в которых действительно было бы log n. Ист1: https://stackoverflow.com/questions/327311/how-are-pythons-built-in-dictionaries-implemented, ист2: https://stackoverflow.com/questions/39980323/are-dictionaries-ordered-in-python-3-6
parikLS
Lawful Kiwi O(1) это лучшее время для хеш таблицы в случае если нету коллизий. Если все элементы которые вы будете вставлять будут иметь одинаковый хеш - сложность будет О(n). Среднее - log n.
Lawful Kiwi author
parikLS parikLS
Да, в худшем O(n), но мне непонятно, почему в среднем должно быть O(log n). Во всех просмотренных мной источниках (https://books.google.ru/books?id=s1mWDwAAQBAJ&lpg=PA72&ots=_ILCtWyStR&dq=python%20random%20probing&hl=ru&pg=PA73#v=snippet&q=Full%20table%20dictioanry&f=false к примеру) указано константное среднее время, я не вижу, откуда взяться логарифму
Take the quiz to leave a comment