В Python у каждой переменной есть тип. Например, "привет" — это строка, а 123 — это число. Язык Python является сильно типизированным, что означает строгое отношение к типам данных. Вы не можете просто сложить текст с числом, это вызовет ошибку.
Именно для таких ситуаций и существует преобразование типов. Это процесс изменения типа данных одного значения на другой. В этом уроке мы научимся использовать встроенные функции Python — `int()`, `float()`, `str()` и `bool()` — чтобы свободно конвертировать данные. Это ключевой навык при работе с пользовательским вводом, чтении данных из файлов или просто для выполнения математических операций. На этих заданиях вы отработаете базовые и более сложные случаи преобразования.
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 6: Циклы
- Модуль 7: Строки
- Модуль 8: Списки
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Модуль 13: Встроенные функции
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Модуль 17: ООП - Основы
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
Простое преобразование строки в число
В переменной `num_as_str` хранится число, но в виде строки. Ваша задача — преобразовать эту строку в целое число (integer) с помощью соответствующей функции и сохранить результат в переменную `num_as_int`.
num_as_str = "101"
num_as_int = input1S(num_as_str)
# Проверяем, что тип данных изменился и теперь можно выполнять математические операции
print(num_as_int + 99)Что получится в результате?
Проанализируйте код. Число преобразуется в строку и объединяется с другой строкой. Что именно будет выведено на экран? Введите полный текст, который появится в консоли.
item_id = 504
print("ID товара: " + str(item_id))Исправьте ошибку типов
Этот код пытается объединить строку и число, что вызывает ошибку `TypeError`. Исправьте строку, где происходит сложение, чтобы код выполнился без ошибок, преобразовав число в строку.
name = "Алекс"age = 30 # Следующая строка содержит ошибкуmessage = name + " " + age + " лет."print(message)Неудачное преобразование
Не всегда преобразование типов проходит успешно. Внимательно посмотрите на код. Что он выведет, если попытаться преобразовать строку с дробным числом в целое с помощью `int()`?
try:
value_str = "99.9"
number = int(value_str)
print(number)
except ValueError:
print("Невозможно преобразовать")Сопоставьте функции и их назначение
В Python есть несколько встроенных функций для явного преобразования типов. Сопоставьте каждую функцию из правого столбца с её точным описанием из левого столбца.
str()bool()int()float()Обработка пользовательского ввода
Функция `input()` всегда возвращает строку. Чтобы использовать введенный возраст в математических расчетах, его нужно преобразовать в число. Соберите работающий код, перетащив правильные элементы из банка.
# input() всегда возвращает строку
age_str = input("Введите ваш возраст: ")
# Преобразуйте строку в число для расчета
age_num = input1S(input2S)
print(f"Через 5 лет вам будет {age_num + 5} лет.")Ошибка при расчете с дробными числами
В этом коде есть логическая ошибка. Умножение строки на число приводит к её повторению, а не к математическому расчету. Исправьте строку с вычислением `total`, преобразовав цену товара в подходящий числовой тип.
price_str = "199.50"quantity = 2total = price_str * quantityprint(f"Общая стоимость: {total}")Соберите скрипт для расчета
Соберите из частей работающий скрипт. Он должен объявить переменную-строку, преобразовать её в целое число, умножить на 4 и вывести результат. Одна из строк лишняя и приведет к логической ошибке.
value_int = int(value_str)print(result)value_str = "25"print(value_str * 4)result = value_int * 4Преобразование в логический тип
В Python многие значения имеют логический эквивалент. Проанализируйте код и предскажите, что он выведет. Введите три логических значения (`True` или `False`) через пробел.
val1 = 0
val2 = ""
val3 = "False"
print(bool(val1), bool(val2), bool(val3))Цепочка преобразований: float -> int -> str
Иногда нужно выполнить несколько преобразований подряд. Здесь вам нужно сначала преобразовать скидку из дробного числа в целое (при этом дробная часть будет отброшена), а затем это целое число превратить в строку для красивого вывода. Заполните пропуски.
# Данные о скидке в процентах
discount_percent = 15.7
# 1. Преобразуйте скидку в целое число
discount_int = input1S(discount_percent)
# 2. Преобразуйте целое число в строку для вывода
message = "Ваша скидка: " + input2S(input3S) + "%"
print(message)