吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7580|回复: 44
收起左侧

[原创工具] 随手写的python出题小玩意

  [复制链接]
hitmank 发表于 2020-12-11 15:19
我给我小孩写了个100内加减法的,应同事要求,顺手整了个99乘法的
功能很简单,生成一个练习99乘法的excel文件,直接打出来给小孩做就行
效果如图:
image.png

image.png

源码附上
[Python] 纯文本查看 复制代码
import random
import xlrd
import xlwt
from xlutils.copy import copy


class Subject(object):
    """docstring for Subject"""
    def __init__(self, min_num, max_num):
        self.min_num = min_num
        self.max_num = max_num
     

    def random(self):
        while True:
            num_1 = random.randint(self.min_num,self.max_num)
            num_2 = random.randint(self.min_num,self.max_num)
            res = num_1 * num_2
            blank = random.randint(1, 3)
            if blank == 1:
                return("(   )"+"×"+str(num_2)+"="+str(res))
            if blank == 2:
                return(str(num_1)+"×"+"(   )"+"="+str(res))
            else:
                return(str(num_1)+"×"+str(num_2)+"="+"(   )")

class Intoexcel(object):
    """docstring for Intoexcel"""
    def __init__(self, xl_x, xl_y, content):
        self.x = xl_x
        self.y = xl_y
        self.content = content

    def write(self):
        workbook = xlwt.Workbook()
        sheet = workbook.add_sheet('test1')
        style = xlwt.XFStyle()
        font = xlwt.Font()
        font.height = 20*20
        alignment = xlwt.Alignment()
        alignment.horz = 0x01
        alignment.vert = 0x01
        style = xlwt.XFStyle()
        style.font = font
        style.alignment = alignment
        borders = xlwt.Borders()
        borders.bottom = xlwt.Borders.THIN
        style.borders = borders 


        row_sheet = 0
        col_sheet = 0
        for row_sheet in range(self.content):
            for col_sheet in range(5):

                a = Subject(self.x, self.y)
                sub = a.random()


                sheet.col(col_sheet).width = 256*19
                tall_style = xlwt.easyxf('font:height 620;')
                first_row = sheet.row(row_sheet)
                first_row.set_style(tall_style)

                
                sheet.write(row_sheet, col_sheet, sub, style)


        workbook.save('99乘法填空.xls')




if __name__ == '__main__':
    min_num = 1     # 最小数
    max_num = 9     # 最大数
    sub_num = 100   # 多少行
    sub= Intoexcel(min_num, max_num, sub_num)
    sub.write()



链接:https://pan.baidu.com/s/1rG4JlbdMPI98pb5VoplZYw
提取码:el3j

免费评分

参与人数 13吾爱币 +18 热心值 +12 收起 理由
Horin林 + 1 + 1 我很赞同!
stu22706891 + 1 + 1 我很赞同!
chao8709 + 1 + 1 我很赞同!
kkk5264 + 1 + 1 我很赞同!
koalalol + 1 我很赞同!
zpzwz + 1 + 1 谢谢@Thanks!
525602830 + 1 + 1 ok
鬼徒羽道 + 1 + 1 我很赞同!
打酱油的小妖怪 + 1 谢谢@Thanks!
lyqjqly + 1 + 1 我很赞同!
A991792045 + 1 + 1 我很赞同!
yuangencai + 1 + 1 用心讨论,共获提升!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

daikatana 发表于 2020-12-14 09:19
shiwowo 发表于 2020-12-12 23:51
能不能搞个10心内20以内的呢。感谢

语句的最后,就有最大值的设定。
yxdxf 发表于 2021-1-18 16:15
shiwowo 发表于 2020-12-12 23:51
能不能搞个10心内20以内的呢。感谢

改下参数应该可以,EXCEL也行
prc3 发表于 2020-12-12 14:35
yuangencai 发表于 2020-12-12 19:14
加分了,必须支持
cooya2012 发表于 2020-12-12 19:30
学习python不错
markland 发表于 2020-12-12 22:06
这个好,论坛好几个这个小学数学出题器都不大好使。好使的那个有使用期限,而且原帖已经给删了。。。。
17601243856 发表于 2020-12-12 22:46
感谢,学习了
shiwowo 发表于 2020-12-12 23:51
能不能搞个10心内20以内的呢。感谢
A991792045 发表于 2020-12-13 10:38
谢谢楼主  真的挺好用的 谢谢分享
ptmaliang 发表于 2020-12-13 10:53

谢谢楼主
lyqjqly 发表于 2020-12-13 11:08
不思的语言,相同的思维,谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表