Этот код выдаст ошибку, если ввести в качестве инпута -5.
Anonymous Quiz
39%
True
50%
False
11%
Посмотреть ответ
Что выведет код в Python 3?
Anonymous Quiz
37%
['a', 'b', 'c'], 2
19%
['a', 'b', 'c'], 3
23%
['b', 'c'], 2
21%
Error
Forwarded from Python/ django
Python-баг, который выглядит безобидно… но ломает логику 👇
Ожидание: оба orange удалятся.
Реальность: один orange остаётся.
Почему так происходит?
Ты изменяешь список во время итерации.
После удаления элементы сдвигаются, и цикл пропускает следующий элемент.
Это классический сценарий продакшн-багов:
• код выглядит правильно
• тесты могут пройти
• но данные обрабатываются неправильно
Правильный вариант:
Мораль:
Изменяешь коллекцию во время обхода -Deploy first. Pray later.
#junior #python
@pythonl
fruits = ["apple", "lime", "orange",
"pineapple", "orange"]
for f in fruits:
if f == "orange":
fruits.remove(f)
print(fruits)
Ожидание: оба orange удалятся.
Реальность: один orange остаётся.
Почему так происходит?
Ты изменяешь список во время итерации.
После удаления элементы сдвигаются, и цикл пропускает следующий элемент.
Это классический сценарий продакшн-багов:
• код выглядит правильно
• тесты могут пройти
• но данные обрабатываются неправильно
Правильный вариант:
fruits = [f for f in fruits if f != "orange"]
Мораль:
Изменяешь коллекцию во время обхода -Deploy first. Pray later.
#junior #python
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код в Python 3?
Anonymous Quiz
42%
[1, 2, '3', '10', '20']
31%
['10', '20', '3', 1, 2]
11%
[1, 2, '10', '20', '3']
15%
Error
Каким будет вывод этого кода?
Anonymous Quiz
7%
[1, 4, 5 ]
18%
Ошибка
8%
[-2, -3]
60%
[1, -2, -3]
7%
Узнать ответ
Что выведет код?
Anonymous Quiz
19%
build, 5 [1, 9]
26%
build, 10 []
20%
build, 14 [1, 4, 9]
35%
Error
Каким будет вывод этого кода в консоли?
Anonymous Quiz
18%
'sun'
1%
'u'
68%
Или 's', или 'u', или 'n'
9%
Ошибка
4%
Посмотреть ответ
🐍 Python Pop Quiz: что окажется внутри `silly_dict`?
Вопрос звучит просто, но тут ловушка в том, как Python работает с ключами словаря.
Варианты:
A)
B)
C)
D) None of the above
Суть в том, что ключи в
Если объект пользовательского класса имеет такой же хеш, как строка
В таком случае новое значение просто перезапишет старое.
Ответ: B) `{"py": 10}`
Маленький пример, но отлично показывает важную вещь: в Python ключ словаря - это не “текстовое имя”, а объект с правилами хеширования и сравнения.
Вопрос звучит просто, но тут ловушка в том, как Python работает с ключами словаря.
Варианты:
A)
{"py": "amazing"} B)
{"py": 10} C)
{"py": "amazing", <__main__.MyClass object at ...>: 10} D) None of the above
Суть в том, что ключи в
dict сравниваются не по тому, как они выглядят в коде, а через __hash__ и __eq__.Если объект пользовательского класса имеет такой же хеш, как строка
"py", и при сравнении считается равным этой строке, то Python решит: это один и тот же ключ.В таком случае новое значение просто перезапишет старое.
Маленький пример, но отлично показывает важную вещь: в Python ключ словаря - это не “текстовое имя”, а объект с правилами хеширования и сравнения.