Learn Interfaces by Building an Equation Solver - Step 15

Tell us what’s happening:

I really don’t see how to use the any() function here - any() will return True if any element is True. I want to check that ALL arguments are numeric, right? I am totally lost

Your code so far

from abc import ABC, abstractmethod


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"
            )

# User Editable Region

        if not any(isinstance(arg, (int,float)) for arg in args):
            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)

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36

Challenge Information:

Learn Interfaces by Building an Equation Solver - Step 15

Hi @larapereiragarcia

The any() call needs to call the condition in the if statement.

You have not any ..., you want any not ...

Happy coding

all and any correspond to each other a bit. However each requires elements of the iterable to be flipped from what could used by the other one.

For example all will return False if any element of iterable is falsy. The same result can be obtained from any function - it will return False if none of the elements of iterable is truthy.

Thank you both for your help, I got it!

1 Like