新闻详情

新闻详情

首页 / 资讯中心 / 详情

Python 脚本生成烫发基本理论 PPT 学习教案:参数化课件与自动排版

发布时间:2026/9/17 17:49:25来源:尧图网络
Python 脚本生成烫发基本理论 PPT 学习教案:参数化课件与自动排版
简介这份PPT课件系统梳理烫发的基本理论面向美发专业学员、发型师及门店培训教学使用帮助学习者从化学与物理两个层面理解烫发过程解决发质判断、软化控制与加热操作等实操难点。整份资源共1个pptx文件压缩包约159KB以图文排版的幻灯片形式逐页呈现便于课堂讲解与自学翻阅。内容涵盖烫发水一剂还原剂与二剂定型剂的作用机理阿摩尼亚、乙硫醇酸、溴化钠、过氧化氢等成分分工冷烫与热烫的原理差异陶瓷烫、数码烫、基因烫及低温烫的特点与适用发质并给出按色度划分的八类发质分析、不同发质对应的软化程度区间、视觉触觉缠绕三种软化测试方法以及软化时间控制与间歇性加热的操作参考页末还配有加热方式对照示意图。目前已有84人学习适合作为烫发入门到进阶的理论铺垫资料。1. 烫发基本理论PPT学习教案为什么该用脚本生成一家做了十二年的美发培训学校课件更新频率常比课程大纲还高药水从单剂换成双剂卷杠从序号换成直径标号模特案例每期一换。那份「烫发基本理论PPT学习教案.pptx」有 90 页真正会动的不到 30 页每次改却要从头翻到尾。二硫键那两页的分子式截图是五年前截的讲师想补一条反应式只能重画。问题不在内容在于课件被当成文件而不是数据。把烫发理论拆成结构化数据再渲染成 PPT改参数就是改一行配置。适合给连锁门店做统一课件的培训主管、要把课程包交付给加盟商的内容负责人以及想给技术分享做自动排版的工程师。下面从烫发参数体系讲到母版写入、页数压缩和交付前校验。2. 烫发基本理论的参数骨架从二硫键到卷杠直径课件里最容易讲糊的是「为什么这款药水配这个卷杠、留这么久」。参数之间其实是连着的发质决定渗透速度pH 和浓度决定断键速度卷杠直径决定断键后的形态双氧水浓度决定这个形态能不能锁住。把这四组参数写成一张表课件的骨架就立起来了也才有后面用代码渲染的可能。2.1 毛发三层结构里烫发真正作用的是哪一层角质层是 6 到 10 层重叠的毛鳞片决定药水「多久能钻进去」不参与形变。皮质层占整根头发重量的 80% 到 90%胱氨酸二硫键大量分布在这里是唯一发生还原与氧化反应的场所。髓质层在细软发里常常断续甚至缺失对烫发结果几乎没有影响但很多老课件花两页讲它讲到学员以为髓质层决定卷度。判断一款药水能不能用看的是它能不能在合理时间内把皮质层的二硫键打开到六成以上而不是把毛鳞片泡开到透明。鳞片张得越狠皮质层里的水分和蛋白质流失越快烫完看着卷、摸着一把稻草就是这个原因。健康完整鳞片需要碱剂先让鳞片张开pH 越高渗透越快轻微受损鳞片边缘翘起渗透快浓度要下调一档重度受损鳞片大面积缺失软化几分钟就到位稍不留神就过烫2.2 还原与定型两步反应的化学账第一步还原巯基乙酸或巯基乙酸铵在碱性条件下pH 8.5 到 9.5攻击胱氨酸的二硫键把它拆成两个带巯基的半胱氨酸残基。这一步业内叫软化本质是把头发内部的「弹簧」剪断头发进入可塑状态。第二步是物理形变把头发按目标方向绕在卷杠上。这一步没有化学反应但张力决定最终卷度张力不均匀就会出现同一头顶有的卷有的直。第三步氧化过氧化氢在酸性条件pH 3.0 到 4.0下把相邻的两个巯基重新氧化成二硫键。新键的位置由卷杠决定所以卷度被锁在了新的形态上。步骤主要试剂有效浓度pH典型停留时间软化还原巯基乙酸铵6% - 9%8.5 - 9.58 - 20 min渗透辅助氨水 / 单乙醇胺1% - 2%与上同步与软化同步定型氧化过氧化氢1.5% - 3%3.0 - 4.05 - 10 min中和冲洗温水 酸性洗发水—4.5 - 5.53 - 5 min注意定型剂浓度不是越高越好。超过 3% 的过氧化氢在漂过的头发上会同时破坏皮质层的肽链卷度当场看着没问题两周后开始塌。2.3 卷杠直径、发片厚度与卷度的换算课件上写「大卷用大杠」等于没写。学员需要的是能对上的数字成卷直径大约是卷杠直径的 1.2 到 1.4 倍倍率受发片厚度和张力影响。发片厚度超过卷杠直径的一半内层头发就软化不透拆杠后外层卷、内层直。卷杠直径成卷直径估算目标卷度发片厚度上限上杠角度12 mm15 - 18 mm羊毛卷、紧密螺旋1.0 cm90°20 mm25 - 28 mm中小卷1.5 cm90°28 mm34 - 38 mm中卷、纹理感2.0 cm45° - 90°35 mm42 - 48 mm大波浪2.5 cm45°发片宽度建议控制在卷杠长度的 1.5 倍以内太宽两端会翘出来卷出来是喇叭形。2.4 发质判断到药水浓度与停留时间的对应这张表是整份课件的核心页也是后面代码要渲染的主要数据源。发质鳞片状态建议浓度基准停留环境修正细软发完整6% - 7%12 min低于 20℃ 加 20%正常发完整8%15 min低于 20℃ 加 15%粗硬发完整厚实9%20 min低于 20℃ 加 15%受损发部分缺失5% - 6%6 - 8 min不做加法只做减法漂染发大面积缺失4% - 5%3 - 5 min需先做发束测试下面这段代码可以直接生成课件里的「停留时间速查」页文案也方便讲师在课堂上按教室温度现算。# 按发质与 pH 估算软化停留时间单位分钟 BASE { # 25℃ 下的基准停留时间 fine: 12, # 细软发 normal: 15, # 正常发 coarse: 20, # 粗硬发 damaged: 6, # 受损发 } PH_FACTOR {8.5: 1.25, 9.0: 1.0, 9.5: 0.85} # pH 越高断键越快 def dwell_time(hair: str, ph: float, room_c: float 25.0) - float: t BASE[hair] * PH_FACTOR[ph] # 每偏离 25℃ 五度按 10% 修正低温环境反应明显变慢 t * 1 (25.0 - room_c) / 5.0 * 0.10 return round(t, 1) print(dwell_time(coarse, 9.5, 20)) # 粗硬发 低温教室 print(dwell_time(damaged, 8.5, 25)) # 受损发 低 pH尽量缩短BASE 用的是课堂经验基准值PH_FACTOR 只列了三档常见 pH门店实际用的药水如果在 8.8 这种中间值把字典改成按区间插值即可。room_c 这一项在北方冬季教室和南方夏季门店的差距能到三成把它写进课件比口头说一句「看情况」有用得多。发束测试永远优先于任何计算值代码给出的只是起点。3. 用 python-pptx 把讲义数据写成烫发基本理论PPT理论参数整理好之后剩下的活是把它变成能放映的文件。python-pptx 不依赖 Office能在 CI 里跑改一版参数重新出片只要几十秒这是它比「手工改 另存为」强的地方。3.1 环境准备与母版页编号约定python -m venv .venv source .venv/bin/activate pip install python-pptx pillow先做一份 template.pptx把封面、章节分隔、图文两栏、表格页、纯文字页五种版式建好占位符改名成title/body/note中文字体在母版里统一设成思源黑体或微软雅黑。代码里按索引取版式不要按名字匹配——中文版 PowerPoint 的版式名会随语言包变化。from pptx import Presentation prs Presentation(template.pptx) for i, layout in enumerate(prs.slide_layouts): # 打印版式索引、名称、占位符名称确认约定无误 print(i, layout.name, [p.name for p in layout.placeholders])跑一次把结果抄进常量表之后所有渲染都引用这份常量版式调整时只需要改一处。3.2 把讲义数据结构化成 YAML 再灌进占位符把第二章那几张表写成 YAML一页对应一个条目正文用短句数组。- layout: 5 title: 还原与定型的两步反应 body: - 还原巯基乙酸在 pH 8.5-9.5 下断开二硫键 - 塑形卷杠张力决定最终卷度 - 定型过氧化氢在 pH 3.0-4.0 下重建二硫键 note: 强调定型剂浓度不超过 3%import yaml from pptx import Presentation from pptx.util import Pt def render(prs, page): slide prs.slides.add_slide(prs.slide_layouts[page[layout]]) for ph in slide.placeholders: if ph.name title and page.get(title): ph.text_frame.text page[title] ph.text_frame.paragraphs[0].runs[0].font.size Pt(34) elif ph.name body and page.get(body): tf ph.text_frame tf.text page[body][0] # 第一条写入已有段落 for line in page[body][1:]: p tf.add_paragraph() # 后续条目新增段落 p.text line p.font.size Pt(22) elif ph.name note and page.get(note): slide.notes_slide.notes_text_frame.text page[note] return slide prs Presentation(template.pptx) for page in yaml.safe_load(open(perm_theory.yaml, encodingutf-8)): render(prs, page) prs.save(烫发基本理论PPT学习教案.pptx)body的第一条必须先写进text_frame.text否则后面的段落会顶在空占位符上多出一行。notes_slide是备注页直接用notes_text_frame.text赋值讲师在放映模式下看得到、学员拿到的 PDF 里看不到。3.3 卷杠示意图与对比图的等比插入用手写坐标插图换一张素材就会拉伸变形。按图片真实像素算比例再落到厘米单位上才能保证五张图横排对齐。from PIL import Image from pptx.util import Cm def add_pic(slide, path, left_cm, top_cm, max_w_cm, max_h_cm): w, h Image.open(path).size ratio min(max_w_cm / w, max_h_cm / h) # 取较小的缩放比避免溢出框 slide.shapes.add_picture( path, Cm(left_cm), Cm(top_cm), Cm(w * ratio), Cm(h * ratio) )五个卷杠对比图按 3.2 cm 间距横排max_w_cm设 3.0、max_h_cm设 4.5插完再统一加一句「同一发片、同一张力」的注释学员才知道这是对照实验。3.4 字号、行距与溢出的三个防守参数python-pptx 不会自动缩排文本溢出只能靠生成前拦截。下面这组值是 16:9 投影、8 米教室实测下来比较稳的配置。元素字号行距单页上限页标题32 - 36 pt1.018 字正文要点20 - 24 pt1.36 行表格文字16 - 18 pt1.156 列图注14 - 16 pt1.01 行def warn_overflow(prs, max_title18): for i, slide in enumerate(prs.slides, 1): for ph in slide.placeholders: txt ph.text_frame.text.strip() if ph.name title and len(txt) max_title: print(f第 {i} 页标题过长{len(txt)} 字{txt})生成后跑一遍warn_overflow把所有超长标题打出来手动改短。这比打开 PowerPoint 一页页翻快得多。4. 烫发理论课件的页数预算与教学节奏压缩90 页的课件念不完也不该念完。理论课 90 分钟按每页 90 秒算能讲透的上限在 55 页左右中间还要留出提问和发束演示的时间。压缩不是删内容是把「一页讲三件事」改成「三页各讲一件事」。4.1 45 页怎么分按模块做页数预算模块页数每页承载封面 课程目标2学完能独立判断发质与选杠毛发结构5一层结构一页化学原理8还原、塑形、定型各 2 页药水与参数7浓度、pH、时间各成表卷杠与手法9直径、角度、张力分组发质判断与排雷6四类发质各一页 两页反例真人案例6术前、过程、术后对比练习与考核2判断题 现场发束实操合计45—预算定好之后写进 YAML 的layout字段超出的页在渲染阶段就能被脚本拦下来。4.2 化学式用图片还是文本框结构式比如胱氨酸的完整骨架用 300 dpi、透明底的 PNG从画图工具导出后别再截屏截屏的锯齿在投影上会很明显。反应式则必须用文本框因为要参与排版和改字号。python-pptx 没有直接的上下标接口需要操作底层 XML 属性def set_script(run, text, offset-25000): # offset 为千分之一百分比-25000 表示下标30000 表示上标 run.text text run.font._rPr.set(baseline, offset) # 用法写出 -S-S- 里的下标效果把offset定义成模块级常量后续批量改字号时才不会把上下标一起抹掉。反应式里的箭头用「→」字符比插入图形省事字号跟着正文走。4.3 真人案例页的批量排版与素材处理案例页用 3×2 网格六张图统一裁成 4:3、宽度 4.5 cm。素材文件按case_编号_术前/过程/术后.jpg命名脚本按编号分组成页一个案例正好一页。素材脱敏是硬要求模特正面清晰照需要书面授权没有授权的用侧后位或局部发束特写替代。脚本层面可以做一层检查读取文件名里的编号凡是授权名单里没有的编号直接跳过并打印告警避免误发到加盟商手里。def build_case_page(prs, case_id, images, allowed): if case_id not in allowed: print(f案例 {case_id} 未在授权名单内跳过) return None slide prs.slides.add_slide(prs.slide_layouts[5]) for idx, img in enumerate(images[:6]): add_pic(slide, img, 1.0 (idx % 3) * 5.0, 3.0 (idx // 3) * 5.0, 4.5, 3.4) return slide4.4 导出 PDF 与讲义分页讲师用 PPT学员要 PDF两份文件必须同源。用 LibreOffice 无头模式导出不要另存为图片再拼。soffice --headless --convert-to pdf --outdir dist 烫发基本理论PPT学习教案.pptxWindows 下把soffice换成完整路径比如C:\Program Files\LibreOffice\program\soffice.exe。导出后翻一遍中文有没有变方框方框说明目标机器缺字体把母版字体换成思源黑体这类可嵌入的开源字体再导一次即可。5. 交付前校验参数一致性、投屏可读性与放映节奏课件发出去之前有三件事值得用脚本过一遍都能在几分钟内发现问题。5.1 核对课件表格与讲义源数据是否一致改了 YAML 忘记重新生成或者手工在 PowerPoint 里动过一页都会造成课件与讲义对不上。把课件里的表格读回来跟源数据比行数、比首列就能定位。def check_table(prs, page_idx, expect_rows): slide prs.slides[page_idx] for shape in slide.shapes: if shape.has_table: rows [[c.text.strip() for c in r.cells] for r in shape.table.rows] if len(rows) ! len(expect_rows): print(f第 {page_idx 1} 页表格行数 {len(rows)}预期 {len(expect_rows)}) return rows print(f第 {page_idx 1} 页没有找到表格) return None5.2 投屏字号与对比度的下限检查字号够不够取决于最后一排坐多远。教室场景按下面这张表兜底正文低于下限就在生成阶段报错。观看距离幕布宽度正文最小字号4 m2.0 m16 pt8 m3.0 m20 pt12 m4.0 m24 pt对比度方面浅底深字和深底浅字都行但正文与背景的亮度差要拉开灰底配浅灰字在投影仪上基本看不清。表格里的分隔线宽度不低于 0.75 pt再细就打不出来。5.3 用备注页字数估算放映节奏备注页写讲稿一条经验换算中文口播每分钟约 220 字每页留 90 秒左右备注控制在 120 到 160 字最舒服。写个脚本统计每页备注字数低于 60 字的页大概率是讲师会即兴发挥、跑偏的地方高于 300 字的页说明内容太密应该拆页。for i, slide in enumerate(prs.slides, 1): if not slide.has_notes_slide: print(f第 {i} 页缺备注) continue n len(slide.notes_slide.notes_text_frame.text) if n 300: print(f第 {i} 页备注 {n} 字建议拆页)打包交付时把template.pptx、perm_theory.yaml、渲染脚本和导出的 PDF 放进同一个课程包学员拿到的版本和讲师放映的版本才不会出现第二套字体、第二套参数。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ESP32-S3 N16R8深度开发指南:PSRAM与PlatformIO工程化实践 2026/9/17 18:37:34

ESP32-S3 N16R8深度开发指南:PSRAM与PlatformIO工程化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
PyCharm中Git拉取推送与冲突处理全攻略:从环境配置到团队协作 2026/9/17 18:37:34

PyCharm中Git拉取推送与冲突处理全攻略:从环境配置到团队协作

每次带新人用 PyCharm 做开发,我碰到最多的困惑不是 Python 语法,也不是依赖装不上,而是"我这代码怎么发给你""你改完我怎么拿过来"。说白了就是 Git 的拉取和推送。这东西单独看每个教程都讲得头头是道,但真…

阅读更多 →
MoveFlow 编译器诊断工作流:Aptos Move 合约的 AI 辅助编辑与包检查实战指南 2026/9/17 18:37:34

MoveFlow 编译器诊断工作流:Aptos Move 合约的 AI 辅助编辑与包检查实战指南

MoveFlow 编译器诊断工作流:Aptos Move 合约的 AI 辅助编辑与包检查实战指南 【免费下载链接】aptos-core Aptos is a layer 1 blockchain built to support the widespread use of blockchain through better technology and user experience. 项目地址: https:/…

阅读更多 →
手机无线充电PWM电源控制策略:发射端、接收端与调试实战解析 2026/9/17 18:37:34

手机无线充电PWM电源控制策略:发射端、接收端与调试实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
自制Win11PE实战:用ADK集成中文语言包与维护工具,生成可启动ISO 2026/9/17 18:37:34

自制Win11PE实战:用ADK集成中文语言包与维护工具,生成可启动ISO

用别人封装好的 PE 盘,功能再齐全,我心里始终悬着一个问题:引导环境里跑的东西,到底是不是完全可信。磁盘修复、系统备份、分区调整这些操作,都是把整台电脑的命脉交出去,所以我更愿意要一个自己能完全掌握…

阅读更多 →
Mac上uniapp项目esbuild版本冲突的彻底解决方案 2026/9/17 18:34:34

Mac上uniapp项目esbuild版本冲突的彻底解决方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