适合对象:零编程基础的大一新生 课程目标:掌握Python切片的核心语法,能通过切片操作快速提取、修改和反转序列数据(如列表、字符串)。
1.1 什么是切片?
1.2 切片基本语法
核心公式:序列[start:stop:step]
start:起始索引(包含),默认为0(从开头开始)。
stop:结束索引(不包含),默认为序列长度(到末尾结束)。
step:步长,默认为1(逐个取元素)。
示例演示:
# 列表切片fruits = ["苹果", "香蕉", "橙子", "葡萄", "西瓜"]print(fruits[1:3]) # 输出: ["香蕉", "橙子"](索引1到2)# 字符串切片text = "Python编程真有趣"print(text[3:6]) # 输出: "编程真"(索引3到5)1.3 动手实验
print("Hello World"[6:10])2.1 省略号(:)的妙用
省略起始索引:从开头切到指定位置。
nums = [0, 1, 2, 3, 4, 5]print(nums[:3]) # 输出: [0, 1, 2](前3个元素)省略结束索引:从指定位置切到末尾。
print(nums[3:]) # 输出: [3, 4, 5](后3个元素)全选切片:nums[:] 复制整个列表(不修改原始数据)。
2.2 负索引——从后往前数
规则:-1表示最后一个元素,-2表示倒数第二个,依此类推。
示例:
text = "Python"print(text[-3:]) # 输出: "hon"(最后3个字符)print(text[:-3]) # 输出: "Pyt"(前3个字符)2.3 互动练习
-1。print("12345"[::-1])3.1 数据提取与清洗
任务:从班级成绩列表中提取后5名学生的成绩(假设列表已排序)。
scores = [85, 92, 78, 65, 90, 70, 88, 75, 60, 95]last_five = scores[-5:] # 提取最后5个成绩print(last_five) # 输出: [70, 88, 75, 60, 95]3.2 步长应用——跳跃式取数
任务:提取1到10中所有奇数。
odd_nums = [i for i in range(1, 11) if i % 2 != 0] # 传统方法odd_nums_slice = list(range(1, 11, 2)) # 切片方法(步长=2)print(odd_nums_slice) # 输出: [1, 3, 5, 7, 9]3.3 综合挑战
任务:给定一个日期字符串“2025-10-30”,提取年、月、日。
提示:使用split()分割字符串后,再结合切片。
参考答案:
date = "2025-10-30"year, month, day = date.split("-") # 分割为["2025", "10", "30"]print(f"年: {year}, 月: {month}, 日: {day}")4.1 常见错误解析
索引越界:切片不会报错,而是返回空列表或字符串。
nums = [1, 2, 3]print(nums[3:5]) # 输出: [](无元素)步长为0:会触发ValueError(步长不能为0)。
4.2 最佳实践
优先使用切片:修改序列时,切片比循环更高效(如替换列表部分元素)。
nums = [1, 2, 3, 4, 5]nums[1:3] = [10, 20] # 将索引1到2的元素替换为[10, 20]print(nums) # 输出: [1, 10, 20, 4, 5]结合*运算符:快速生成重复序列。
repeated = [0] * 5# 生成[0, 0, 0, 0, 0][start:stop:step]。[10, 20, 30, 40, 50],用切片生成[20, 40](偶数索引元素)。课程特色: