One error that you might encounter in Python is:
TypeError: argument of type 'float' is not iterable
This error usually occurs when you use the membership operators to test the membership of a value in a float object.
This tutorial shows you an example that causes this error and how to fix it.
How to reproduce this error
Suppose you have a float value in your code, and you try to check if that float value contains a certain number as follows:
x = 5.0 if 5 in x: print('5 exists in x')
The membership operator
not in can only test for membership in a sequence, list, tuple, etc.
When you pass a float variable as shown above, you’ll get this error:
Traceback (most recent call last): File "main.py", line 4, in <module> if 5 in x: TypeError: argument of type 'float' is not iterable
Membership operators can’t be used with float values.
How to fix this error
If you want to test a float, you can convert it to a list by surrounding the variable in square brackets:
x = 5.0 if 5 in [x]: print('5 exists in x')
Another way you can fix this error is by using the comparison operator
== to compare two float values:
x = 5.0 if 5 == x: print('5 exists in x')
When you don’t know the type of the variable, you can use the
try-except statement to gracefully handle the error when the variable is not iterable.
Consider the code below:
x = 5.0 try: if 5 in x: print('5 exists in x') except: print("The variable x is not an iterable")
x is not an iterable, the
except block will be executed.
The error “argument of type ‘float’ is not iterable” occurs when you use the membership operator
not in with a float object.
The membership operator requires an iterable object to execute properly, so you need to convert a float into an iterable to fix this error.
I hope this tutorial is helpful. Until next time! 🙏