Случайная арифметическая игра Python

Я хотел бы создать программу, которая генерирует два случайных числа и применяет к ним случайную арифметическую функцию, а затем печатает ответ. До сих пор я сделал числа и расчеты, но я не знаю, как распечатать сумму или сгенерировать ответ.

from random import randint
import random
arithmatic = ['+','-','*','/']
beginning = (randint(1,9))
calculation =(random.choice(arithmatic))
end = (randint(1,9))
print (beginning)
print (calculation)
print (end)

person futureprogress    schedule 20.09.2014    source источник


Ответы (2)


import random

# Generate your first number
>>> first = random.randint(1,9)
>>> first
1

# Generate your second number
>>> second = random.randint(1,9)
>>> second
5

Теперь сопоставьте все операторы в вашем списке с реальными операторными функциями.

import operator
ops = {'+': operator.add, '-': operator.sub, '*': operator.mul, '/': operator.div}

Теперь вы можете случайным образом выбрать оператора

>>> op = random.choice(ops.keys())
>>> op
'+'

Затем вызовите функцию из своего словаря.

>>> ops[op](first,second)
6
person Cory Kramer    schedule 20.09.2014
comment
Но я могу заставить его работать только на python 2, а не на 3. - person futureprogress; 18.10.2014
comment
@futureprogress Почему это? Можете ли вы опубликовать строки кода, которые вызывают проблему, и полное сообщение об ошибке, которое вы получаете? - person Cory Kramer; 18.10.2014

вместо этого рассмотрите возможность выполнения операций, которые вы выбираете, из истинных функций:

import operator
arithmetic = [operator.add, operator.sub, operator.mul, operator.div]
# ...
print calculation(beginning, end)
person Rafe Kettler    schedule 20.09.2014