問題描述:
小學老師要每周給同學出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
部分結果: