Посмотреть все уроки курса
Выбрать другой урок из курса
Поиск по сайту
Теория урока

2.6. Преобразование и проверка типов в Python

Оглавление урока

Введение

В предыдущем уроке мы познакомились с условной инструкцией if/elif/else в Python. Хотя мы уже касались преобразования типов в уроке про типы данных, и вы на практике ощутили их необходимость для языка с сильной типизацией, давайте все равно еще раз рассмотрим и научимся проверять их, чтобы избежать нелепых ситуаций при преобразовании из одного типа в другой.

Преобразование типов

Рассмотрим 7 функций: int(), bin(), hex(), list(), set(), tuple() и str().

Чтобы преобразовать строку в число, воспользуйтесь функцией int():

Пример
a = int('20')
type(a) # => <class 'int'>       

С помощью функции int() можно преобразовать число, записанное двоичным форматом, в десятичную запись:

Пример
a = int('110011', 2)
a # => 51       

Преобразовать десятичное число в двоичный формат можно при помощи функции bin():

Пример
a = bin(20)
a # => 0b10100       

Аналогично можно преобразовать в шестнадцатеричный формат при помощи функции hex():

Пример
a = hex(20)
a # => 0x14       

Обратите внимание, функции bin() и hex() возвращают результат в виде строки.

Мы еще не рассматривали списки (они будут рассмотрены далее), но все равно рассмотрим, как преобразовать строку в список:

Пример
a = list('Hello')
a # => ['H', 'e', 'l', 'l', 'o']       

Обратите внимание, в список можно преобразовывать только итерируемые объекты (строки, кортежи, словари, файлы), т.е. те объекты, которые могут возвращать элементы по одному. Сейчас это может быть не совсем понятно, но далее все прояснится.

Для преобразования строки (или другого итерируемого объекта) во множество, используйте функцию set():

Пример
a = set('Hello, World')
a # => {'H', 'd', 'l', 'o', ' ', 'W', 'r', ',', 'e'}       

Напомню, множество – это изменяемая, неупорядоченная последовательность уникальных элементов. Далее пример, как получить все уникальные элементы списка:

Пример
a = set([1, 1, 2, 2, 3, 3, 3, 3, 3, 5])
a # => {1, 2, 3, 5}       

Для преобразования объекта в кортеж, существует функция tuple():

Пример
a = tuple([1, 2, 3, 4, 5])
a # => (1, 2, 3, 4, 5)       

Напомню, кортеж – это неизменяемый список.

И последняя функция str(), для преобразования объекта в строку:

Пример
a = str(10)
print("Ответ: " + a) # => Ответ: 10       

Проверка типов

При преобразовании типов могут возникнуть проблемы, например:

Пример
a = list(10) # => TypeError: 'int' object is not iterable       

Или такая:

Пример
a = int('b') # => invalid literal for int() with base 10: 'b'       

Проблема кажется надуманной. Но все же иногда возникает необходимость проверить, с каким типом данных мы работаем. Например, вам нужно пройтись по списку строк и преобразовать все элементы, содержащие числа, в числовой тип. Для этих целей есть метод isdigit(). Метод isdigit() вернет True, если строка состоит только из цифр:

Пример
'a'.isdigit() # => False
'20a'.isdigit() # => False
'20'.isdigit() # => True       

Чтобы проверить строку на наличие в своем составе только букв, используйте метод isalpha().

Пример
'a'.isalpha() # => True
'20a'.isalpha() # => False       

И последний метод isalnum(), который проверяет, состоит ли строка из цифр или букв.

Часто, исходя из полученного результата (строка, число, список и т.д.) необходимо строить ход программы с использованием условной конструкции, о которой вы узнали в предыдущем уроке:

Пример
a = 'Hello'
a = list(a)

if (type(a) == str):
    print('Строка')
elif (type(a) == list):
    print('Список)       

В этом помогает функция type(), которая возвращает тип объекта, переданного в параметре.

В этом уроке мы еще раз повторили преобразование одних типов в другие и научились определять тип переменной для последующей корректной ее обработки.

<
×
>
Раздел «Знакомство с Python»
Урок 1.1. Первое знакомство с Python
Тест 1.2. Небольшой первый тест
Урок 1.3. Переменные и комментарии в Python
Тест 1.4. Тест по основным понятиям и работе с сайтом
Урок 2.1. Погружение в Python
Тест 2.2. Второй вводный тест по Python
Урок 2.3. Типы данных в Python
Урок 2.4. Форматирование строк в Python
Урок 2.5. Условная инструкция if-elif-else в Python
Урок 2.6. Преобразование и проверка типов в Python
Вы здесь
Урок 2.7. Вызов методов цепочкой в Python
Урок 3.1. Первое знакомство с циклами в Python
Тест 3.2. Тест по циклам Python
Урок 4.1. Генерируем случайные числа на Python
Тест 4.2. Тест по модулю random Python
Урок 5.1. Структуры данных в Python
Тест 5.2. Тест по структурам Python
Урок 6.1. Списки в Python
Тест 6.2. Тест по спискам Python
Урок 6.3. Изменение списка на месте в Python
Урок 6.4. Дополнительно про списки в Python
Урок 6.5. Конкатенация и сортировка списков в Python
Тест 6.6. Заключительный тест по спискам в Python
Урок 7.1. Словари в Python
Тест 7.2. Тест по словарям Python
Урок 7.3. Словари и списки: еще глубже
Урок 7.4. Перебор элементов словаря в Python
Урок 7.5. Внутреннее устройство и сортировка словаря в Python
Урок 7.6. Методы словарей и функция len() в Python
Тест 7.7. Заключительный тест по словарям
Урок 8.1. Множества в Python
Урок 8.2. Методы и особенности множеств в Python
Урок 8.3. Отношения между множествами и операции над ними
Тест 8.4. Тест по методам множеств в Python
Тест 8.5. Тест по операциям над множествами в Python
Урок 9.1. Кортежи в Python
Урок 9.2. Более подробно о кортежах в Python
Тест 9.3. Тест по кортежам в Python
Урок 10.1. Контроль хода выполнения программы в Python
Урок 10.2. Цикл while в Python
Урок 10.3. Операторы break, continue и pass в Python
Урок 10.4. Циклы for/else и while/else в Python
Урок 10.5. Обработка исключений (try/except) в Python
Тест 10.6. Тест по циклам и управляющим конструкциям
Тест 10.7. Тест по обработке исключений
Урок 11.1. Работа с файлами в Python
Урок 11.2. Оператор with/as для работы с файлами в Python
Тест 11.3. Тест по работе с файлами в Python
Урок 12.1. Итераторы в Python
Урок 12.2. List/dict/set comprehensions (включения) в Python
Тест 12.3. Тест по включениям в Python
Урок 13.1. Основы функций в Python
Тест 13.2. Тест по основам функций в Python
Урок 13.3. Область видимости в Python
Урок 13.4. Что дальше?
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно