Skip to content

字符串的“魔法操作”——Python字符串基础与文本处理

课题

字符串的“拆分与重组”:从名字处理到句子变形

教学时间

2课时(90分钟)

课前准备

  • 教师端:电脑(Python 3.10+)、投影仪、多媒体课件(含“字符项链”动画:展示字符串像珠子串成的项链)、实物道具(字母卡片、带编号的珠子串)、字符串操作流程图(索引、切片、替换)。
  • 学生端:电脑(Python环境)、笔记本、练习纸(印有名字拆分练习)、彩色笔(标注字符串操作步骤)。
  • 教学素材:代码模板(name_processing.py)、“字符串小侦探”任务卡(含不同难度的文本处理问题)、AI代码小助手(可解答“如何提取姓氏”等问题)。

一、导入活动:从“字符游戏”到“字符串逻辑”(15分钟)

活动1:“名字拆解”大挑战——感知字符串结构

  • 教师出示“王小明”名字卡片,提问:“怎么把这个名字拆成‘王’‘小’‘明’?怎么快速找到‘小’字的位置?”
  • 学生用字母卡片拼出自己的名字,尝试“拆成单个字”“找出第2个字”,记录操作步骤(如“王小明→拆成3部分,第2个是‘小’”)。

活动2:“字符项链”动画演示——理解字符串本质

  • 播放动画:字符串"Hello"像5颗珠子(H-e-l-l-o)串成的项链,每颗珠子有固定位置(编号0-4)。
  • 类比:“字符串就是字符的‘项链’,编程可以像拆项链、换珠子一样处理文本”。

二、知识点讲解:字符串的“基础魔法”(30分钟)

模块1:认识字符串——文本的“数字编码”(5分钟)

  • 核心概念:字符串是用英文引号(""'')包裹的文本(如"Python"'你好'),本质是字符的有序集合(像排队的人,有固定顺序)。
  • 生活案例:微信消息、作文内容、网址都是字符串,编程处理字符串就是“让计算机帮我们整理文字”。

模块2:索引与切片——精准“提取”字符(15分钟)

  • 比喻
    • 索引=字符的“座位号”(从0开始,如"abc"a是0号,b是1号);
    • 切片=“截取一段项链”(如从0号到2号,取前3颗珠子)。
  • 代码演示
    python
    # 示例:处理名字“李晓华”
    name = "李晓华"
    # 1. 索引:获取单个字符(格式:变量[编号])
    first_char = name[0]  # 0号是第一个字符
    print("姓氏:", first_char)  # 输出:姓氏:李
    
    # 2. 切片:获取一段字符(格式:变量[开始:结束],结束编号不包含在内)
    last_two = name[1:3]  # 从1号到3号(不包含3号),即1和2号
    print("名字:", last_two)  # 输出:名字:晓华
  • 关键规则
    • 索引越界错误:若字符串长度为3(编号0-2),访问name[3]会报错(“项链只有3颗珠子,没有第4颗”);
    • 省略规则:name[:2]=从开头取到2号(不包含2号),name[1:]=从1号取到结尾。

模块3:拼接与替换——“重组”文本(10分钟)

  • 拼接:用+连接两个字符串(像把两条项链接成一条):
    python
    first_name = "张"
    last_name = "三"
    full_name = first_name + last_name  # 拼接
    print(full_name)  # 输出:张三
  • 替换replace(旧字符, 新字符)——替换指定字符(像把项链中的红珠子换成蓝珠子):
    python
    sentence = "我喜欢苹果,苹果很好吃"
    new_sentence = sentence.replace("苹果", "香蕉")  # 把“苹果”换成“香蕉”
    print(new_sentence)  # 输出:我喜欢香蕉,香蕉很好吃

三、练习题设计:分层任务+生活应用(25分钟)

基础任务(全员完成):“姓名处理器”

  • 要求:用索引、切片、拼接处理自己的姓名,输出“姓氏”“名字”“倒序姓名”(如“李晓华”→“华晓李”)。
  • 代码框架:
    python
    my_name = "______"  # 填写自己的姓名(2-3个字)
    # 1. 提取姓氏
    family_name = my_name[__]  # 补全索引
    # 2. 提取名字(除姓氏外的部分)
    given_name = my_name[__:__]  # 补全切片
    # 3. 倒序排列(提示:用[::-1]切片)
    reversed_name = my_name[::-1]
    # 4. 输出结果
    print(f"姓氏:{family_name},名字:{given_name},倒序:{reversed_name}")

进阶任务(选做):“句子变形器”

  • 要求:处理句子"Python is fun, I love Python",完成:
    1. 替换“Python”为“编程”;
    2. 提取“fun”(从第10到13号字符);
    3. 拼接“编程很有趣!”和提取的单词。

创意任务(挑战):“暗号生成器”

  • 用替换功能设计简单暗号(如把“a”换成“@”,“s”换成“$”),将自己的爱好写成暗号,让同桌解密。

教师支持:

  • 打开AI代码小助手,学生可提问“怎么提取第3个字?”“倒序切片怎么写?”,AI生成带注释的示例代码(如name[::-1]的解释:“从结尾到开头,步长为-1,即倒序”)。

四、讲解与互评:从“操作”到“逻辑”(15分钟)

  1. 错误分析:投屏典型错误(如索引从1开始、切片包含结束编号),引导学生用“字符项链”模型排查(“第1颗珠子编号是0还是1?”)。
  2. 创意展示:选2份“暗号生成器”作品,全班尝试解密,作者讲解替换规则,评选“最佳暗号设计师”。

五、总结与作业(5分钟)

课堂总结:

  • 字符串是“字符项链”,用""''定义;
  • 索引([编号])取单个字符,切片([开始:结束])取一段字符;
  • 拼接(+)和替换(replace())可重组文本。

课后作业:

  1. 用代码处理家人的姓名,输出“姓氏+‘先生/女士’”(如“王女士”);
  2. 设计一句包含3个“今天”的句子,用replace()把“今天”换成“明天”,观察结果。

教学理论支撑:

  1. 皮亚杰形式运算阶段理论:通过“字符项链”具象模型,帮助学生将抽象的字符串索引转化为“座位编号”的具体逻辑,逐步形成抽象思维。
  2. 维果茨基最近发展区:分层任务(基础→创意)匹配不同学生的现有能力,AI代码小助手作为“脚手架”,帮助学生解决切片规则等难点。
  3. 自我决定理论:“姓名处理”“暗号设计”关联学生生活,满足自主需求(设计个人规则)和胜任需求(完成解密挑战),激发内在动机。
  4. STEAM教育融合:结合技术(字符串操作)、语言(文本处理)、逻辑(规则设计),让编程成为文本分析与创意表达的工具。