Искать
Вы превысили запрос на
0 знаков

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

Не пройден
0
0

Кратко

- В предыдущем уроке рассмотрены условные инструкции if/elif/else в Python.

- Умение преобразовывать типы является полезным навыком при работе с языком с сильной типизацией.

- Рассмотрены 7 функций для преобразования типов: int(), bin(), hex(), list(), set(), tuple() и str().

- Функции bin() и hex() возвращают результат в виде строки.

- Списки могут быть преобразованы только в итерируемые объекты.

- Функция set() используется для преобразования строки или другого итерируемого объекта во множество.

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

- Метод isdigit() используется для проверки строки на наличие только цифр.

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Или такая:

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

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

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

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

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

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

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

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

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

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

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

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

Тест

Две секундочки...

Похожие уроки Codebra

@codebra_official
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Типы данных в PythonЗнакомство с Python
Обработка исключений (try/except) в PythonЗнакомство с Python
Условная инструкция if-elif-else в PythonЗнакомство с Python
Пользовательские функции в PHPКурс по PHP
Итоги раздела «Самые основы Python»Знакомство с Python
Генераторы и оператор yield в PythonЗнакомство с Python
Первое знакомство с PythonЗнакомство с Python
Поиск хостов с помощью NmapРазведка и сканирование
Работа с файлами в PythonЗнакомство с Python
Впервые на сайте Codebra?

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

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

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

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

Закрыть окно