当前位置:首页>python>学Python4️⃣2️⃣ continue

学Python4️⃣2️⃣ continue

  • 2026-09-08 04:51:24
学Python4️⃣2️⃣ continue

学Python4️⃣2️⃣ continue

作者:小号🎺

今天,我们分享关键字 continue 。

如同 break ,continue 也是必须和 for/while 循环体搭配使用。

和 break 一样,continue 也是针对循环的过程做一些临时的调整。

不同的是,continue 只是“跳出”本次循环,但不跳出循环体,然后从下一步循环继续。(所以叫 continue )

简单说,continue 就是“跳过(本轮循环中)余下的操作”的意思。跳过的英语单词是 skip 。但 skip 有可能意味着当前这一步循环被完全“跳过”,但实际上当前这一步循环的操作已经开始了,已经进行到一半了,需要临时调整一下。这样看,还是叫 continue 更准确。

日常操作中,经常用 continue 来实现如下的操作“目的”:

回避不好的数字

放 xx 一马,手下留情

已经做过则跳过,简称“去重”

比如:

例① for + continue

例② while + continue

类似的案例生活中还可以找到许多。比如

例③ 人们常说的“兔子不吃窝边草”

# 兔子不吃窝边草places = ["窝边", "洞口", "后院", "蕉下", "门外", "东边", "西边", "南边", "北边"]# 判断一个位置是不是兔子窝的邻居(窝边草)def is_neighbors_to(place, home="窝边"):    # 定义哪些位置算邻居    neighbor_places = ["窝边", "洞口", "后院", "蕉下", "门外"]    return place in neighbor_placesprint("兔子觅食中……")for p in places:    # 如果是邻居区域,跳过不吃    if is_neighbors_to(p):        print(f"{p} 太近了,不吃!continue 跳过")        continue    print(f"在 {p} 开心吃草~")

这个“窝边草”的例子,也可以改成 while 版的。朋友们可以尝试一下。

例④ 受委托在朋友圈里发派对请柬,黑名单里的人不发。

# 所有熟人名单friends = [    "张三", "李四", "王五", "赵六",    "钱七", "孙八", "周九", "吴十"]# 黑名单:这些人不邀请black_list = ["王五", "钱七"]# 电影票 / 请柬数量invites = 4sent = 0print("遍历朋友圈:")# 一个个看过去for person in friends:    # 已满,不再发    if sent >= invites:        break    # 如果在黑名单里,跳过,不发    if person in black_list:        continue    # 不在黑名单 → 发    print(f"给 {person} 发一份请柬")    sent += 1

有趣的是,循环语句 for ... 、while ... 经常相互嵌套,循环语句里面 continue 和 break 也经常轮番出现,搭配使用。

例⑤ 学校里排课表时或许会经常使用 continue 、break 。

import randomcourses = ['数学', '语文', '英语', '体育', '美术']days = [1, 2, 3, 4, 5]      # 周一 ~ 周五TT = []   # TT: timetablefor i in range(5):    TT.append(['', '', ''])def have_course(course, day):    if course in TT[day-1]:        return Truedef get_tt_space_today(day):    today_space = ''    for i in range(3):        if TT[day-1][i] == '':            today_space += str(i)    return today_spacedef get_tt_space_total():    tt_space_total = 0    for i in range(5):        for j in range(3):            if TT[i][j] == '':                tt_space_total += 1    return tt_space_totaltt_space = 15    # timetable_space 空白的课表位置while tt_space > 1:    for day in days:        course_index = random.choice('01234')        course = courses[int(course_index)]        if have_course(course, day):            continue        else:            tt_space_today = get_tt_space_today(day)            # print(tt_space_today)            if len(tt_space_today) > 0:                choice = random.choice(tt_space_today)                TT[day-1][int(choice)] = course            else:                break    ttleft = get_tt_space_total()    #print(ttleft)    if ttleft < 1:        break# 交换 行、列,按通常的习惯 打印 课程表for i in range(3):    print(TT[0][i], TT[1][i], TT[2][i], TT[3][i], TT[4][i])

这份代码实现了一些最简单的排课表功能,大家可以看看如何进一步完善它。(代码中使用了一种“双重列表”来储存课表数据,可能比较生疏,要注意一下。实操截图附后。)

今天就分享到这里。欢迎大家到评论区交流。

作业:

① while 版 兔子不吃窝边草

附录:

① 作业:while 版 兔子不吃窝边草

import randomplaces = ["窝边", "洞口", "后院", "蕉下", "门外", "东边", "西边", "南边", "北边"]def is_neighbors_to(place):    return place in ["窝边", "洞口", "后院", "蕉下", "门外"]# 一直选,直到选到不是窝边的while True:    pick = random.choice(places)    # 如果是邻居,跳过,重新选    if is_neighbors_to(pick):        continue    print(f"兔子现在在:{pick} 吃草")    break
附录:
② 实操:一份简单的课程表

#Python#学Python#大白话#小号#大白小号学Python#原创

最新文章

随机文章