python加减法无重复

发布时间 2023-09-12 11:22:46作者: lm9856
import random


def add():
'''
获取随机的加法
:return:
'''
a = random.randint(0, 19)
b = random.randint(0, 19 - a)
return a, b, a + b


def sub():
'''
获取随机的减法
:return:
'''
a = random.randint(0, 19)
b = random.randint(0, a)
return a, b, a - b


def test(n):
'''
获取n道20以内的加减法题目,无重复
:param n:
:return:
'''
res_d = {0: [], 1: []}
sig_d = {0: add, 1: sub}
i = 0
while i < n:
sig = random.randint(0, 1)
method = sig_d[sig]
a, b, r = method()
while [a, b, r] in res_d[sig] or [b, a, r] in res_d[sig]:
a, b, r = method()
res_d[sig].append([a, b, r])
i += 1
return res_d


if __name__ == '__main__':
res_d = test(30)
for key, value in res_d.items():
sign = '-'
if key == 0:
sign = '+'
for a, b, r in value:
print(a, sign, b, '=')