【办公类-19-04】办公中的思考——幼儿姓名笔画数统计(单字、全名字)

结果展示--笔画数统计

背景需求

中6班幼儿都能够书写学号(基本没有镜像了),于是我开始尝试让幼儿熟悉自己的“姓氏”,并书写姓氏(单字)。4位幼儿能够默写全名,3位幼儿可以默写名字中的某一个字。

但如果有样板,幼儿可以尝试照着“”画名字“”。

每位孩子都尝试根据已有文字,了自己的名字。从字形结构来看,我在想:孩子们的写字的笔画顺序是否正确呢?

由于我自平时都是电脑键盘输入或手机语音输入,几乎已经不会写汉字了(o(╥﹏╥)o),根本搞不清楚自己的笔画顺序是否正确。

于是,我想通过“笔画网”的图示,下载幼儿姓名中文字的具体笔画顺序(第3笔是丿,第5笔是横折钩)

具体思路:

1、从“比邻词典”输入

2、比邻词典”链接

 《李》字笔顺、笔画 - 李字怎么写?

 3、制作幼儿名单(2字、3字、4字)

 4、使用UIBOT程序,批量下载(不知道Python不能运行)

UiBot开发的RPA机器人源代码是由UiBot官方团队自己研发的一套语言命令。底层命令由python、C#等语言组成。UiBot兼容性比较好,支持C、Lua、Python、.Net 扩展插件及第三方SDK接入。

Dim objExcelWorkBook,arrayRet,iRet,temp,行,sRet,sText,名称前面,arrElement,objPoint,dictScrollPostion,objRect,bRet
objExcelWorkBook = Excel.OpenExcel('''C:\Users\jg2yXRZ\OneDrive\桌面\下载笔画\幼儿姓名笔画范例.xlsx''',true,"Excel","","")
File.CreateFolder('''C:\Users\jg2yXRZ\OneDrive\桌面\下载笔画\演示名字图片''')
路径 = '''C:\Users\jg2yXRZ\OneDrive\桌面\下载笔画\演示名字图片'''
区域=Excel.ReadRange(objExcelWorkBook,"Sheet1","A2:B5",true)
行=UBound(区域)

TracePrint(行)
Rem 网页开着75%
// https://bihua.bi0.cn/96E8__bishun.html
For i = 0 To 行 step 1

// TracePrint(区域[i])
名称 = 区域[i][0]&'-'&区域[i][1]



TracePrint(区域[i][1])
字数=Len(区域[i][1])


TracePrint(字数)
For ii = 1 To 字数 step 1

单字=StrGetAt(区域[i][1],ii)
// TracePrint(单字)

名称前面 = Format("%02d",i+1)&'-'&Format("%02d",ii)&'-'&单字&'-'

TracePrint(名称前面)
Rem 查找笔画
Keyboard.InputText(@ui"输入控件<input>",单字,true,20,10000,{"bContinueOnError": false, "iDelayAfter": 300, "iDelayBefore": 500, "bSetForeground": true, "sSimulate": "message", "bValidate": false, "bClickBeforeInput": false})

Mouse.Move(957, 208, false,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300})
Delay(2000)
笔画总数 = UiElement.GetValue(@ui"表格单元<td>_102",{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
// TracePrint(笔画总数)

名称后面 = 名称前面&笔画总数

// TracePrint(名称后面)

Rem 锚定下载
LocalOCR.Hover(@ui"块级元素<div>_夏字笔画写法1",{"x":29,"y":2,"width":69,"height":27},"笔画写法","instr",1,10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":true,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate"})


Keyboard.Press("Down", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})

Mouse.Click("right", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300})

Keyboard.Press("Down", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})



Keyboard.Press("Down", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})
Keyboard.Press("Enter", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})

