-4

Im having trouble with a simple python quiz that randomly generates the answers and operators I'm fairly new to python and this is as complex as I can get, The program will run with no errors but will not do anything any help would be appreciated.

Here is the code (taken from How can I randomly choose a maths operator and ask recurring maths questions with it?):

import random
import time

def randomCalc():
    ops = {'+':operator.add,
           '-':operator.sub,
           '*':operator.mul,
           '/':operator.truediv}
    num1 = random.randint(0,12)
    num2 = random.randint(1,10)    
    op = random.choice(list(ops.keys()))
    answer = ops.get(op)(num1,num2)
    print('What is {} {} {}?\n'.format(num1, op, num2))
    return answer

def askQuestion():
    answer = randomCalc()
    guess = float(input())
    return guess == answer

def quiz():
    print('Welcome. This is a 10 question math quiz\n')
    score = 0
    for i in range(10):
        correct = askQuestion()
        if correct:
            score += 1
            print('Correct!\n')
        else:
            print('Incorrect!\n')
    return 'Your score was {}/10'.format()
Community
  • 1
  • 1
SkinnyWizz
  • 27
  • 3

2 Answers2

2

You need to call the quiz() function at the top level of your code:

quiz()

You're also missing:

import operator
NPE
  • 486,780
  • 108
  • 951
  • 1,012
1

Call your functions by adding a call statement at the end.quiz()

Python is not like C or any other language which automatically calls the main method

As NPE spotted, you have changed import operator to import time. Change it back.

Bhargav Rao
  • 50,140
  • 28
  • 121
  • 140