【Python】用Python来训练数学计算?

【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^)┛

发布了1 篇原创文章 · 获赞 3 · 访问量 117

猜你喜欢

转载自blog.csdn.net/weixin_46360180/article/details/104395511