美文网首页
2020-04-04

2020-04-04

作者: Steve_Lv | 来源:发表于2020-04-04 22:41 被阅读0次

今日实现:使用python生成小学四则运算卷与答案

环境:VScode,python3.7.6

首先在创立的文件夹中新建文件,此时文件名默认untitle,VScode并不知道我们将要的编写的是python文件,从而不会有字符高亮,自动缩进等,需首先保存文件(快捷键cmd+s)并命名为.py后缀即可。

今日的目标内容:

  1. 0~100以内的四则运算,被除数不出现0
  2. 试卷以20行*5题的形式排列
  3. 生成试卷同时生成答案卷

接下来开始正式编写程序

第一步我们需要创建两个txt文件:

q = open('quiz.txt','w')
qa = open('quizans.txt','w')

open函数会打开文件,若不存在则创建文档。’w‘ 是写入模式,清空之前文档内容重新写入,其他模式可以参考菜鸟教程的Python 文件I/O

第二步生成题目并写入文件

import random
op=['+','-','*','/']

要想生成随机数,我们需要使用到random包,而四则运算我们选择手动创立并在后续随机生成0~3数字的方式进行随机选择。

程序主体是两个嵌套的for循环:

for l in range(20):
    for c in range(5):
        opn=random.randint(0,3)
        if opn != 3:
       #3对应op中除号位置,若非除法运算则在0~100间随机生成数字,不然则选择1~100
            num1=random.randint(0,100)
            num2=random.randint(0,100)
        else:
            num1=random.randint(1,100)
            num2=random.randint(1,100)
        eq=str(num1)+op[opn]+str(num2)
        ans=eval(eq)
        #eval函数可以自动运算表示式,但不清楚如何保留小数或固定位数小数
        qa.write("%3d %s %3d = %-10d"%(num1,op[opn],num2,ans))
        q.write("%3d %s %3d = %-10s"%(num1,op[opn],num2,''))
        # 为了整齐考虑,每个数字分配3个字节,最后结果分配10个字节,并且%-10d使用’-‘以实现左对齐
    qa.write('\n')
    q.write('\n')
   #每行五道题出完后换行
qa.close()
q.close()

关于生成运算符部分也看到有使用以下方法实现

ops = random.choice(op)

但这样的方式会使得判断除法较为不方便。

今天还顺便将简书设置为markdown书写模式,一边书写一边预览的方式很舒服,就像最近通过latex+sublimetext+skim写论文的感觉。明天计划探索一下直接在VScode内上传github是怎么样的机制,是否方便,并且赶一下论文进度,待在家里一拖再拖,现在按照计划于应该已经写完初稿了,希望明天可以开始继续下笔!

相关文章

网友评论

      本文标题:2020-04-04

      本文链接:https://www.haomeiwen.com/subject/tcasphtx.html