How to do a calculation on Python with a random operator -
i making maths test each question either adding, multiplying or subtracting randomly chosen numbers. operator chosen @ random, cannot work out how calculate operator. problem here:
answer = input() if answer ==(number1,operator,number2): print('correct')
how can make operator used in calculation. example, if random numbers 2 , five, , random operator '+', how code program end doing calculation , getting answer, in case be:
answer =input() if answer == 10: print('correct')
basically, how can calculation check see if answer correct? full code below.
import random score = 0 #score of user questions = 0 #number of questions asked operator = ["+","-","*"] number1 = random.randint(1,20) number2 = random.randint(1,20) print("you have reached next level!this test of addition , subtraction") print("you asked ten random questions") while questions<10: #while have asked less ten questions operator = random.choice(operator) question = '{} {} {}'.format(number1, operator, number2) print("what " + str(number1) +str(operator) +str(number2), "?") answer = input() if answer ==(number1,operator,number2): print("you correct") score =score+1 else: print("incorrect")
sorry if have been unclear, in advance
use functions in dictionary:
operator_functions = { '+': lambda a, b: + b, '-': lambda a, b: - b, '*': lambda a, b: * b, '/': lambda a, b: / b, }
now can map operator in string function:
operator_functions[operator](number1, number2)
there ready-made functions operator
module:
import operator operator_functions = { '+': operator.add, '-': operator.sub, '*': operator.mul, '/': operator.truediv, }
note need careful using variable names! used operator
first create list of operators, use store 1 operator picked random.choice()
, replacing list:
operator = random.choice(operator)
use separate names here:
operators = ["+","-","*"] # ... picked_operator = random.choice(operators)
Comments
Post a Comment