# Learn Interfaces by Building an Equation Solver - Step 14

### Tell us what’s happening:

Can’t get passed this question for some reason. Need help

``````from abc import ABC, abstractmethod

# User Editable Region

class Equation(ABC):
degree: int

def __init__(self, *args):
if (self.degree + 1) != len(args):
raise TypeError(
f"'{self.__class__.__name__}' object takes {self.degree + 1} positional arguments but {len(args)} were given"
)
for arg in args:
if any(not isinstance(arg, (int, float))):
raise TypeError("Coefficients must be of type 'int' or 'float'")

# User Editable Region

def __init_subclass__(cls):
if not hasattr(cls, "degree"):
raise AttributeError(
f"Cannot create '{cls.__name__}' class: missing required attribute 'degree'"
)

@abstractmethod
def solve(self):
pass

@abstractmethod
def analyze(self):
pass

class LinearEquation(Equation):
degree = 1

def solve(self):
pass

def analyze(self):
pass

lin_eq = LinearEquation(2, 3)
``````

User Agent is: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Safari/605.1.15`

### Challenge Information:

Learn Interfaces by Building an Equation Solver - Step 14

What does `any()` do here?

It seems that a `for` loop and `any()` both work on iterables, like a list of arguments.

`isinstance` returns a boolean, `any` expects an iterable.

I thought it checked to see if any of the elements is true

I keep getting this error
You should create a `for` loop that iterates over `args` after your `if` statement.

are you?
With the terminal adding `TypeError: 'bool' object is not iterable`
your code needs to feed an iterable (generator, list, tuple etc, comprehensions included here) to `any` if you want to use `any`, not a boolean
but, you are using a for loop. So you get one `arg` at a time. Why do you need `any` here?
Right and how many elements does `arg` contain?