Python生成四则运算算式


问题描述:

小学老师要每周给同学出300道四则运算练习题。

要求:

1.两个运算符;

2.100以内的数字;

3.需要写答案,并且保证答案在0...100之间;

 

解题思路:

1.使用python的numpy包,做到随机数均匀分布。

2.使用python自带eval()方法计算四则运算表达式的值,简化编程。

3.第一次随机生成含两个运算符的算式无结果要求。第二次随机生成计算结果在100以内的算式,并且算式结果保留两位小数。

python代码:

import time
import numpy as np


sgn=['+','-','×','']
sgn2=['+','-','*','/']
print('开始生成含两个运算符的四则运算式:')
for i in range(0,300):
    strq=str(np.random.randint(1,101))+sgn[np.random.randint(0,4)]+str(np.random.randint(1,101))+sgn[
        np.random.randint(0,4)]+str(np.random.randint(1,101))+'=' #随机生成含两个运算符的四则运算式并保存在strq中
    if i%2==0:
        print(strq+'            ' ,end="")
    else:
        print(strq)

time.sleep(10)
print("开始生成含两个运算符且结果在100以内的的四则运算式:")
num=0
while True:
    sgn_lindex=np.random.randint(0, 4)#第一个运算符下标
    sgn_rindex=np.random.randint(0,4)#第二个运算符下标
    a=np.random.randint(1,101)
    b=np.random.randint(1,101)
    c=np.random.randint(1,101)#三个运算项下标
    str1=str(a)+sgn2[sgn_lindex]+str(b)+sgn2[sgn_rindex]+str(c) #生成便于表达式计算的字符串
    str2=str(a)+sgn[sgn_lindex]+str(b)+sgn[sgn_rindex]+str(c)   #生成数学表达字符串
    res=eval(str1)#计算表达式
    if res<=100 and res>=0:#判断算式结果是否小于100大于等于0
        if num % 2 == 0:
            print(str2+'='+"%.2f" % res+'            ',end="")
        else:
            print(str2+'='+"%.2f" % res)
        num+=1
    if num==300:
        break

 

部分结果:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM