第三课:数字的戏法和文字的秘密 – 运算符与字符串操作
- 时长: 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)。如果符合要求就打印“密码设置成功”,否则打印“密码不符合要求”。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)