How to test the data type of a variable
DL Neil
PythonList at DancesWithMice.info
Thu Apr 23 22:11:19 EDT 2020
On 24/04/20 1:24 PM, Deac-33 Lancaster wrote:
> I'm aware that you can find the type of a variable with
> type(var)
>
> But are there Boolean operators in Python3.8 to test the data type, e.g.
> is_floate(var)
> is_string(var)
> etc. ?
There is also a 'pythonic' answer (what is the 'Python way'?) and that
is to proceed on the basis of "duck typing" and 'presumption'. The
latter known as EAFP ("It's Easier To Ask Forgiveness Than To Get
Permission"), eg:
>>> n = 2
>>> d = 'two'
my training/first inclination has always been to check before use - in
this case, that both the numerator and denominator are numeric and that
the latter is non-zero - seeking to avoid:
>>> n / d
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'int' and 'str'
Crash!
Conversely, here is the pythonic EAFP approach:
>>> try:
... n / d
... except TypeError:
... print( "I'm sorry, Dave. I'm afraid I can't do that." )
...
I'm sorry, Dave. I'm afraid I can't do that.
>>>
and if you want to go all-in and try to break the laws of mathematics:
>>> n = 2
>>> d = 0
>>> try:
... n / d
... except TypeError:
... print( "I'm sorry, Dave. I'm afraid I can't do that." )
... except ZeroDivisionError:
... print( "Officer, it wasn't me - honest!" )
...
Officer, it wasn't me - honest!
>>>
or just-for-fun:
>>> try:
... n / d
... except ( ZeroDivisionError, TypeError ):
... print( "I'm sorry, Dave. I'm afraid I can't do that." )
...
I'm sorry, Dave. I'm afraid I can't do that.
--
Regards =dn
More information about the Python-list
mailing list