Keyboard.Press("Backspace", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})
Keyboard.InputText(@ui"窗口1",路径&'\\'&名称后面,true,20,10000,{"bContinueOnError": false, "iDelayAfter": 300, "iDelayBefore": 500, "bSetForeground": true, "sSimulate": "message", "bValidate": false, "bClickBeforeInput": false})
Mouse.Move(583, 446, false,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300})

Delay(3000)



Keyboard.Press("Up", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})

Keyboard.Press("Up", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})
Delay(5000)
Next
Next
Excel.CloseExcel(objExcelWorkBook,true)

5、运行过程展示

视频

6、运行结果展示

 办公思考:

1、查找笔画最多的名字:那些孩子的姓氏+名字中的笔画很多(相对难写)

2、查找单个笔画多的字,一位幼儿的名字中,哪一个字相对难写(笔画多)

确定几个人的名字(4人)

 重点:提取文件名上的四类信息

'''
目的:把名字图片上的笔画总数加起来 笔画谁最多
作者:阿夏
日期:2023年05月26日 21:54
'''


import os
import time

import xlrd

hang=int(input('一共几个孩子(4人)\n'))

address = r'C:\Users\jg2yXRZ\OneDrive\桌面\下载笔画\演示名字图片'#存放图片的文件夹
# datapath = 'D:/目录.xlsx'#excel表路径

print('--------1、先把文件名变成数字----------')
fileList=os.listdir(address )
# print(fileList)

sn_all=[]
n_all=[]
ks_all=[]

# # 全部路径
# path = r'C:\Users\jg2yXRZ\OneDrive\桌面\中6姓名笔画总数\*'
# for file_abs in glob.glob(path):
#     print(file_abs)

for file in fileList:
    
    split_str = file.split('-')    # 切割符号
    # 学号
    student_number = split_str[0]  # 学号 
    # print(student_number)
    name= split_str[2]  # 名字(单字)    
    stroke_number= split_str[3]  # 笔画数+.png
    # print(stroke_number[:-4])# 数量(排除最后的.png)
   

    sn_all.append(student_number)    # 学号列表   
    
    n_all.append(name) # 名字列表(单字列表)
   
    ks_all.append(stroke_number[:-4])# 笔画数列表
# print(len(ks_all)) 
# print(len(sn_all))
# print(len(n_all))  
# print(m)
# ['01', '01', '01', '02', '02', '02', '03', '03', '03', '04', '04', '05', '05', '05', '06', '06', '06', '07', '07', '07', '08', '08', '08', '09', '09', '09', '10', '10', '10', '11', '11', '11', '12', '12', '12', '13', '13', '13', '14', '14', '14', '15', '15', '15', '16', '16', '16', '17', '17', '17', '18', '18', '18', '19', '19', '20', '20', '20', '21', '21', '21', '22', '22', '22', '23', '23', '23', '24', '24', '24', '25', '25', '25', '26', '26', '26', '27', '27', '27', '28', '28', '28']

# print(n)
# ['10', '5', '10', '6', '7', '8', '4', '4', '12', '10', '4', '8', '8', '13', '6', '13', '11', '7', '4', '10', '9', '11', '8', '7', '11', '13', '14', '8', '14', '11', '12', '10', '7', '16', '11', '7', '13', '1', '9', '10', '12', '10', '6', '1', '7', '12', '11', '11', '1', '4', '7', '10', '12', '7', '12', '6', '12', '8', '10', '12', '7', '11', '13', '5', '12', 
# '12', '12', '9', '7', '8', '3', '4', '8', '4', '8', '8', '7', '3', '8', '9', '9', '8']

# print(k)



print('-----------三个字笔画最多-----------')

# 三个字合计的统计(从小到大)

# 查找几个数字=01,对应笔画数加在一起
sy=[]
sy_all=[]
for i in range(1,hang+1):    # 一共28人
    sy.clear()
    cz_number='%02d'%i
    # print('%02d'%i)  
    # 01
    
    for x in sn_all:  # 在学号列表中遍历  
        if x==cz_number:   # 如果01==01,就合并为一个列表
            sy.append(x)
    # print(len(sy))    
    sy_all.append(len(sy))
