Переменные, числа и строки в Python: f-строки и t-строки
Базовые типы: int, float, bool, str, имена и присваивание, f-строки. Для опытных: f-строки без ограничений на кавычки (3.12), шаблонные t-строки (3.14) и модуль math.integer (3.15).
- Объявлять переменные и понимать динамическую типизацию
- Форматировать вывод f-строками
- Понимать, зачем нужны t-строки
Anfang der Lektion
0.1 + 0.2 = 0.30000000000000004. Python сломался?
- Дробные числа хранятся в двоичном виде с погрешностью
- Так же ведут себя JavaScript, Java, C
- Для денег — Decimal или целые копейки
Наберите в консоли ноль целых одна десятая плюс ноль целых две десятых. Ответ вас удивит: вместо ровных трёх десятых получится длинный хвост с четвёркой на конце. Новички в этот момент пишут на форумы, что Python считает с ошибкой. Но дело не в Python, а в том, как любой компьютер хранит дробные числа. И раз уж мы пишем трекер расходов, с этим придётся разобраться до того, как деньги начнут теряться по копейке.
>>> 0.1 + 0.2
0.30000000000000004
>>> from decimal import Decimal
>>> Decimal("0.1") + Decimal("0.2")
Decimal('0.3')
Переменная — это ярлык, а не коробка
- Присваивание: имя = значение
- Имя указывает на объект в памяти
- Имена: snake_case, латиница, не с цифры
Часто говорят, что переменная — это коробка, куда кладут значение. Для Python точнее другая картинка: ярлык на верёвочке. Значение живёт само по себе, а вы привязываете к нему имя, чтобы потом обратиться. Можно перевязать ярлык на другое значение, можно повесить два ярлыка на одно. Знак равенства здесь означает не «равно», как в математике, а «привяжи это имя вот к этому». Это пригодится, когда дойдём до списков.
Четыре базовых типа
- int — целое: 250
- float — дробное: 12.5
- str — строка: "Кофе"
- bool — логическое: True / False
- type(x) — узнать тип
У каждого значения в Python есть тип, и от него зависит, что с этим значением можно делать. Целые числа, дробные, строки и логические значения «да» или «нет» — это четыре кирпичика, из которых строится почти всё остальное. Узнать тип можно встроенной функцией. А вот объявлять его заранее, как в Java или C, не нужно: Python сам понимает, что перед ним. Это называют динамической типизацией.
amount = 250 # int
price = 12.5 # float
item = "Кофе" # str
paid = True # bool
print(type(amount)) # <class 'int'>
print(type(item)) # <class 'str'>
Die vollständige Lektion — mit Abo
Noch 11 Folien in der vollständigen Version.
Video, alle Folien, Notizen, Tests, KI-Tutor und Interview werden nach Anmeldung und Abschluss eines Abos freigeschaltet.
Anmelden oder registrieren Abo abschließenInhalt der Lektion
- 0.1 + 0.2 = 0.30000000000000004. Python сломался?
- Переменная — это ярлык, а не коробка
- Четыре базовых типа
- Арифметика: два вида деления
- Грабли: round() округляет «по-банковски»
- Строки: срезы и методы
- Миф: строку и число можно просто сложить
- f-строки: вставляем значения прямо в текст
- ❓ Стоп-проверка: что напечатает этот код?
- ✅ Ответ: 3.5 3 2.3
- Что нового: f-строки без ограничений (3.12, PEP 701)
- Что нового: t-строки — шаблон, а не готовый текст (3.14)
- Что нового: модуль math.integer (3.15, PEP 791)
- Итог: трекер печатает аккуратную строку
Alle Lektionen des Kurses
- Python 3.15 с нуля и для опытных: что нового и как учить
- Python 3.15: установка, REPL и первый скрипт за десять минут
- Переменные, числа и строки в Python: f-строки и t-строки
- Условия, циклы и match/case в Python: управляем ходом программы
- Списки, кортежи, словари и множества: frozendict в Python 3.15
- Comprehensions в Python: распаковка * и ** внутри (PEP 798)
- Функции и аннотации типов в Python: от def до sentinel
- Ошибки и исключения в Python 3.15: читаем трейсбек и подсказки «Did you mean»
- Модули, пакеты и ленивые импорты в Python 3.15 (PEP 810)
- Файлы, JSON и CSV в Python: pathlib и UTF-8 по умолчанию
- Классы и dataclasses в Python: ООП без лишнего кода
- Асинхронность и потоки в Python: asyncio, TaskGroup и free-threading
- Профилирование Python 3.15: Tachyon вместо cProfile и итоговый проект