Урок 001: значения, переменные и вычисления¶
Цель¶
Написать запускаемую программу, которая хранит данные позиции, рассчитывает стоимость и печатает результат с понятными подписями.
Значения и типы¶
Python обрабатывает значения разных типов:
product_name = "Кабель" # str — строка
unit_price = 125.50 # float — число с дробной частью
quantity = 4 # int — целое число
in_stock = True # bool — истина или ложь
Переменная — имя, связанное со значением. Оператор = выполняет присваивание: сначала вычисляется правая часть, затем результат сохраняется под именем слева. Это не математическое равенство.
Хорошее имя объясняет роль данных: unit_price понятнее, чем x. В Python принято использовать строчные слова через подчёркивание.
Арифметика¶
Основные операторы:
| Оператор | Значение | Пример |
|---|---|---|
+ |
сложение | subtotal + delivery |
- |
вычитание | subtotal - discount |
* |
умножение | unit_price * quantity |
/ |
обычное деление | discount_percent / 100 |
// |
целая часть деления | items // boxes |
% |
остаток | items % boxes |
** |
степень | side ** 2 |
Программа расчёта:
product_name = "Кабель"
unit_price = 125.50
quantity = 4
subtotal = unit_price * quantity
print(f"Позиция: {product_name}")
print(f"Количество: {quantity}")
print(f"Сумма: {subtotal:.2f} руб.")
Ожидаемый вывод:
Строка с префиксом f позволяет вставлять значения в фигурных скобках. Спецификатор :.2f влияет только на отображение числа: показывает два знака после десятичного разделителя.
Проценты¶
Чтобы применить скидку 10%, сначала переведите процент в долю:
subtotal = 500
discount_percent = 10
discount = subtotal * discount_percent / 100
total = subtotal - discount
print(f"Скидка: {discount:.2f} руб.")
print(f"Итого: {total:.2f} руб.")
Проверка вручную: 500 × 10 / 100 = 50, затем 500 − 50 = 450. Ручной расчёт создаёт эталон, с которым сравнивается программа.
Типичные ошибки¶
- Строка записана без кавычек:
product_name = КабельвызываетNameError. - Десятичная часть записана запятой: в коде Python требуется
125.50, а не125,50. - Итог вписан готовым числом и перестаёт меняться вместе с исходными данными.
- Одно имя используется для разных смыслов, например сначала для цены, затем для суммы.
- Результат считается правильным только потому, что программа не показала ошибку.
Упражнение¶
Создайте first_calculation.py для вымышленного устройства стоимостью 840 рублей в количестве 3 штук. Рассчитайте сумму, затем добавьте скидку 5%. До запуска вручную вычислите ожидаемые subtotal, discount и total. После успешной проверки измените только количество на 0 и объясните результат.
Самопроверка¶
- Чем
=отличается от математического знака равенства? - Почему
quantityдолжен быть целым числом? - Что изменяет
:.2f: само значение или только его представление? - Как доказать правильность формулы независимо от программы?