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