-2
print("ax^2 + bx + c = 0")

def ask_a():
    a = int(input("""Please enter a:
a = """))
    if a == 0:  
        print("Please input the correct number! \n")
        a = int(input("""Please enter a:
a = """))
    else:
        try:
            a == int(a)
            print(f"a = {a}")
        except ValueError:
            print("Please input the correct number! \n")
            a = int(input("""Please enter a:
a = """))

a =  ask_a()

Error message:

Traceback (most recent call last):
  File "c:\Users\jbtua\OneDrive\Desktop\wut is this\Personal Folder\Programming Projects\Python\blank.py", line 19, in <module>
    a =  ask_a()
  File "c:\Users\jbtua\OneDrive\Desktop\wut is this\Personal Folder\Programming Projects\Python\blank.py", line 4, in ask_a
    a = int(input("""Please enter a:
ValueError: invalid literal for int() with base 10: 'a'

I am still wondering what is the reason for this.

James Z
  • 12,209
  • 10
  • 24
  • 44

1 Answers1

0
print("ax^2 + bx + c = 0")

def ask_a():
    a = input("""Please enter a: a = """)
    if a == 0:  
        print("Please input the correct number! \n")
        a = int(input("""Please enter a: a = """))
    else:
        try:
            a == int(a)
            print(f"a = {a}")
        except ValueError:
            print("Please input the correct number! \n")
            # a = int(input("""Please enter a: a = """))

a =  ask_a()

To handle exceptions, you don't want to generate error at a = input("""Please enter a: a = """) step

A better approach:

def ask_a():
    flag = False
    while not flag:
        try:
            a = input("""Please enter a: a = """)
            a = float(a)
        except:
            continue
        else:
            if float(a) != 0.0:
                flag = True
                a = float(a)
            else:
                continue

    return a
a =  ask_a()
Ricardo
  • 691
  • 3
  • 11