Вы точно знаете отличия между
Каким будет результат выражения:
Большинство людей уверены, что Python вернёт True. Но если запустить код, мы увидим 5. Это происходит, потому что Python возвращает само значение операнда, если оно Truthy / Falsy.
Truthy / Falsy
Любой объект Python — либо «трушный», либо «ложный»:
— Falsy:
— Truthy: всё остальное
Оператор
Поведение or
Оператор возвращает первый Truthy операнд, если таковой есть; иначе — последний Falsy.
Идея: достаточно одной истины, и дальше Python не продолжает (Short‑Circuit Evaluation).
Поведение and
Оператор возвращает первый Falsy операнд, если он встретится; иначе — последний Truthy.
Логика: and требует, чтобы обе стороны были истинными, иначе выражение — ложь.
Приоритет not, and, or
Операторы имеют встроенный приоритет:
1.
2.
3.
Рекомендации
— Используйте скобки, чтобы явно показывать порядок операций;
— Не пишите слишком длинные цепочки с a
— Именованные логические условия помогают читать код.
#основы
or
и and
?Каким будет результат выражения:
5 or 0
Большинство людей уверены, что Python вернёт True. Но если запустить код, мы увидим 5. Это происходит, потому что Python возвращает само значение операнда, если оно Truthy / Falsy.
Truthy / Falsy
Любой объект Python — либо «трушный», либо «ложный»:
— Falsy:
0
, ""
, []
, {}
, None
, 0.0
— Truthy: всё остальное
Оператор
bool(obj)
конвертирует объект в логическое значение, но сами and
/ or
возвращают ненулевые сущности: последний вычисленный операнд.Поведение or
Оператор возвращает первый Truthy операнд, если таковой есть; иначе — последний Falsy.
5 or 0 # → 5 (первый truthy)
0 or 7 # → 7 (второе значение, truthy)
0 or '' or None # → None (все falsy, возвращается последний)
Идея: достаточно одной истины, и дальше Python не продолжает (Short‑Circuit Evaluation).
Поведение and
Оператор возвращает первый Falsy операнд, если он встретится; иначе — последний Truthy.
5 and 0 # → 0 (первый Falsy)
5 and 7 # → 7 (оба Truthy, возвращаем последний)
0 and 5 # → 0 (первый Falsy — возвращён)
Логика: and требует, чтобы обе стороны были истинными, иначе выражение — ложь.
Приоритет not, and, or
Операторы имеют встроенный приоритет:
1.
not
(наивысший)2.
and
3.
or
(наинизший)
True or False and False # → True, т. к. это эквивалентно True or (False and False)
(not False) or True # → True, сначала выполняется not.
Рекомендации
— Используйте скобки, чтобы явно показывать порядок операций;
— Не пишите слишком длинные цепочки с a
nd
/ or
без промежуточных переменных;— Именованные логические условия помогают читать код.
#основы
❤6👍6
uqlm | Фактчекинг ответа LLM
Проблеме галлюцинаций LLM сейчас уделяется немало внимания, и в опенсорсе тоже нашлись умельцы. Библиотека выполняет фактчекинг нагенеренного, предже чем оно отправится юзеру. На идеальное решение авторы не претендуют, потому каждому ответу присваивается скор уверенности в достоверности. Давно пора было!
Цена: бесплатно
@zen_of_python
Проблеме галлюцинаций LLM сейчас уделяется немало внимания, и в опенсорсе тоже нашлись умельцы. Библиотека выполняет фактчекинг нагенеренного, предже чем оно отправится юзеру. На идеальное решение авторы не претендуют, потому каждому ответу присваивается скор уверенности в достоверности. Давно пора было!
Цена: бесплатно
@zen_of_python
❤5🎃1
Вопрос подписчика
Задает @terisht:
«2 вопроса в одном. Находил ли кто-то либы по архивации файлов на расте для python? И, если такие есть, кто-то мерил насколько они более профитны чем дефолтный zipfile питонячий?»
NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике.
#обсуждение
@zen_of_python
Задает @terisht:
«2 вопроса в одном. Находил ли кто-то либы по архивации файлов на расте для python? И, если такие есть, кто-то мерил насколько они более профитны чем дефолтный zipfile питонячий?»
NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике.
#обсуждение
@zen_of_python
👍1
ИИ против разума: битва за навыки программиста
Сегодня многие программисты всё чаще доверяют работу LLM, теряя навык писать даже базовые конструкции вроде простого цикла. Но большие языковые модели не понимают реальную архитектуру проекта, а лишь подбирают правдоподобный текст. В итоге ключевая ответственность — понимание задачи, принятие архитектурных решений и контроль качества — всё ещё остаётся за живым человеком. В статье на Tproger разобрались, как сохранить за собой гордое звание «разработчик», а не «одобрятор автокомплита».
#LLM
@zen_of_python
Сегодня многие программисты всё чаще доверяют работу LLM, теряя навык писать даже базовые конструкции вроде простого цикла. Но большие языковые модели не понимают реальную архитектуру проекта, а лишь подбирают правдоподобный текст. В итоге ключевая ответственность — понимание задачи, принятие архитектурных решений и контроль качества — всё ещё остаётся за живым человеком. В статье на Tproger разобрались, как сохранить за собой гордое звание «разработчик», а не «одобрятор автокомплита».
#LLM
@zen_of_python
👍4👎3
Вопрос подписчика
Задает @Python3k:
«Что-бы такое интересно покодить? 🤔»
NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике.
От админа: сейчас вам накидают неоплачиваемой работы 😆
#обсуждение
@zen_of_python
Задает @Python3k:
«Что-бы такое интересно покодить? 🤔»
NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике.
От админа: сейчас вам накидают неоплачиваемой работы 😆
#обсуждение
@zen_of_python
❤3🤗2
Вопрос подписчика
Задает @Jack_Frost13:
NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике.
#обсуждение
@zen_of_python
Задает @Jack_Frost13:
«Вопрос по LLM
Какие LLM можно подключить как агента, чтобы он делал работу по инструкции за меня (ML), какие модели лучше всего подойдут для этого и как это организовать?»
NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике.
#обсуждение
@zen_of_python
🤔2
Byte of Python | Бесплатный учебник, ставший классикой
Сейчас лето, и при должном везении ваш работодатель слегка расслабился. Можно и книжку почитать.
«Укус питона» — известный бесплатный учебник, который можно скачать в форматах .pdf / .epub вместе с Python-скриптами прямо из репозитория автора Сварупа.
Спасибо @Chellbas за рекомендацию.
#основы
@zen_of_python
Сейчас лето, и при должном везении ваш работодатель слегка расслабился. Можно и книжку почитать.
«Укус питона» — известный бесплатный учебник, который можно скачать в форматах .pdf / .epub вместе с Python-скриптами прямо из репозитория автора Сварупа.
Спасибо @Chellbas за рекомендацию.
#основы
@zen_of_python
❤7
vulnhuntr | Пусть уязвимости ищет LLM
Хватит уже плодить небезопасный нагенеренный код... Лучше искать с помощью ChatGPT / Cursor / Claude дыры в системах. Библиотека сканирует весь код питонического проекта и находит прорехи по типу SSRF, XSS и проч.
#инструмент
@zen_of_python
Хватит уже плодить небезопасный нагенеренный код... Лучше искать с помощью ChatGPT / Cursor / Claude дыры в системах. Библиотека сканирует весь код питонического проекта и находит прорехи по типу SSRF, XSS и проч.
#инструмент
@zen_of_python
👍3
argparse: зачем нужен и при чем здесь sys.argv()?
При создании скриптов, которые запускаются из командной строки, часто возникает необходимость принимать аргументы. Чтобы эффективно разбирать и обрабатывать эти параметры, в стандартной библиотеке Python есть модуль
➡️ Какую роль играет sys.argv?
Например, если вы вызовете скрипт так:
то выведется такой перечень:
Однако
➡️ argparse: как с ним обращаться
Часто бывает так, что скрипт требует передать обязательный параметр — имя файла. Это называется позиционным аргументом, так как его положение в командной строке имеет значение.
Теперь, если запустить скрипт так:
Программа выведет:
Если попытаться запустить без аргумента:
то argparse автоматически покажет сообщение об ошибке и краткую справку:
Документация
#основы
@zen_of_python
🙏 — Если спасибо за такой контент
При создании скриптов, которые запускаются из командной строки, часто возникает необходимость принимать аргументы. Чтобы эффективно разбирать и обрабатывать эти параметры, в стандартной библиотеке Python есть модуль
argparse
. В этом лонгриде мы покажем на примере, как его использовать, покажем взаимосвязь с sys.argv
.sys.argv
— это список, содержащий аргументы командной строки, с которыми был запущен скрипт. Первый элемент списка sys.argv[0]
— это имя самого скрипта.Например, если вы вызовете скрипт так:
python script.py filename.txt -v
то выведется такой перечень:
import sys
print(sys.argv) # ['script.py', 'filename.txt', '-v']
Однако
sys.argv
— это просто список строк, и если работать с ним вручную, то придётся самостоятельно обрабатывать порядок, типы данных, проверять правильность и т.п., что может стать сложной задачей. Здесь на помощь приходит argparse
. Он автоматизирует парсинг аргументов и предоставляет удобные способы проверки параметров CLI.argparse
позволяет описать, какие параметры принимает ваш скрипт, какие из них обязательны, какие опциональны, какие могут быть флагами (включить / выключить). Он также автоматически генерирует справку и обрабатывает ошибки в вводе.Часто бывает так, что скрипт требует передать обязательный параметр — имя файла. Это называется позиционным аргументом, так как его положение в командной строке имеет значение.
import argparse
# Создаём парсер
parser = argparse.ArgumentParser(description='Обработка файла.') # Создаем объект ArgumentParser;
# Добавляем позиционный аргумент 'filename'
parser.add_argument('filename', help='имя файла для обработки') # Добавляем описание каждого аргумента или опции
# Разбираем аргументы командной строки
args = parser.parse_args() # Разберём аргументы sys.argv
# Fргументы доступны как атрибуты: args.filename
print(f'Обрабатываем файл: {args.filename}')
Теперь, если запустить скрипт так:
python script.py example.txt
Программа выведет:
Обрабатываем файл: example.txt
Если попытаться запустить без аргумента:
python script.py
то argparse автоматически покажет сообщение об ошибке и краткую справку:
usage: script.py [-h] filename
script.py: error: the following arguments are required: filename
Документация
#основы
@zen_of_python
🙏 — Если спасибо за такой контент
Please open Telegram to view this post
VIEW IN TELEGRAM
🙏7
Forwarded from Нейроканал
Разработчики всё меньше доверяют ИИ, хоть и чаще к нему обращаются...
Stack Overflow провели большое исследование, в результате которого выяснили, что лишь 29% опрошенных считают ИИ надёжным.
Эти и другие любопытные факты — по ссылке.
#для_АйтИИ
Stack Overflow провели большое исследование, в результате которого выяснили, что лишь 29% опрошенных считают ИИ надёжным.
Эти и другие любопытные факты — по ссылке.
#для_АйтИИ
Tproger
Разработчики всё чаще используют ИИ, но доверяют ему всё меньше
Опрос Stack Overflow 2025 года показал, что 80% разработчиков применяют ИИ в работе, но доверие к нему снизилось до 29%. Основная проблема — скрытые ошибки в коде, генерируемом ИИ, которые усложняют отладку.
❤1
void | Опенсорсный Cursor
Клоны Cursor сыплются, как из рога изобилия в 2025 году. Все, как и везде: автокомплиты, чатик в окне справа, UI — как у еще одного форка VSCode. Множество популярных условно-бесплатных LLM (DeepSeek, Llama, Gemini, Qwen) или ваша оплаченная альтернатива вроде Gemini 2.5, Claude 3.7, Grok 3, o4-mini, and Qwen 3.
#инструмент
@zen_of_python
Клоны Cursor сыплются, как из рога изобилия в 2025 году. Все, как и везде: автокомплиты, чатик в окне справа, UI — как у еще одного форка VSCode. Множество популярных условно-бесплатных LLM (DeepSeek, Llama, Gemini, Qwen) или ваша оплаченная альтернатива вроде Gemini 2.5, Claude 3.7, Grok 3, o4-mini, and Qwen 3.
#инструмент
@zen_of_python
👍1🌚1
Data Engineering Landscape
Просить собрать вас бинго не буду, но так в 2025 году выглядит подборка топовых продуктов по 11 категориям.
А что бы вы сюда добавили из наших, импортозамещающих продуктов? Как минимум ClickHouse напрашивается.
#факт
@zen_of_python
Просить собрать вас бинго не буду, но так в 2025 году выглядит подборка топовых продуктов по 11 категориям.
А что бы вы сюда добавили из наших, импортозамещающих продуктов? Как минимум ClickHouse напрашивается.
#факт
@zen_of_python
🔥2