Перевірка типів даних¶
При перетворенні типів даних можуть виникнути такі помилки:
In [1]: int('a')
------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-42-b3c3f4515dd4> in <module>()
----> 1 int('a')
ValueError: invalid literal for int() with base 10: 'a'
Помилка логічна - ми намагаємося перетворити на десятковий формат рядок "a"
.
Така помилка може виникнути, наприклад, коли потрібно пройтись по списку рядків і перетворити на число кожен рядок. Щоб уникнути її, було б добре мати можливість перевірити, із чим ми працюємо. У Python є ряд методів і функцій, які дозволяють це перевірити.
isdigit
¶
Наприклад, щоб перевірити, чи складається рядок з одних цифр, можна
використовувати метод isdigit
:
In [2]: "a".isdigit()
Out[2]: False
In [3]: "a10".isdigit()
Out[3]: False
In [4]: "10".isdigit()
Out[4]: True
isalpha
¶
Метод isalpha
дозволяє перевірити, чи складається рядок з одних літер:
In [7]: "a".isalpha()
Out[7]: True
In [8]: "a100".isalpha()
Out[8]: False
In [9]: "a-- ".isalpha()
Out[9]: False
In [10]: "a ".isalpha()
Out[10]: False
isalnum
¶
Метод isalnum
дозволяє перевірити, чи складається рядок із букв або цифр:
type
¶
Іноді, залежно від результату, бібліотека чи функція можуть повертати різні типи об'єктів. Наприклад, якщо об'єкт один, повертається рядок, якщо кілька, то повертається кортеж.
Відповідно нам треба побудувати хід програми по-різному, залежно від того, чи було повернуто рядок чи кортеж.
У цьому може допомогти функція type
:
Аналогічно з кортежем (та іншими типами даних):