第 18 课
找东西和修 bug
1 / 1 · ← → 翻页
第 18 课
从左到右找名字,读懂报错。

学习目标
学会线性查找。
读懂报错,一次补上一处。
情境

书架没排好,一本本看。
作文发下来,红笔在最后一行附近。
想一想
没排好的书,不好对半折。
先学一本本找。
例题

shelf = ["小明", "小红", "小派"]
target = "小红"
i = 0
found = False
while i < len(shelf):
if shelf[i] == target:
found = True
break
i = i + 1
print(found, i if found else -1)想一想

每走一步,问一句:是不是它?
这叫线性查找。
例题

for i in range(len(shelf)):
if shelf[i] == target:
print(i)
break试一试

for i, book in enumerate(shelf):
if book == target:
print(i)情境

排好序的,可以猜中间。
这节课只认模板,不自己发明。
想一想
二分查找要先排好序。
乱书架,先别折半。
例题

print("你好例题

if score >= 60
print("及格")想一想

做一做

请学生只改一处,再运行。
做一做

if shelf[i] == target:
found = True
# 这里停住请学生说出空处该填什么。
小结

练一练

练一练
找到目标以后,想立刻停住。
填 break,还是 continue?
下一课
Python 主线,先到这儿。