# print(sy_all)
# # [3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3] 提取的索引位置

sy_all.insert (0, '0') # 最前面加0   
print(sy_all)
# 01号是3个名字、04号是4个名字
# ['0', 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3]


# 索引数字累加
sy_plus=0
sy_plus_all=[] 
# 索引取值数字的确定
for y in sy_all:
    sy_plus +=int(y)    
    # print(sy_plus)
    sy_plus_all.append(sy_plus)
# print(sy_plus_all)
# [0, 3, 6, 9, 11, 14, 17, 20, 23, 26, 29, 32, 35, 38, 41, 44, 47, 50, 53, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82]
# ks_all笔画数列表中,取0-3 3-6,6-9(3)。9-11(2)

name_three_all=[]
name_all_all=[]
for z in range(int(len(sy_plus_all)-1)):    
    q=ks_all[sy_plus_all[z]:sy_plus_all[z+1]]
    # print(q)
    # ['10', '5', '10']
    # ['6', '7', '8']  
    # 转字符
    zifu=[int(u) for u in q]
    print(zifu)
    # [10, 5, 10]
    # [6, 7, 8]
    # 三个数字加一起
    print(sum(zifu))
    # 25
    # 21

    # 三个名字拼在一起
    long_name=n_all[sy_plus_all[z]:sy_plus_all[z+1]]   
    # ['张','三']
    name_all=''.join(long_name)
    # ['张三']
    print(name_all)
    name_all_all.append(name_all)    # 三个名字的合集列表

    # 生成结果 三个名字笔画最多到笔画最少
    h='{}笔 学号"{}{}"的笔画'.format('%02d'%(sum(zifu)),'%02d'%(z+1),name_all_all[z])
    # print('{}笔 学号{}的笔画:'.format(sum(zifu),'%02d'%(z+1)))
    name_three_all.append(h)
    # name_three_all.sort()    # 笔画少 到 笔画多
    name_three_all.sort(reverse=True)# 笔画多 到 笔画少
# print(name_three_all)    


print('---------全部名字笔画总数的统计(多到少)----------')
# 变成竖式
for zz in range(len(name_three_all)):
    
    print('序号{}  {}'.format('%02d'%(zz+1),name_three_all[zz]))
    
print('-----------单个字笔画最多-----------')

# for  sn_all.append(student_number)    # 学号列表    
#     n_all.append(name) # 名字列表(单字列表)
#     ks_all.append(stroke_number[:-4])# 笔画数列表

name_one_all=[]
for v in range(len(n_all)):  # 82条
    
    k='{}笔 学号"{}{}"的笔画'.format('%02d'%(int(ks_all[v])),str(sn_all[v]),n_all[v])
    #                                 #    name_all_all[v])
    # # print('{}笔 学号{}的笔画:'.format(sum(zifu),'%02d'%(z+1)))
    # print(k)
    name_one_all.append(k)
    name_one_all.sort()    # 笔画少 到 笔画多
    # name_one_all.sort(reverse=True)# 笔画多 到 笔画少
    # print(name_one_all)

print('---------单个名字笔画数量的统计(多到少)----------')
# 变成竖式
for aa in range(len(name_one_all)):    
    print('序号{}  {}'.format('%02d'%(aa+1),name_one_all[aa]))



终端显示

 感悟:

   用这种方法,可以直接看到中6班哪些孩子的3个名字笔画总数最多,

那些孩子的单个名字笔画最多。

 

 

 教学思考

1、笔画总数多的孩子需要关注(把名字放大,便于幼儿看到每一个细节笔画)

 2、单字笔画多的孩子可以提供另类学具(把名字放大,便于幼儿看到每一个细节笔画)

 3、笔画少的孩子,可以直接描写三个字,不需要单独拆开练习笔画数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值