第三课:数字的戏法和文字的秘密 – 运算符与字符串操作

  • 时长: 90 分钟
  • 教学目标:
    • 巩固基本的数学运算符号(加减乘除)。
    • 学习特殊的数学运算:整除 (//) 和取余数 (%),并知道它们有什么用(比如判断奇偶数,分解数字)。
    • 学会连接文字(字符串)和重复文字。
    • 了解文字的位置编号(索引),学会用编号找到文字里的某个字。
    • 学会用切片取出文字里的某一部分。
    • 学习一些常用的文字“技能”(字符串方法),比如变大写、变小写、找文字长度。

课程内容

1. 复习与引入 (10 分钟)

  • 复习: 快速回顾变量、数据类型、input()print() 的使用。
  • 提出问题: 老师提问:“我们用 + 算过加法,用 * 算过乘法。如果我想知道 10 除以 3 的余数是多少?如果我想把 5 个 * 连在一起打印出来?如果我有一个很长的句子,我只想取出里面的前三个字怎么办?”
  • 引出新知识: 这就需要学习更多的数学运算符,以及专门用来处理文字(字符串)的方法。

2. 更多数学运算符 (15 分钟)

  • 复习基础: + (加), - (减), * (乘), / (除)。演示 / 除法的结果通常是小数。
  • 整除 //: 讲解整除运算符 //,它只保留除法结果的整数部分,小数部分直接去掉。
    print(10 / 3)  # 结果大概是 3.333...
    print(10 // 3) # 结果是 3
    print(7 // 2)  # 结果是 3
    
  • 取模 %: 讲解取模运算符 %,它用来计算除法后的余数
    print(10 % 3) # 10除以3余1,结果是 1
    print(7 % 2)  # 7除以2余1,结果是 1 (判断奇数很有用!)
    print(8 % 2)  # 8除以2余0,结果是 0 (判断偶数很有用!)
    print(15 % 4) # 15除以4余3,结果是 3
    
  • 应用举例: 演示如何使用 % 2 来判断一个数字是奇数还是偶数。演示如何使用 // 10% 10 来分别取出两位数的十位和个位。
    num = 45
    shi_wei = num // 10 # 十位
    ge_wei = num % 10  # 个位
    print(num, "的十位是", shi_wei, "个位是", ge_wei)
    
  • 幂运算 **: 简单介绍幂运算,表示一个数的几次幂。
    print(2 ** 3) # 2的3次方,结果是 8
    print(5 ** 2) # 5的2次方,结果是 25
    
  • 动手实践: 学生尝试计算不同数字的整除和取余数,尝试用 % 2 判断自己输入的数字的奇偶性。

3. 文字的连接和重复 (10 分钟)

  • 连接 +: 文字(字符串)可以用 + 符号连接起来。
    hello = "你好"
    name = "小明"
    greeting = hello + ", " + name + "!"
    print(greeting)
    
  • 重复 *: 文字可以用 * 符号和一个整数相乘,来把文字重复多次。
    print("*" * 10) # 打印 10 个星号
    print("哈哈" * 3) # 打印 3 次哈哈
    
  • 动手实践: 学生用 + 连接不同的文字或变量,用 * 打印一些简单的图案线。

4. 文字的位置编号 – 索引 (15 分钟)

  • 概念解释: 在一个字符串里,每个字符都有一个位置编号,就像排队一样。这个编号叫做索引
  • 重要规则: 索引是从 0 开始的! 第一个字符的索引是 0,第二个是 1,以此类推。
  • 获取字符: 使用方括号 [] 和索引号来获取某个位置的字符。
    word = "Python"
    print(word[0]) # 第一个字符 'P'
    print(word[1]) # 第二个字符 'y'
    print(word[5]) # 第六个字符 'n'
    # print(word[6]) # 错误!索引超出了范围
    
  • 负数索引: 索引也可以是负数,-1 代表最后一个字符,-2 代表倒数第二个,以此类推。
    word = "Python"
    print(word[-1]) # 最后一个字符 'n'
    print(word[-2]) # 倒数第二个字符 'o'
    
  • 动手实践: 学生用自己的名字或一个短语进行索引练习,尝试获取第一个字、最后一个字、中间的某个字。

5. 取出文字的一部分 – 切片 (15 分钟)

  • 概念解释: 切片就是从一个字符串里取出一部分连续的字符,形成一个新的子字符串。
  • 语法: 使用方括号 [:],里面写开始位置和结束位置,还可以指定步长。 [开始索引:结束索引:步长]
  • 规则:
    • 开始索引:切片包含这个位置的字符。
    • 结束索引:切片不包含这个位置的字符!切片会到结束索引的前一个位置停止。
    • 步长:每隔多少个字符取一个(默认是 1)。
  • 示例:
    text = "abcdefg"
    print(text[0:3])   # 从索引0开始,到索引3前面停止 (包含0,1,2),结果是 "abc"
    print(text[1:5])   # 从索引1开始,到索引5前面停止 (包含1,2,3,4),结果是 "bcde"
    print(text[:4])    # 如果省略开始索引,默认从开头 (索引0) 开始。结果是 "abcd"
    print(text[2:])    # 如果省略结束索引,默认到结尾。结果是 "cdefg"
    print(text[:])     # 如果都省略,就是复制整个字符串。结果是 "abcdefg"
    print(text[::2])   # 步长为2,每隔一个取一个 (0, 2, 4, 6)。结果是 "aceg"
    print(text[1::2])  # 从索引1开始,步长为2 (1, 3, 5)。结果是 "bdf"
    print(text[::-1])  # 步长为-1,表示倒着取,用来反转字符串!结果是 "gfedcba"
    
  • 动手实践: 学生用不同的字符串进行切片练习,尝试取出前几个字、后几个字、中间一部分,以及反转字符串。

6. 文字的“技能” – 常用字符串方法 (10 分钟)

  • 概念解释: 字符串有很多内置的功能,叫做“方法”,可以用 字符串变量.方法名() 的方式来调用。
  • 常用方法演示:
    • len(字符串): 这是一个函数,不是方法,用来获取字符串的长度(有多少个字符)。
      word = "Python"
      print(len(word)) # 结果是 6
      
    • .upper(): 把字符串里的字母都变成大写。
      text = "Hello"
      print(text.upper()) # 结果是 "HELLO"
      
    • .lower(): 把字符串里的字母都变成小写。
      text = "WORLD"
      print(text.lower()) # 结果是 "world"
      
    • .strip(): 去掉字符串开头和结尾的空格或换行符等空白字符。
      text = "  你好世界  "
      print(text.strip()) # 结果是 "你好世界"
      
    • .find(子字符串): 查找某个子字符串第一次出现的位置(索引),如果找不到就返回 -1。
      sentence = "我喜欢编程,喜欢Python"
      print(sentence.find("喜欢")) # 结果是 1 (第一个'喜'字的索引)
      print(sentence.find("Java")) # 结果是 -1 (找不到)
      
  • 动手实践: 学生使用这些方法处理自己输入的字符串,比如让输入的名字变成大写,去掉输入句子两边的空格。

7. 课堂练习 (15 分钟)

让学生独立完成以下练习:

  • 练习 1: 编写一个程序,询问用户一个两位数,然后分别打印出它的十位和个位数字。(提示:使用 // 10% 10)。别忘了 input() 是字符串,需要转换为数字。
    # 在这里写你的代码
    num_str = input("请输入一个两位数:")
    num = int(num_str) # 转换为整数
    # TODO: 计算十位和个位
    # TODO: 打印结果
    
  • 练习 2: 编写一个程序,询问用户一个英文单词,然后打印出这个单词的字母个数、第一个字母、最后一个字母以及全部大写的单词。
  • 练习 3: 编写一个程序,询问用户一个句子,然后打印出这个句子反转后的结果。

8. 总结与提问 (10 分钟)

  • 回顾: 回顾本节课内容:整除 //、取余 % 的用法和作用,字符串连接 +、重复 *,字符串索引 [] (从0开始,负数索引),字符串切片 [:] (包头不包尾),常用字符串方法 len(), .upper(), .lower(), .strip(), .find()
  • 提问:
    • 17 % 5 的结果是多少?
    • 如何获取字符串 “Python” 的字母 ‘h’?
    • 如何获取字符串 “abcdef” 的 “bcd” 部分?
    • "apple".upper() 的结果是什么?
  • 答疑: 回答学生问题。

9. 布置课后作业 (5 分钟)

  • 作业 1: 编写一个程序,询问用户一个四位数,然后分别打印出它的个、十、百、千位数字。(提示:结合使用 //%)。
  • 作业 2: 编写一个程序,询问用户一个字符串,然后打印出该字符串的长度,以及由该字符串的前两个字符和后两个字符组成的新的字符串。(例如:输入 “colorful”,输出 “coful”)。
  • 作业 3: (选做) 编写一个简单的密码检查程序。询问用户设置一个密码(字符串)。检查密码的长度是否大于等于 6。如果密码包含空白字符(例如空格),也认为不符合要求(提示:可以使用 .find() 查找空格 " ".find(...) 是否是 -1)。如果符合要求就打印“密码设置成功”,否则打印“密码不符合要求”。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。