import random
class jisuan():
num1 = 0
num2 = 0
result = 0
@classmethod
def jisuan1(cls):
while True:
cls.num1,cls.num2=random.randint(1,100),random.randint(1,100)
op = random.choice(['+','-'])
if op == '+':
cls.result = cls.num1+cls.num2
print('{}+{}=?'.format(cls.num1,cls.num2))
elif op == '-':
if cls.num2>cls.num1:
# 前后两位数对调
cls.num1 = cls.num2
cls.num2 = cls.num1
cls.result = cls.num1-cls.num2
print('{}-{}=?'.format(cls.num1,cls.num2))
else:
print('原算式错误')
# 用户输入计算结果,如果不是整数就提醒错误
try:
get_result = int(input('请输入你的计算结果:'))
except ValueError:
get_result = int(input('请输入整数:'))
# 判断用户计算结果是否正确
if get_result == cls.result:
print('计算正确!')
else:
print('计算错误')
cls.wrong_result()
# 计算错误就无限循环直到计算正确为止
@classmethod
def wrong_result(cls):
get_result = int(input('请输入你的计算结果:'))
while True:
if get_result == cls.result:
print('计算正确')
# 如果计算正确就回到正常计算循环中
cls.jisuan1()
try:
get_result = int(input('请输入你的计算结果:'))
except ValueError:
get_result = int(input('请输入整数:'))
jisuan().jisuan1()