日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

用python给小孩随机生成一组10以内加减法

發布時間:2024/3/12 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用python给小孩随机生成一组10以内加减法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

一、案例背景:同事家小孩子要上小學了,準備給小孩練習10以內加減法,為了解決出題的煩惱,希望我用python幫他實現,并保存到word里。近期在學習python,就當練手了,以后我們家娃也能用。代碼簡單,講一下思路,后面直接貼源碼了。不足之處,各位自行優化。最后用pyinstaller生成.exe時,遇到打包之后找不到default.docx,是項目最大的收獲了。解決方法是:

doc = Document(docx=os.path.join(os.getcwd(), 'default.docx')) 用本地的default.docx,這個文件可以在安裝python-docx的目錄搜索。

?

二、實現思路:

0.讀取配置文件選項range=10(加減法范圍) page=45(要生成加減法數量,一頁正好可以寫45個,總共155,也可以全部生成),配置文件保存目錄./conf/conf.ini

1.遍歷生成10以內所有加法和減法

2.把生成的加法和減法按page=45,生成目標列表

3.把目標列表隨機寫到word上,供小孩練習

?

三、核心代碼:

?

#!/usr/bin/env python # coding: utf-8from docx import Document from docx.shared import Pt from docx.shared import Inches from docx.oxml.ns import qn from random import randrange import os#加載配置文件信息 def load_conf(config_name):config_dic={}with open(config_name,'r') as f:lines = f.readlines()for config in lines:config_str=config.strip('\n')config_key=config_str.split('=')[0]config_value=config_str.split('=')[1]config_dic[config_key]=config_valuereturn config_dic#生成減法列表 def get_sub_list():sub_list = []for x in range(int(configs_dic['range'])):for y in range(x+1):sub_item=str(x) + " - " + str(y) + " = "sub_list.append(sub_item)return sub_list #生成加法列表 def get_add_list():add_list = []for a in range(int(configs_dic['range'])):for b in range(int(configs_dic['range'])):add_item=str(a) + " + " + str(b) + " = "add_list.append(add_item)return add_list#生成目標列表 def get_target_list(add_li,sub_li):all = add_li + sub_litarget_list=[]for i in range(int(configs_dic['page'])):random_index = randrange(0,len(all))target_list.append(all[random_index])return target_list#把目標列表寫入word def write_to_word(target_list):row_size=int(len(target_list)//3)left_target_list=target_list[:row_size]middle_target_list=target_list[row_size:row_size*2]right_target_list=target_list[row_size*2:]#打開文檔document = Document(docx=os.path.join(os.getcwd(), 'default.docx'))#加入標題document.add_heading(u'10以內加減,加強練習',0)#添加文本for i in range(row_size):paragraph = document.add_paragraph()#設置中文字體run = paragraph.add_run(left_target_list[i]+" "+middle_target_list[i]+" "+right_target_list[i]+" ")run.font.name=u'宋體'run.font.size = Pt(20)r = run._elementr.rPr.rFonts.set(qn('w:eastAsia'), u'宋體')#保存文件document.save(u'加減.docx')if __name__ == '__main__':
   #讀取配置文件信息,range=10 范圍,page=45,每頁算術個數config_name
='./conf/conf.ini'configs_dic=load_conf(config_name)
   #生成加、減法列表add_li
=get_add_list()sub_li=get_sub_list()
   #生成目標列表,45個target_list
= get_target_list(add_li,sub_li)
#寫入wordwrite_to_word(target_list)

?

四附件:

1.配置文件

2.default.docx 要copy到工作目錄,不然生成exe是無法正常使用。

3.生成后的效果:

?

轉載于:https://www.cnblogs.com/octmonth/p/11102972.html

總結

以上是生活随笔為你收集整理的用python给小孩随机生成一组10以内加减法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。