python实现随机加减乘除运算(除法必整除)
上面向对象技术这门课时老师布置的一个小作业。自己跑了几遍好像没什么问题。个人代码能力不是很强,写的非常冗余繁琐,仅供参考:import operatorimport random as rdimport redef intger( a, b):# 返回能整除的a和bwhile (1):sum = a / bstr1 = str(sum)str2 = str1.split('.')if (len..
·
上面向对象技术这门课时老师布置的一个小作业。
自己跑了几遍好像没什么问题。
个人代码能力不是很强,写的非常冗余繁琐,仅供参考:
import operator
import random as rd
import re
def intger( a, b): # 返回能整除的a和b
while (1):
sum = a / b
str1 = str(sum)
str2 = str1.split('.')
if (len(str2) == 1 or str2[1] == '0'): # 转为字符串,如果str[2]不等于0,说明不能整除
break
else: # 不能整除,重新生成
a = rd.randint(1, 500)
b = rd.randint(1, 500)
continue
return a,b
def plus_sub():
all = ["+", "-", "*", "/"]
mul1 = rd.randint(0, 3) ##随机数符
mul2 = rd.randint(0, 3)
twoothree = rd.randint(0, 1) # 0两位数,1三位数
if(twoothree==0):
print('两个数字运算')
if (twoothree == 1):
print('三个数字运算')
a = rd.randint(1, 500) # 随机数字
b = rd.randint(1, 500)
c = rd.randint(1, 500)
sum = 0
if (twoothree == 0): # 两位数
if (mul1 == 0):
sum = a + b
if (mul1 == 1): # 确保不为负数
sum = a - b
if sum<0:
nnnums=a
a=b
b=nnnums
sum=a-b
if (mul1 == 2):
sum = a * b
if (mul1 == 3): #是除法就判断是否能整除,不能重新随机生成,直到生成能整除的为止。
a,b=intger(a,b)
sum=a/b
return (("{0}{1}{2}=".format(a, all[int(mul1)], b), sum))
else: # 三位数
switch = {"0": operator.add, "1": operator.sub, "2": operator.mul, "3":operator.truediv }
mul1 = rd.randint(0, 3) ##随机数符,
mul2 = rd.randint(0, 3)
if (mul1 == 3 and mul2==3): #确保只有一个除号
mul2 = rd.randint(0, 2)
if(mul1 == 3):
a,b=intger(a,b)
if(mul2 == 3):
b,c=intger( b,c)
mul1 = str(mul1)
mul2 = str(mul2)
if(mul1=='2' or mul1=='3'): #乘除优先级
sum=switch[mul1](a,b) #sum= b mul2 c
sum=switch[mul2](sum,c) # sum= a mul1 sum , mul为操作数字典
else:
if(mul2=='2' or mul2=='3'):
sum = switch[mul2](b, c) # sum= b mul2 c
sum = switch[mul1](a, sum) # sum= a mul1 sum , mul为操作数字典
else:
sum = switch[mul1](a, b) # sum= b mul2 c
sum = switch[mul2](sum,c) # sum= a mul1 sum , mul为操作数字典
return (("{0}{1}{2}{3}{4}=".format(a, all[int(mul1)], b, all[int(mul2)], c)), sum)
d = 0
while (d!='q'):
ans, anser = plus_sub()
anser=int(anser)
print(ans)
print("请输入答案:")
d = input()
d = int(d)
if d == anser:
print("正确!下一题!————————————")
else:
print("答错了!请重新输入答案")
while (d != 'q'):
d = input()
d = int(d)
if d == anser:
print("正确!下一题!————————————")
break
else:
print("答错了!请重新输入答案")
更多推荐
已为社区贡献2条内容
所有评论(0)