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
41%
[1, 2, '3', '10', '20']
32%
['10', '20', '3', 1, 2]
12%
[1, 2, '10', '20', '3']
15%
Error
Каким будет вывод этого кода?
Anonymous Quiz
7%
[1, 4, 5 ]
18%
Ошибка
8%
[-2, -3]
59%
[1, -2, -3]
7%
Узнать ответ
Что выведет код?
Anonymous Quiz
19%
build, 5 [1, 9]
28%
build, 10 []
21%
build, 14 [1, 4, 9]
31%
Error
Каким будет вывод этого кода в консоли?
Anonymous Quiz
21%
'sun'
2%
'u'
63%
Или 's', или 'u', или 'n'
8%
Ошибка
6%
Посмотреть ответ
🐍 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 ключ словаря - это не “текстовое имя”, а объект с правилами хеширования и сравнения.
Каким будет вывод этого кода?
Anonymous Quiz
3%
[3, 2, 4]
11%
[2, 3, 4]
71%
[3, 4, 2]
7%
Ошибка
8%
Посмотреть ответ
LLM (большие языковые модели) или агент
LLM и ИИ-агент — эти слова часто звучат в одном ряду, будто это одно и то же. На деле — два разных объекта.
LLM отвечает на запрос. Все, что за пределами окна диалога, ей не принадлежит. Агент — это модель плюс код вокруг нее: правила проекта, доступ к файлам, автопроверка тестов, взаимная проверка кода моделями. Модель пишет, а обвязка решает, что оставить, что переписать, что заблокировать.
Разница между «просто LLM» и «агент с обвязкой» видна на одном и том же запросе: без правил проекта — код с ошибками и неправильным стандартом тестов. С правилами — типизированный код и зеленые тесты.
16 июля в 19:00 мск на бесплатном вебинаре karpovꓸcourses «ИИ-агенты и профессиональная разработка на Python» Алексей Жиряков — исполнительный директор в Сбере, ех-технический директор направления в KION, 15+ лет в серверной разработке — показывает полный рабочий цикл агента поверх готового репозитория. Без теории, только живое демо на Python.
После регистрации — получите гайд «Почему ваш ИИ пишет не то: LLM против ИИ-агента» + запись вебинара.
Разберитесь один раз, где решает сама модель, а где — код вокруг нее: https://clc.to/erid_2W5zFJG5Mqb
Реклама. ООО «КАРПОВ КУРСЫ». ИНН 7811764627. erid: 2W5zFJG5Mqb
LLM и ИИ-агент — эти слова часто звучат в одном ряду, будто это одно и то же. На деле — два разных объекта.
LLM отвечает на запрос. Все, что за пределами окна диалога, ей не принадлежит. Агент — это модель плюс код вокруг нее: правила проекта, доступ к файлам, автопроверка тестов, взаимная проверка кода моделями. Модель пишет, а обвязка решает, что оставить, что переписать, что заблокировать.
Разница между «просто LLM» и «агент с обвязкой» видна на одном и том же запросе: без правил проекта — код с ошибками и неправильным стандартом тестов. С правилами — типизированный код и зеленые тесты.
16 июля в 19:00 мск на бесплатном вебинаре karpovꓸcourses «ИИ-агенты и профессиональная разработка на Python» Алексей Жиряков — исполнительный директор в Сбере, ех-технический директор направления в KION, 15+ лет в серверной разработке — показывает полный рабочий цикл агента поверх готового репозитория. Без теории, только живое демо на Python.
После регистрации — получите гайд «Почему ваш ИИ пишет не то: LLM против ИИ-агента» + запись вебинара.
Разберитесь один раз, где решает сама модель, а где — код вокруг нее: https://clc.to/erid_2W5zFJG5Mqb
Реклама. ООО «КАРПОВ КУРСЫ». ИНН 7811764627. erid: 2W5zFJG5Mqb
Каким будет вывод этого кода?
Anonymous Quiz
66%
first=H, third=L
9%
first=0, third=2
3%
first=0, third=L
16%
Ошибка
6%
Посмотреть ответ