【Python】用Python来训练数学计算?
数学计算很重要,今天我们就来实现用Python结合random库来进行数学计算的练习。
那么我们要怎么做到呢?一起来看代码
# By Forty / Three % Two
import random
right = 0 # 正确回答数
kacha = 0 # 错误回答数
zongshu = 0 # 总回答数
print("说“0”可以退出并且得到统计信息哦!")
while True:
try:
fuhao = ["+","-","*","/"] # 运算符号
a = round(random.uniform(1,1000)) # 生成随机数
b = round(random.uniform(1,1000)) # 生成随机数
c = random.choice(fuhao) # 随机选择符号
if c == "+": # 如果运算符号是+
temp = input("a = {},b = {} a+b=?".format(a,b)) # 获取回答
temp = int(temp)
zongshu += 1
if temp == a + b:
print("答对了!")
right += 1
elif temp == 0:
print("您一共计算了{}题,其中正确{}题,错误{}题".format(zongshu,right,kacha))
break
else:
print("答错了!")
kacha += 1
if c == "-":
temp = input("a = {},b = {} a-b=?".format(a,b))
temp = int(temp)
zongshu += 1
if temp == a - b:
print("答对了!")
right += 1
elif temp == 0:
print("您一共计算了{}题,其中正确{}题,错误{}题".format(zongshu,right,kacha))
break
else:
print("答错了!")
kacha += 1
if c == "*":
temp = input("a = {},b = {} a*b=?".format(a,b))
temp = int(temp)
zongshu += 1
if temp == a * b:
print("答对了!")
right += 1
elif temp == 0:
print("您一共计算了{}题,其中正确{}题,错误{}题".format(zongshu,right,kacha))
break
else:
print("答错了!")
kacha += 1
if c == "/":
temp = input("a = {},b = {} a//b=?".format(a,b)) # 获取商
temp = int(temp)
temp2 = input("a%b=?") # 获取余数
temp2 = int(temp)
if temp == a // b and temp2 == a % b:
print("答对了!")
right += 1
elif temp == 0:
print("您一共计算了{}题,其中正确{}题,错误{}题".format(zongshu,right,kacha))
break
else:
print("答错了!")
kacha += 1
except:
print("请输入合法的答案")
那么里面其实还是有很多知识点的,比如随机生成数字、try…except,if语句,input等。那么我们就一点一点的说
首先,我们看该如何生成随机数
这里a指的是加数(被减数/因数/被除数),b也一样,红框框起来的是生成随机数的代码。使用round函数,在里面写上random.uniform函数。round函数里有2个参数,第一个是uniform函数,第二个是生成的随机数有几位小数。而我们不需要小数,就可以不写。在random.uniform函数里的两个参数是由?到?的随机数。我们需要三位数,那么就写1,1000。
(有些变量的意思我就不写了,大家可以看看代码里的注释)
接下来,我们要使用random的choise方法随机选择运算符号**(方法是在括号里放上列表名)**
那么到现在,我们的准备工作已经完成啦,一起来看看代码的判断部分吧!
PS:别忘了加上while循环和try哦!
对了,还有try…except的用法:
try后面是要运行的内容,except后面是如果报错了,该怎么处理
下面的就很简单了。我们先看判断运算符号
(由于有四种运算符号,所以这里写了四个if,如果有更简便的方法欢迎指导)
先用input获取输入,并转化为int类型
然后进行判断,这里要说的是temp == 0
0是退出,所以我们要加上break退出循环,并且打印结算信息。至于format的用法可以自行了解。
其他的就是大同小异,改一下运算符号就行了。
特别要讲的就是除法
通过我的注释可以看到,一个是商,一个是余数。我们也要再if里加上一个条件。
然后再分别判断,也是基本大同小异
这里就要讲except了
我们想,如果使用者没有输入或者输入的不是数字,程序是会报错的!所以我们要用它来捕获报错,并且打印提示信息
好了,今天的教学就到这里,关注我,和你分享有趣的小程序!┏(^0^)┛