""" Урок 04. Арифметические операторы, выражения — весь код примеров одним файлом. Источник: subjects/python-fundamentals/course/lessons/04-arithmetic-operators-expressions/examples.html Файл собран автоматически (tools/build_lesson_examples.py): правьте страницу урока. Запуск: python lesson-04.py """ # ==================================================================== # Пример 1. Операторы для 7 и 3 # ==================================================================== # 01_operations.py a = 7 b = 3 print("Сложение:", a + b) # 10 print("Вычитание:", a - b) # 4 print("Умножение:", a * b) # 21 print("Деление:", a / b) # 2.3333333333333335 print("Целочисленное деление:", a // b) # 2 print("Остаток:", a % b) # 1 print("Степень:", a ** b) # 343 # ==================================================================== # Пример 2. Приоритет операций # ==================================================================== # 02_precedence.py print(5 + 3 * 2) # 11 — сначала умножение print((5 + 3) * 2) # 16 — скобки меняют порядок print(2 * 3 ** 2) # 18 — сначала степень: 3**2=9, потом *2 print(10 / 2 * 3) # 15.0 — при равном приоритете считаем слева направо print(2 + 3 * 2 ** 2 - 1) # 13 # ==================================================================== # Пример 3. Деление, типы результата и отрицательные числа # ==================================================================== # 03_division_types.py print(8 / 2, type(8 / 2)) # 4.0 print(8 // 2, type(8 // 2)) # 4 print(8 // 2.0, type(8 // 2.0))# 4.0 print(-7 // 2) # -4, а не -3 print(-7 % 2) # 1 # ==================================================================== # Пример 4. ZeroDivisionError # ==================================================================== # 04_zero_division.py for expr in ["10 / 0", "10 // 0", "10 % 0"]: try: eval(expr) except ZeroDivisionError as error: print(f"{expr} -> ZeroDivisionError: {error}") # 10 / 0 -> ZeroDivisionError: division by zero # 10 // 0 -> ZeroDivisionError: integer division or modulo by zero # 10 % 0 -> ZeroDivisionError: integer modulo by zero # ==================================================================== # Пример 5. Числа — неизменяемый тип # ==================================================================== # 05_immutable.py num = 5 address_1 = id(num) num + 2 print(num) # 5 — не изменилось num = num + 2 address_2 = id(num) print(num) # 7 print("Тот же объект?", address_1 == address_2) # False # ==================================================================== # Пример 6. Составные присваивания # ==================================================================== # 06_augmented.py x = 5 x += 3 # x = x + 3 print(x) # 8 x -= 2 print(x) # 6 x *= 4 print(x) # 24 x /= 2 print(x) # 12.0 x //= 2 print(x) # 6.0 x **= 3 print(x) # 216.0 # ==================================================================== # Пример 7. Множественное присваивание, цепочка и обмен значениями # ==================================================================== # 07_multiple_assignment.py a, b, c = 1, 5, 10 print(a, b, c) # 1 5 10 x = y = z = 0 # цепочка: все три получают одно и то же значение print(x, y, z) # 0 0 0 a, b = 5, 10 a, b = b, a # обмен без временной переменной print(a, b) # 10 5 # ==================================================================== # Пример 8. Явное преобразование типов # ==================================================================== # 08_conversion.py print(int("10"), float("10"), str(10), bool(0), bool(1)) # 10 10.0 10 False True print(int(3.9)) # 3 — обрезает дробную часть, а не округляет print(int(-3.9)) # -3 print(bool(""), bool("0"), bool([]), bool([0])) # False True False True — непустая строка "0" истинна! value = 5 value += 3.14 print(value, type(value)) # 8.14 — int + float даёт float # ==================================================================== # Пример 9. ValueError при неверном преобразовании # ==================================================================== # 09_value_error.py try: number = int("10.0") except ValueError as error: print("ValueError:", error) # ValueError: invalid literal for int() with base 10: '10.0' try: number = float("abc") except ValueError as error: print("ValueError:", error) # ValueError: could not convert string to float: 'abc' print(float("10.0")) # 10.0 — а float() ту же строку принимает # ==================================================================== # Пример 10. Практика: расчёт сдачи # ==================================================================== # 10_change.py price = 250 # int(input("Введите стоимость товара: ")) quantity = 3 # int(input("Введите количество товара: ")) payment = 1000 # int(input("Введите сумму оплаты: ")) total_cost = price * quantity change = payment - total_cost print("Сдача:", change, "рублей") # Сдача: 250 рублей