Почему input() ломает логику, если забыть про типы
Частая ошибка у новичков в Python.
Пишут так:
И ждут, что все сработает.
Но получают:
В чем проблема
input() всегда возвращает строку.
Даже если ты ввел
То есть:
•
•
Сравнивать строку и число через
Еще один частый баг
Вводишь
Почему так? Потому что строки склеиваются, а не складываются.
Как правильно
Если ждешь целое число:
Если дробное:
Если пользователь может ввести что угодно
Итог
input() это всегда строка.
Если работаешь с числами после
•
•
Иначе получишь либо ошибку, либо тихо неправильный результат.
Частая ошибка у новичков в Python.
Пишут так:
age = input("Сколько тебе лет? ")
if age >= 18:
print("Доступ разрешен")И ждут, что все сработает.
Но получают:
TypeError: '>=' not supported between instances of 'str' and 'int'
В чем проблема
input() всегда возвращает строку.
Даже если ты ввел
18, Python получает "18".То есть:
•
18 это число •
"18" это строкаСравнивать строку и число через
>= нельзя.Еще один частый баг
a = input("Первое число: ")
b = input("Второе число: ")
print(a + b)Вводишь
2 и 3, получаешь:23
Почему так? Потому что строки склеиваются, а не складываются.
Как правильно
Если ждешь целое число:
age = int(input("Сколько тебе лет? "))Если дробное:
value = float(input("Введите число: "))Если пользователь может ввести что угодно
try:
age = int(input("Сколько тебе лет? "))
print("Возраст принят:", age)
except ValueError:
print("Нужно ввести число")
Итог
input() это всегда строка.
Если работаешь с числами после
input(), почти всегда нужен:•
int() •
float()Иначе получишь либо ошибку, либо тихо неправильный результат.
Слив реальных задач олимпиад по программированию:
Олимпиада «Когнитивные технологии»
➡️ Задания 1 тура: https://codeforces.com/gym/106190
➡️ Разбор 1 тура: https://l.itatmisis.ru/cognitive-first-tutorial-2025
➡️ Задания 2 тура: https://codeforces.com/gym/106230
➡️ Разбор 2 тура: https://l.itatmisis.ru/cognitive-second-tutorial-2025
➡️ Задания 3 тура: https://codeforces.com/gym/106269
➡️ Разбор 3 тура: https://l.itatmisis.ru/cognitive-third-tutorial-2025
Все задания можно прорешать онлайн на любом удобном языке
Олимпиада «Когнитивные технологии»
Все задания можно прорешать онлайн на любом удобном языке
Please open Telegram to view this post
VIEW IN TELEGRAM
Codeforces
Dashboard - Когнитивные технологии 2025-2026. Первый отбор - Codeforces
Codeforces. Programming competitions and contests, programming community
ехал any через any
видит any реку any
сунул any руку в any
any any [Object object]
Хватит на сегодня интернета
видит any реку any
сунул any руку в any
any any [Object object]
Хватит на сегодня интернета
Почему нужны if __name__ == "__main__": и __init__.py
Частая путаница у новичков в Python, когда проект становится больше одного файла.
Ты импортируешь файл, а он внезапно что-то запускает сам.
Пишут так:
И ждут, что при
Но получают: Лишние принты, запуск кода, запросы, боты, всё что угодно. Просто потому что файл импортировали.
В чем проблема?
Импорт в Python выполняет файл целиком сверху вниз.
То есть
Как правильно:
Вынеси запуск в блок
Почему это работает:
Python ставит
•
•
Значит
Теперь про `__init__.py`
Еще одна частая боль - Ты сделал папку с файлами, но импорты начинают вести себя странно.
Например структура:
Зачем нужен
Он делает папку
И еще он позволяет сделать удобный “вывод наружу”:
Тогда можно так:
Важное правило!
Не пихай в
Итог:
Частая путаница у новичков в Python, когда проект становится больше одного файла.
Ты импортируешь файл, а он внезапно что-то запускает сам.
Пишут так:
# app.py
def main():
print("Запуск логики")
print("Я загрузился") # сработает даже при import
main() # тоже сработает при import
И ждут, что при
import app просто появятся функции.Но получают: Лишние принты, запуск кода, запросы, боты, всё что угодно. Просто потому что файл импортировали.
В чем проблема?
Импорт в Python выполняет файл целиком сверху вниз.
То есть
import app это не “взять функции”, а “выполнить app.py”.Как правильно:
Вынеси запуск в блок
__main__:# app.py
def main():
print("Запуск логики")
if __name__ == "__main__":
main()
Почему это работает:
Python ставит
__name__:•
"__main__" если файл запустили напрямую: python app.py •
"app" если файл импортировали: import appЗначит
main() запустится только при прямом запуске.Теперь про `__init__.py`
Еще одна частая боль - Ты сделал папку с файлами, но импорты начинают вести себя странно.
Например структура:
project/
app/
__init__.py
utils.py
main.py
Зачем нужен
__init__.py?Он делает папку
app пакетом, чтобы импорты были нормальными:from app.utils import helper
И еще он позволяет сделать удобный “вывод наружу”:
# app/__init__.py
from .utils import helper
__all__ = ["helper"]
Тогда можно так:
from app import helper
Важное правило!
Не пихай в
__init__.py тяжелый код (запуск, сеть, чтение файлов), потому что он выполнится при любом import app.Итог:
if __name__ == "__main__": нужен чтобы код не запускался при импорте.__init__.py нужен чтобы папка стала пакетом и импорты работали предсказуемо.⚠️Ребят, хочу сообщить, что канал с понедельника переезжает в госмессенжер Max.
Max — это цифровая платформа, которую планируют развивать в VK на базе одноименного мессенджера. В дальнейшем компании смогут создавать свои мини-приложения на базе Max Bot API — например, финансовые сервисы, онлайн-магазины, меню для ресторанов, сервисы поддержки и т. п.
У нового мессенджера удобный интерфейс, отличная синхронизация с Госуслугами, всё работает без лагов, но, конечно, самое главное то, что Max - это наша отечественная разработка! А это гарантия надежности и невозможности утечки наших с вами персональных данных.
Согласитесь, здорово - не зависеть от зарубежных разработчиков!
(Текст не редактировать, информацию в скобках - удалить. Оплата по ранее указанными реквизитам в течение 15 минут после публикации)
Max — это цифровая платформа, которую планируют развивать в VK на базе одноименного мессенджера. В дальнейшем компании смогут создавать свои мини-приложения на базе Max Bot API — например, финансовые сервисы, онлайн-магазины, меню для ресторанов, сервисы поддержки и т. п.
У нового мессенджера удобный интерфейс, отличная синхронизация с Госуслугами, всё работает без лагов, но, конечно, самое главное то, что Max - это наша отечественная разработка! А это гарантия надежности и невозможности утечки наших с вами персональных данных.
Согласитесь, здорово - не зависеть от зарубежных разработчиков!
(Текст не редактировать, информацию в скобках - удалить. Оплата по ранее указанными реквизитам в течение 15 минут после публикации)
😭1
Путь Fullstack pinned «❗️Гайд по Python для гигачадов❗️ Если вы используете Python, то бывают случаи когда вам нужно держать несколько версий. Для таких случаев существуют различные утилиты. Я использую pyenv. Он простой и кроссплатформенный. Установка: Windows (pyenv-win): …»