Learn Interfaces by Building an Equation Solver - Step 17

Tell us what’s happening:

So I know that I’m supposed to reverse ‘degree’ so everything comes out right but I can’t actually figure out how to do that, and so far I’ve tried slicing, .reverse, and reverse().

Also on a side note, I’ve been kind of struggling to understand how some of the back-end and data-structure projects work in a way where it’s hard for me to think about how indexes, for loops, errors, and returns work, since they’re hard for me to visualize and also confusing as to what each line of code is doing.

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"'Equation' object takes {self.degree + 1} positional arguments but {len(args)} were given"
            )
        if any(not isinstance(arg, (int, float)) for arg in args):
            raise TypeError("Coefficients must be of type 'int' or 'float'")
        if args[0] == 0:
            raise ValueError("Highest degree coefficient must be different from zero")

# User Editable Region

        self.coefficients = dict({degree : coeff for degree, coeff in reversed(tuple(enumerate(reversed(args))))})

# 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 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36

Challenge Information:

Learn Interfaces by Building an Equation Solver - Step 17

Never mind, I figured it out.