#вопросы_с_собеседований
Что произойдет, если блок except не обработает ошибку?
Если ошибка не будет перехвачена в блоке except, программа завершит свою работу и выведет сообщение об ошибке. Это называется необработанным исключением.
При возникновении исключения Python создает traceback — последовательность вызовов функций, которая привела к ошибке. Если блок except не перехватывает исключение, traceback отображается пользователю, и программа аварийно завершает свою работу.
Что произойдет, если блок except не обработает ошибку?
Если ошибка не будет перехвачена в блоке except, программа завершит свою работу и выведет сообщение об ошибке. Это называется необработанным исключением.
При возникновении исключения Python создает traceback — последовательность вызовов функций, которая привела к ошибке. Если блок except не перехватывает исключение, traceback отображается пользователю, и программа аварийно завершает свою работу.
👍16
Forwarded from Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Существует мнение, что высшего образования в сфере разработки игр в России нет, но это не так. В этой большой статье я подробно и честно расскажу о своем опыте обучения на разработчика игр в одном из московских университетов.
👉 Статья
👉 Статья
👍4❤2😁1
🤔🔥🪦 Беспощадный Frontend-тест: уволься сам, если не наберёшь 7 из 10!
DS и ML — это, как правило, не про фронтенд. Но везде бывают исключения.
А насколько хорошо ты разбираешься в CSS, JS и вот этом вот всём?
👉 Проверь себя
DS и ML — это, как правило, не про фронтенд. Но везде бывают исключения.
А насколько хорошо ты разбираешься в CSS, JS и вот этом вот всём?
👉 Проверь себя
🔥6❤3👍2
Присвоение переменных и функций в зависимости от условия
Иногда конструкции if бывают настолько простыми, что их использование может показаться излишним. В таких случаях целесообразно применять тернарный оператор if/else:
A = Y if X else Z
Интерпретатор выполнит выражение Y, если объект X является истинным, и Z, если X ложен. Однако не стоит злоупотреблять этим оператором, если X, Y и Z имеют сложную структуру.
Тернарный оператор можно использовать не только для присвоения переменных, но и для вызова функций.
Иногда конструкции if бывают настолько простыми, что их использование может показаться излишним. В таких случаях целесообразно применять тернарный оператор if/else:
A = Y if X else Z
Интерпретатор выполнит выражение Y, если объект X является истинным, и Z, если X ложен. Однако не стоит злоупотреблять этим оператором, если X, Y и Z имеют сложную структуру.
Тернарный оператор можно использовать не только для присвоения переменных, но и для вызова функций.
🔥27👍4👏2
Проверьте использование памяти ваших объектов
С помощью функции sys.getsizeof() вы можете узнать, сколько памяти занимает объект (в данном случае — 48 байт). Удивительно, но почему же этот большой список занимает всего 48 байт? Дело в том, что функция range возвращает класс, который ведет себя как список, но при этом использует значительно меньше памяти, чем реальный список чисел.
Чтобы убедиться в этом, вы можете создать настоящий список чисел из того же диапазона с помощью списковых включений, и он займет уже 87632 байта.
Таким образом, играя с sys.getsizeof(), вы сможете глубже понять, как работает Python и как эффективно использовать память.
С помощью функции sys.getsizeof() вы можете узнать, сколько памяти занимает объект (в данном случае — 48 байт). Удивительно, но почему же этот большой список занимает всего 48 байт? Дело в том, что функция range возвращает класс, который ведет себя как список, но при этом использует значительно меньше памяти, чем реальный список чисел.
Чтобы убедиться в этом, вы можете создать настоящий список чисел из того же диапазона с помощью списковых включений, и он займет уже 87632 байта.
Таким образом, играя с sys.getsizeof(), вы сможете глубже понять, как работает Python и как эффективно использовать память.
👍23🥰6🎉3
🚨 Хакеры скомпрометировали Ultralytics YOLO и развернули криптомайнеры через PyPI
🐍 Скомпрометированы версии YOLO 8.3.41 и 8.3.42.
📂 Библиотека устанавливает майнер XMRig в директории /tmp/ultralytics_runner, подключаясь к пулу по адресу connect.consrensys[.]com: 8080.
Основатель и генеральный директор Ultralytics, Гленн Йохер, сообщил, что скомпрометированные версии заменены на чистую версию 8.3.43. Он предположил, что взлом произошёл через два пулл реквеста от пользователя из Гонконга.
🛡 Пока неясно, ограничились ли злоумышленники только майнингом или получили доступ к пользовательским данным. Всем, кто загрузил скомпрометированные версии, настоятельно рекомендуется провести полное сканирование системы.
🐍 Скомпрометированы версии YOLO 8.3.41 и 8.3.42.
📂 Библиотека устанавливает майнер XMRig в директории /tmp/ultralytics_runner, подключаясь к пулу по адресу connect.consrensys[.]com: 8080.
Основатель и генеральный директор Ultralytics, Гленн Йохер, сообщил, что скомпрометированные версии заменены на чистую версию 8.3.43. Он предположил, что взлом произошёл через два пулл реквеста от пользователя из Гонконга.
🛡 Пока неясно, ограничились ли злоумышленники только майнингом или получили доступ к пользовательским данным. Всем, кто загрузил скомпрометированные версии, настоятельно рекомендуется провести полное сканирование системы.
👍6😢5❤3😁1
🤖🔄🤖 Самосовершенствующиеся ИИ: как передать знания от одной модели другой
Развитие больших языковых моделей привело к революции в области ИИ, но также выявило ключевые проблемы масштабирования: чем больше становятся модели, тем меньше прирост их производительности, в то время как затраты на обучение — как вычислительные, так и финансовые — продолжают расти. Этот эффект убывающей отдачи показывает, что будущее ИИ лежит не в создании более крупных моделей, а в создании более эффективных и умных технологий.
✅ Разработчики Writer создали новую архитектуру самосовершенствующихся моделей. Эти модели могут учиться в реальном времени и адаптироваться к изменениям без необходимости полной повторного обучения.
👉 О том, как они устроены, читайте в нашей статье
Развитие больших языковых моделей привело к революции в области ИИ, но также выявило ключевые проблемы масштабирования: чем больше становятся модели, тем меньше прирост их производительности, в то время как затраты на обучение — как вычислительные, так и финансовые — продолжают расти. Этот эффект убывающей отдачи показывает, что будущее ИИ лежит не в создании более крупных моделей, а в создании более эффективных и умных технологий.
✅ Разработчики Writer создали новую архитектуру самосовершенствующихся моделей. Эти модели могут учиться в реальном времени и адаптироваться к изменениям без необходимости полной повторного обучения.
👉 О том, как они устроены, читайте в нашей статье
🔥11👍3🎉3❤1
Forwarded from Библиотека нейросетей | ChatGPT, Midjourney, DeepSeek, Sora
🤖💬 Как разрабы создали AI-мессенджер для себя, который стал популярным и востребованным на рынке. История Yuchat
«А давайте сделаем такой мессенджер, чтобы самим нравилось?» — подумали питерские разработчики во время пандемии. И создали то, о чём мечтает каждая компания — платформу для общения, где есть всё: чаты, звонки с транскрибацией, файлы и ИИ, который наводит порядок в этом бесконечном потоке информации. Главное — он реально облегчает жизнь, а не создаёт новые проблемы.
👉 Читать историю Yuchat подробнее
«А давайте сделаем такой мессенджер, чтобы самим нравилось?» — подумали питерские разработчики во время пандемии. И создали то, о чём мечтает каждая компания — платформу для общения, где есть всё: чаты, звонки с транскрибацией, файлы и ИИ, который наводит порядок в этом бесконечном потоке информации. Главное — он реально облегчает жизнь, а не создаёт новые проблемы.
👉 Читать историю Yuchat подробнее
👍8❤4
🤖 💻 Код без боли: 16 генераторов кода, которые заменят целую команду
Мы сделали подробный обзор современных генераторов кода — от GitHub Copilot до малоизвестных, но мощных альтернатив.
👉 Читать по этой ссылке
Мы сделали подробный обзор современных генераторов кода — от GitHub Copilot до малоизвестных, но мощных альтернатив.
👉 Читать по этой ссылке
👍14❤2🔥1
Привет, друзья! 👋
2024-й год подходит к концу, и пока LLM не написали за нас все программы, а квантовые компьютеры не взломали все пароли, самое время подвести итоги. Какие технологии действительно «выстрелили», а какие не оправдали ожиданий? Что изменилось в работе разработчиков, и какие навыки оказались самыми востребованными?
💻 Поделитесь своим мнением, и самое важное и интересное войдёт в нашу статью. 🏆
2024-й год подходит к концу, и пока LLM не написали за нас все программы, а квантовые компьютеры не взломали все пароли, самое время подвести итоги. Какие технологии действительно «выстрелили», а какие не оправдали ожиданий? Что изменилось в работе разработчиков, и какие навыки оказались самыми востребованными?
💻 Поделитесь своим мнением, и самое важное и интересное войдёт в нашу статью. 🏆
👍5
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🐛🔍 Как найти баг в 2088 коммитах с помощью git bisect
Метод
Задача: найти конкретный коммит, который вызвал регрессионную ошибку в проекте.
Исходные данные:
✔️ Ошибка была зарегистрирована 21 октября. Она находится в текущей версии на ветке main.
✔️ Ошибка отсутствует в более ранней версии, которая была выделена в отдельную ветку
✔️ Ветку
🔗 Читать статью
🔗 Зеркало
Метод
git bisect
— мощный инструмент для поиска изменения, вызвавшего баг в коде: с его помощью разработчику удалось быстро локализовать проблему, просмотрев всего 11 коммитов вместо изначальных 2088.Задача: найти конкретный коммит, который вызвал регрессионную ошибку в проекте.
Исходные данные:
✔️ Ошибка была зарегистрирована 21 октября. Она находится в текущей версии на ветке main.
✔️ Ошибка отсутствует в более ранней версии, которая была выделена в отдельную ветку
release-5.7.0
.✔️ Ветку
release-5.7.0
создали 2 месяца назад, а с тех пор в ветке main
было сделано много изменений — баг может находиться в любом из нескольких тысяч коммитов, которые невозможно быстро просмотреть.🔗 Читать статью
🔗 Зеркало
🔥12👍5❤2
dir()
и vars()
— для чего они нужны?Когда вы работаете в Python REPL или отлаживаете код, иногда полезно быстро взглянуть на объект, с которым вы не до конца знакомы. В такие моменты на помощь приходят две удобные функции:
dir()
и vars()
.dir()
— возвращает список всех атрибутов объекта, включая методы и атрибуты класса. vars()
— возвращает словарь атрибутов, которые живут непосредственно в объекте. Методы и атрибуты класса в этом списке отсутствуют.from dataclasses import dataclass
@dataclass
class Rectangle:
width: float
height: float
@property
def area(self):
return self.width * self.height
Мы создаём объект прямоугольника:
rect = Rectangle(3, 4)
Вот что нам покажет
dir()
:['__annotations__', '__class__', '__dataclass_fields__', '__dataclass_params__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__firstlineno__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__match_args__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__replace__', '__repr__', '__setattr__', '__sizeof__', '__static_attributes__', '__str__', '__subclasshook__', '__weakref__', 'area', 'height', 'width']
А вот что покажет
var()
:{'width': 3, 'height': 4}
#советы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍37