Search code examples
pythonfunctioncurly-braces

Problem using curly brackets in functions


The line answer = int(input("What is {number1} * {number2} ?")) works fine when using without the function, but when I put it in functions, it throws the error Traceback (most recent call last): File "C:\Users\hjg\Downloads\test4.py", line 17, in <module> answer = eval(input("What is", number1, "*", number2, "?")) NameError: name 'number1' is not defined >>>.

import random, math

def quiz(answer):
    number1 = random.randint(0,9)
    number2 = random.randint(0,9)


    if answer == correctanswer:
        return print("Correct")
    else:
       return print("Incorrect.")


answer = int(input("What is {number1} * {number2} ?"))
correctanswer = number1 * number2


quiz(number1, number2)

Solution

  • You have to put the variable on top to make it global.

    import random, math
    number1 = random.randint(0,9)
    number2 = random.randint(0,9)
    
    def quiz(answer):
        correctanswer = number1 * number2
        if answer == correctanswer:
            return print("Correct")
        else:
           return print("Incorrect.")
    
    answer = int(input(f"What is {number1} * {number2} ?"))
    quiz(answer)