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

10. Преобразование и проверка типов в 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Знакомство с Python
Обработка исключений (try/except) в PythonЗнакомство с Python
Первое знакомство с PythonЗнакомство с Python
Структуры данных в PythonЗнакомство с Python
Условная инструкция if-elif-else в PythonЗнакомство с Python
Функциональное программирование: map, filter и reduceЗнакомство с Python
Написание модулей в PythonЗнакомство с Python
Еще о возможностях модулей в Python Знакомство с Python
Конкатенация и сортировка списков в PythonЗнакомство с Python
<
×
>
Раздел «Знакомство с Python»
1. УРОК: Первое знакомство с Python
2. ТЕСТ: Небольшой первый тест по Python
3. УРОК: Переменные и комментарии в Python
4. ТЕСТ: Тест по основным понятиям и работе с сайтом
Самые основы
5. УРОК: Погружение в Python
6. ТЕСТ: Второй вводный тест по Python
7. УРОК: Типы данных в Python
8. УРОК: Форматирование строк в Python
9. УРОК: Условная инструкция if-elif-else в Python
УРОК 10. Преобразование и проверка типов в Python
Вы здесь
11. УРОК: Вызов методов цепочкой в Python
Циклы
12. УРОК: Первое знакомство с циклами в Python
13. ТЕСТ: Тест по циклам Python
Немного рандома
14. УРОК: Генерируем случайные числа на Python
15. ТЕСТ: Тест по модулю random Python
Структуры данных
16. УРОК: Структуры данных в Python
17. ТЕСТ: Тест по структурам Python
Списки
18. УРОК: Списки в Python
19. ТЕСТ: Тест по спискам Python
20. УРОК: Изменение списка на месте в Python
21. УРОК: Дополнительно про списки в Python
22. УРОК: Конкатенация и сортировка списков в Python
23. ТЕСТ: Заключительный тест по спискам в Python
Словари
24. УРОК: Словари в Python
25. ТЕСТ: Тест по словарям Python
26. УРОК: Словари и списки: еще глубже
27. УРОК: Перебор элементов словаря в Python
28. УРОК: Внутреннее устройство и сортировка словаря в Python
29. УРОК: Методы словарей и функция len() в Python
30. ТЕСТ: Заключительный тест по словарям
Множества
31. УРОК: Множества в Python
32. УРОК: Методы и особенности множеств в Python
33. УРОК: Отношения между множествами и операции над ними
34. ТЕСТ: Тест по методам множеств в Python
35. ТЕСТ: Тест по операциям над множествами в Python
Кортежи
36. УРОК: Кортежи в Python
37. УРОК: Более подробно о кортежах в Python
38. ТЕСТ: Тест по кортежам в Python
Снова циклы и немного исключений
39. УРОК: Контроль хода выполнения программы в Python
40. УРОК: Цикл while в Python
41. УРОК: Операторы break, continue и pass в Python
42. УРОК: Циклы for/else и while/else в Python
43. УРОК: Обработка исключений (try/except) в Python
44. ТЕСТ: Тест по циклам и управляющим конструкциям
45. ТЕСТ: Тест по обработке исключений
Работаем с файлами
46. УРОК: Работа с файлами в Python
47. УРОК: Оператор with/as для работы с файлами в Python
48. ТЕСТ: Тест по работе с файлами в Python
Итераторы
49. УРОК: Итераторы в Python
50. УРОК: List/dict/set comprehensions (включения) в Python
51. ТЕСТ: Тест по включениям в Python
Функции
52. УРОК: Основы функций в Python
53. ТЕСТ: Тест по основам функций в Python
54. УРОК: Область видимости в Python
55. ТЕСТ: Тест по области видимости в Python
56. УРОК: Замыкания и оператор nonlocal в Python
57. ТЕСТ: Тест по замыканиям и nonlocal в Python
58. УРОК: Аргументы и параметры функций, операторы * и ** в Python
59. ТЕСТ: Тест по аргументам и параметрам функций в Python
60. ТЕСТ: Тест по операторам * и ** в Python
61. УРОК: Анонимные функции: выражения lambda
62. УРОК: Функциональное программирование: map, filter и reduce
63. ТЕСТ: Тест по парадигме функционального программирования
64. УРОК: Генераторы и оператор yield в Python
65. ТЕСТ: Тест по генераторным функциям и выражениям
Модули
66. УРОК: Модули в Python
67. УРОК: Написание модулей в Python
68. УРОК: Пакеты модулей в Python
69. УРОК: Еще о возможностях модулей в Python
70. ТЕСТ: Тест по модулям и пакетам в Python
Объектно-ориентированное программирование
71. УРОК: Основы объектно-ориентированного программирования (ООП) в Python
72. ТЕСТ: Тест по основам ООП в Python
73. УРОК: Основы написания классов в Python
74. УРОК: Продолжаем написание классов в Python
75. УРОК: Более глубокое изучение классов в Python
76. УРОК: Что дальше?
Впервые на сайте Codebra?

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

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

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

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

Закрыть окно