• 1 Post
  • 5 Comments
Joined 2 months ago
cake
Cake day: December 26th, 2024

help-circle

  • After the split x becomes (1 and z becomes 1). They can’t be converted to float. I think that’s why. Let me run the code. Edit - Also as you are returning a, b, c from splitter but Python functions return a single object. The a, b, c turns to a tuple. But you are using js syntax I think. So we have to unwrap inside the calculate function.

    Now my original comment is not useful but you can try to introduce a conditional to check of the numbers x and z are actually numbers before converting to floats

    # Ask user to enter an expression and display output
    
    def main():
        expression = input("Expression: ")
        print(calculate (splitter (expression)))
    
    # Split expression into components and assign to variables as float values
    
    def splitter (expression):
        print(expression)
        x, y, z = expression.split()
        print(expression.split())
        return x, y, z
    
    # Calculate expression result
    
    # Changes Beginning
    def calculate(numbers):
        x,y,z = numbers
    # Changes End
    
        x, z = float(x), float(z)
        if y == "+":
            return str(round((x + z), 1))
        elif y == "-":
            return str(round((xz), 1))
        elif y == "*":
            return str(round((x*z), 1))
        else:
            return str(round((x / z), 1))
    
    main()