第八节:条件判断与循环:解锁Python的逻辑控制能力

上一篇咱们吃透了字典这个"高效数据字典",在实战案例里,你应该已经接触到了for循环的简单用法------比如遍历字典统计学生成绩、计数文本中的单词。当时咱们只是"用了"循环,但没深入说清楚"为什么能用""还有哪些用法"。其实,循环和条件判断是Python的"逻辑控制核心",有了它们,你的代码才能摆脱"顺序执行"的死板,具备根据不同情况做不同决策、重复执行复杂操作的能力。

就像生活里的场景:"如果明天不下雨,就去公园跑步;如果下雨,就居家锻炼"------这是条件判断;"每天早上读30分钟书,重复30天"------这是循环。今天咱们就围绕思维导图"条件判断与循环"核心模块,从if-else条件判断的语法、嵌套用法,到for循环、while循环的实战技巧,再到循环控制语句(break/continue)的使用,把Python的逻辑控制能力彻底掌握。学会这些,你就能写出带"智能决策"的程序,比如成绩等级判断系统、密码验证程序、批量数据处理脚本等。

一、先搞懂:为什么需要逻辑控制?

在学具体语法前,先明确逻辑控制的核心价值------解决"顺序执行"无法覆盖的场景。

咱们之前写的代码,都是"从上到下依次执行"的顺序结构,比如定义一个字典、访问一个值、打印一个结果。但实际编程中,很多场景需要"判断条件再执行"或"重复执行某段代码":

  • 场景1:根据学生成绩判断等级(90分以上为A,80-89分为B......)------需要"条件判断";

  • 场景2:验证用户输入的密码,直到输入正确才放行------需要"循环";

  • 场景3:遍历字典中所有学生的成绩,计算平均分并筛选出优秀学生------需要"循环+条件判断"。

这些场景,顺序结构根本无法实现。而条件判断(if-else)和循环(for/while),就是Python为我们提供的"逻辑控制工具"。接下来,咱们逐个拆解这些工具的用法。

二、条件判断:if-else让程序"会做决策"

条件判断的核心逻辑是:"如果满足某个条件,就执行一段代码;如果不满足,就执行另一段代码"。Python中最基础的条件判断是if语句,进阶用法是if-else、if-elif-else嵌套。

1. 基础语法:if语句(单条件判断)

格式:

python 复制代码
if 条件表达式:
    满足条件时执行的代码块(缩进4个空格)

关键说明:

  • 条件表达式:结果必须是"布尔值(True/False)",可以是比较运算(>、<、==、!=等)、逻辑运算(and、or、not),或直接是布尔值;

  • 冒号(:):条件表达式后面必须加冒号,表示"接下来是满足条件时要执行的代码块";

  • 缩进:满足条件的代码块必须缩进(推荐4个空格),缩进是Python区分代码块的标志(不缩进会报错);

  • 执行逻辑:如果条件表达式结果为True,就执行缩进的代码块;如果为False,就跳过该代码块,执行后面的非缩进代码。

示例1:判断成绩是否及格(单条件)

python 复制代码
score = 85
if score >= 60:
    print(f"成绩{score},及格!")  # 缩进4个空格,满足条件时执行
print("判断结束")  # 不缩进,无论条件是否满足都会执行

# 输出:
# 成绩85,及格!
# 判断结束

示例2:判断字典中是否存在某个键(结合字典知识)

python 复制代码
person = {"name": "小明", "age": 20}
if "gender" not in person:  # 条件:person字典中不存在"gender"键
    person["gender"] = "未知"  # 满足条件,添加键值对
print(person)  # 输出:{'name': '小明', 'age': 20, 'gender': '未知'}

2. 进阶语法:if-else语句(双条件判断)

格式:

python 复制代码
if 条件表达式:
    满足条件时执行的代码块
else:
    不满足条件时执行的代码块(同样需要缩进)

执行逻辑:二选一执行------条件为True时执行if后的代码块,为False时执行else后的代码块,两者必选其一。

示例:判断成绩是否及格(双条件)

python 复制代码
score = 55
if score >= 60:
    print(f"成绩{score},及格!")
else:
    print(f"成绩{score},不及格,需要补考!")

# 输出:成绩55,不及格,需要补考!

示例:验证用户输入的用户名(结合input()函数)

python 复制代码
username = input("请输入用户名:")  # input()函数获取用户输入(返回字符串)
if username == "admin":
    print("欢迎管理员登录!")
else:
    print(f"欢迎普通用户{username}登录!")

# 测试1:输入admin → 输出:欢迎管理员登录!
# 测试2:输入user1 → 输出:欢迎普通用户user1登录!

3. 高级语法:if-elif-else语句(多条件判断)

格式:

python 复制代码
if 条件1:
    满足条件1时执行的代码块
elif 条件2:
    不满足条件1,但满足条件2时执行的代码块
elif 条件3:
    不满足条件1和2,但满足条件3时执行的代码块
...(可以有多个elif)
else:
    所有条件都不满足时执行的代码块(可选)

执行逻辑:逐个判断条件,一旦某个条件为True,就执行对应的代码块,然后跳过后续所有条件判断(不会再检查后面的条件);如果所有条件都为False,执行else后的代码块(如果有)。

示例:根据成绩判断等级(多条件)

python 复制代码
score = 92
if score >= 90:
    grade = "A"
elif score >= 80:  # 隐含条件:score < 90
    grade = "B"
elif score >= 70:  # 隐含条件:score < 80
    grade = "C"
elif score >= 60:  # 隐含条件:score < 70
    grade = "D"
else:  # 隐含条件:score < 60
    grade = "不及格"
print(f"成绩{score},等级:{grade}")  # 输出:成绩92,等级:A

避坑提醒:多条件判断的顺序很重要!如果把"score >= 60"放在最前面,那么所有≥60的成绩都会被判断为D,后面的条件永远不会执行。比如:

python 复制代码
# 错误示范:条件顺序颠倒
score = 92
if score >= 60:  # 92≥60,条件为True,执行后跳过后续条件
    grade = "D"
elif score >= 70:
    grade = "C"
...
print(grade)  # 输出:D(错误结果)

4. 嵌套条件判断:在条件块中再写条件

如果需要更复杂的判断逻辑,可以在if、elif、else的代码块中,再嵌套另一个条件判断(缩进要更深入一层,推荐4个空格)。

示例:判断成绩等级的同时,判断是否为优秀学员(≥90分为优秀,且语文、数学均≥90)

python 复制代码
scores = {"语文": 95, "数学": 88}
total_score = sum(scores.values())
average = total_score / len(scores)

if average >= 90:
    grade = "A"
    # 嵌套判断:是否两门课都≥90
    if scores["语文"] >= 90 and scores["数学"] >= 90:
        print(f"等级{grade},优秀学员!")
    else:
        print(f"等级{grade},继续加油!")
elif average >= 80:
    grade = "B"
    print(f"等级{grade},表现良好!")
else:
    grade = "C及以下"
    print(f"等级{grade},需要努力!")

# 输出:等级A,继续加油!(数学88<90,不满足优秀学员条件)

5. 条件表达式中的常用操作符

条件判断的核心是"条件表达式",常用的操作符有两类:比较操作符和逻辑操作符,结合使用能实现复杂条件判断。

(1)比较操作符(用于判断两个值的大小/相等关系)
操作符 含义 示例 结果
== 等于(判断两个值是否相等) 5 == 5 True
!= 不等于 5 != 3 True
> 大于 5 > 3 True
< 小于 5 < 3 False
>= 大于等于 5 >= 5 True
<= 小于等于 5 <= 3 False
in 判断元素是否在容器中(字符串、列表、字典等) "a" in "abc" True
not in 判断元素是否不在容器中 "d" not in "abc" True
(2)逻辑操作符(用于组合多个条件)
操作符 含义 示例 结果
and 逻辑与:所有条件都为True,结果才为True 5 > 3 and 2 < 4 True
or 逻辑或:至少一个条件为True,结果就为True 5 > 3 or 2 > 4 True
not 逻辑非:取反条件结果 not (5 > 3) False

示例:组合条件判断(判断是否为成年人且年龄在18-30岁之间)

python 复制代码
age = 25
if age >= 18 and age <= 30:
    print("青年成年人")
else:
    print("非青年成年人")

# 输出:青年成年人

三、循环结构:让程序"重复做事情"

循环结构的核心逻辑是:"重复执行一段代码,直到满足停止条件"。Python中常用的循环有两种:for循环和while循环,适用场景不同------for循环适合"已知循环次数"的场景(比如遍历列表、字典),while循环适合"未知循环次数"的场景(比如等待用户输入正确密码)。

1. for循环:遍历可迭代对象(已知循环次数)

格式:

python 复制代码
for 变量名 in 可迭代对象:
    循环体(每次迭代执行的代码块,缩进4个空格)

关键说明:

  • 可迭代对象:能被"逐个取出元素"的对象,比如字符串、列表、元组、字典、range()函数返回的序列等;

  • 变量名:每次迭代时,从可迭代对象中取出的元素会赋值给这个变量;

  • 执行逻辑:从可迭代对象中逐个取出元素,赋值给变量,然后执行循环体;直到所有元素都取完,循环结束。

(1)遍历列表/元组(最常用场景)
python 复制代码
# 遍历列表
students = ["小明", "小红", "小李"]
for student in students:
    print(f"欢迎{student}!")

# 输出:
# 欢迎小明!
# 欢迎小红!
# 欢迎小李!

# 遍历元组(和列表用法一致)
scores = (95, 88, 92)
total = 0
for score in scores:
    total += score  # 累加成绩
average = total / len(scores)
print(f"平均分:{average}")  # 输出:平均分:91.66666666666667
(2)遍历字典(三种常用方式)

结合第7章字典的keys()、values()、items()方法,能实现字典的不同遍历需求:

python 复制代码
person = {"name": "小明", "age": 20, "height": 1.75}

# 方式1:遍历所有键
for key in person.keys():
    print(f"键:{key}")

# 方式2:遍历所有值
for value in person.values():
    print(f"值:{value}")

# 方式3:遍历所有键值对(拆包,最常用)
for key, value in person.items():
    print(f"{key}: {value}")

# 输出:
# 键:name
# 键:age
# 键:height
# 值:小明
# 值:20
# 值:1.75
# name: 小明
# age: 20
# height: 1.75
(3)遍历字符串(逐个字符)
python 复制代码
text = "Python"
for char in text:
    print(f"字符:{char}")

# 输出:
# 字符:P
# 字符:y
# 字符:t
# 字符:h
# 字符:o
# 字符:n
(4)用range()函数生成序列(指定循环次数)

range()函数能生成一个"整数序列",专门用于for循环指定循环次数,格式:range(起始值, 结束值, 步长)(起始值默认0,步长默认1,结束值不包含在内)。

python 复制代码
# 示例1:range(5) → 生成0-4的序列(默认起始0,步长1)
for i in range(5):
    print(i)  # 输出:0、1、2、3、4

# 示例2:range(1, 6) → 生成1-5的序列(起始1,结束6,不包含6)
for i in range(1, 6):
    print(i)  # 输出:1、2、3、4、5

# 示例3:range(1, 10, 2) → 生成1-9的奇数序列(步长2,每次加2)
for i in range(1, 10, 2):
    print(i)  # 输出:1、3、5、7、9

# 示例4:用range()遍历列表(通过索引)
students = ["小明", "小红", "小李"]
for i in range(len(students)):  # len(students)=3 → range(3) → 0、1、2
    print(f"索引{i}:{students[i]}")
# 输出:
# 索引0:小明
# 索引1:小红
# 索引2:小李

2. while循环:满足条件就循环(未知循环次数)

格式:

python 复制代码
while 条件表达式:
    循环体(条件为True时执行的代码块,缩进4个空格)
    (可选)更新条件的代码(避免无限循环)

执行逻辑:

  1. 判断条件表达式是否为True;

  2. 如果为True,执行循环体,然后回到步骤1重新判断;

  3. 如果为False,循环结束,执行后面的代码。

核心注意事项:while循环必须在循环体中包含"更新条件的代码",否则条件永远为True,会导致"无限循环"(程序卡死,只能强制结束)。

(1)基础示例:循环打印1-5的数字
python 复制代码
i = 1  # 初始化变量(条件的一部分)
while i <= 5:  # 条件:i≤5
    print(i)
    i += 1  # 更新条件:i自增1(避免无限循环)

# 输出:1、2、3、4、5
(2)实战示例:密码验证(未知循环次数)

需求:让用户输入密码,直到输入正确的密码("123456")才停止循环。

python 复制代码
correct_password = "123456"
while True:  # 条件为True,无限循环(需要在循环体内用break终止)
    password = input("请输入密码:")
    if password == correct_password:
        print("密码正确,登录成功!")
        break  # 终止循环(后面会讲)
    else:
        print("密码错误,请重新输入!")

# 测试:
# 输入:123 → 输出:密码错误,请重新输入!
# 输入:456 → 输出:密码错误,请重新输入!
# 输入:123456 → 输出:密码正确,登录成功!(循环结束)

说明:这里用了while True创建"无限循环",然后在循环体内用break语句终止循环,这是while循环的常用技巧(适合"直到某个条件满足才停止"的场景)。

(3)避坑:无限循环的后果
python 复制代码
# 错误示范:没有更新条件,无限循环
i = 1
while i <= 5:
    print(i)  # i永远是1,条件永远为True,会一直打印1,程序卡死

# 解决方法:添加i += 1更新条件

3. 循环嵌套:在循环体内再写循环

如果需要实现更复杂的重复逻辑,可以在循环体内嵌套另一个循环(缩进要更深入一层)。比如"打印99乘法表""遍历二维列表"等场景。

示例1:打印99乘法表(外层循环控制行数,内层循环控制列数)

python 复制代码
# 外层循环:控制行数(1-9)
for i in range(1, 10):
    # 内层循环:控制列数(1-i,比如第3行打印1×3、2×3、3×3)
    for j in range(1, i+1):
        print(f"{j}×{i}={j*i}", end="\t")  # end="\t":用制表符分隔,保持对齐
    print()  # 换行(每打印完一行,换一行)

# 输出:
# 1×1=1	
# 1×2=2	2×2=4	
# 1×3=3	2×3=6	3×3=9	
# ...(直到9×9=81)

示例2:遍历二维列表(列表中嵌套列表)

python 复制代码
# 二维列表:存储3个学生的2门课成绩
scores = [
    [95, 88],  # 小明:语文、数学
    [82, 78],  # 小红:语文、数学
    [75, 68]   # 小李:语文、数学
]

# 外层循环:遍历每个学生的成绩列表
for student_scores in scores:
    total = 0
    # 内层循环:遍历每个学生的两门课成绩
    for score in student_scores:
        total += score
    average = total / len(student_scores)
    print(f"平均分:{average}")

# 输出:
# 平均分:91.5
# 平均分:80.0
# 平均分:71.5

四、循环控制语句:break与continue(灵活控制循环)

默认情况下,for循环会遍历完所有元素才结束,while循环会直到条件为False才结束。但有时我们需要"提前终止循环"或"跳过当前迭代,直接进入下一次循环",这就需要用到break和continue语句。

1. break语句:终止整个循环

作用:当执行到break语句时,立即终止当前所在的循环(无论循环是否还有未执行的迭代),然后跳转到循环后面的代码执行。

示例1:for循环中用break(找到目标元素后终止循环)

python 复制代码
students = ["小明", "小红", "小李", "小张"]
target = "小李"

for student in students:
    if student == target:
        print(f"找到目标:{student}")
        break  # 找到后立即终止循环
    print(f"当前遍历:{student}")

# 输出:
# 当前遍历:小明
# 当前遍历:小红
# 找到目标:小李(循环终止,不再遍历小张)

示例2:while循环中用break(之前的密码验证案例已用到)

python 复制代码
correct_password = "123456"
while True:
    password = input("请输入密码:")
    if password == correct_password:
        print("登录成功!")
        break  # 终止无限循环
    else:
        print("密码错误,重试!")

2. continue语句:跳过当前迭代,进入下一次循环

作用:当执行到continue语句时,立即跳过当前迭代的剩余代码,直接进入下一次迭代(循环不会终止,只是跳过当前次)。

示例:打印1-10中的奇数(跳过偶数)

python 复制代码
for i in range(1, 11):
    if i % 2 == 0:  # 如果是偶数
        continue  # 跳过当前迭代,不执行后面的print语句
    print(i)  # 只打印奇数

# 输出:1、3、5、7、9

break与continue的区别:break是"终止整个循环",循环直接结束;continue是"跳过当前次迭代",循环继续执行下一次。

3. 循环中的else语句(可选)

Python中,for循环和while循环都可以搭配else语句使用,else块会在"循环正常结束"时执行(如果循环被break终止,则else块不会执行)。

格式:

python 复制代码
# for循环+else
for 变量 in 可迭代对象:
    循环体
else:
    循环正常结束时执行的代码块

# while循环+else
while 条件:
    循环体
else:
    循环正常结束时执行的代码块

示例1:for循环正常结束,执行else块

python 复制代码
for i in range(3):
    print(i)
else:
    print("循环正常结束,执行else块")

# 输出:
# 0
# 1
# 2
# 循环正常结束,执行else块

示例2:for循环被break终止,不执行else块

python 复制代码
for i in range(3):
    if i == 1:
        break
    print(i)
else:
    print("循环正常结束,执行else块")

# 输出:0(循环被break终止,else块不执行)

实用场景:判断目标元素是否存在于列表中(找不到时执行else块)

python 复制代码
students = ["小明", "小红", "小李"]
target = "小张"

for student in students:
    if student == target:
        print(f"找到{target}")
        break
else:
    print(f"未找到{target}")

# 输出:未找到小张

五、实战案例:综合运用条件判断与循环

学完所有知识点,用两个综合案例把内容串起来,巩固条件判断和循环的结合使用。

案例1:学生成绩管理系统(基础版)

需求

  1. 用字典存储3个学生的姓名和各科成绩;

  2. 遍历每个学生,计算平均分;

  3. 根据平均分判断等级(A/B/C/D);

  4. 筛选出平均分≥80分的学生,生成新字典并打印。

python 复制代码
# 1. 存储学生成绩(字典嵌套列表)
student_scores = {
    "小明": [95, 88, 92],
    "小红": [82, 78, 85],
    "小李": [75, 68, 72]
}

# 2. 遍历学生,计算平均分、判断等级,筛选优秀学生
excellent_students = {}  # 存储平均分≥80的学生

for name, scores in student_scores.items():
    total = sum(scores)
    average = round(total / len(scores), 1)  # 保留1位小数
    
    # 3. 条件判断等级
    if average >= 90:
        grade = "A"
    elif average >= 80:
        grade = "B"
        excellent_students[name] = {"average": average, "grade": grade}  # 筛选优秀学生
    elif average >= 70:
        grade = "C"
    else:
        grade = "D"
    
    print(f"姓名:{name},平均分:{average},等级:{grade}")

# 4. 打印优秀学生
print("\n平均分≥80的优秀学生:")
for name, info in excellent_students.items():
    print(f"{name}:平均分{info['average']},等级{info['grade']}")

# 输出:
# 姓名:小明,平均分:91.7,等级:A
# 姓名:小红,平均分:81.7,等级:B
# 姓名:小李,平均分:71.7,等级:C
# 
# 平均分≥80的优秀学生:
# 小红:平均分81.7,等级B

案例2:猜数字游戏(进阶版)

需求

  1. 程序随机生成一个1-100之间的整数(用random模块);

  2. 用户多次输入数字猜答案,程序提示"太大""太小";

  3. 猜对后,提示"猜对了"并显示猜测次数;

  4. 如果猜测次数≤5次,提示"你太厉害了!";否则提示"继续加油!"。

python 复制代码
import random  # 导入随机数模块

# 1. 随机生成1-100的整数
secret_number = random.randint(1, 100)
guess_count = 0  # 记录猜测次数

print("欢迎来到猜数字游戏!请猜1-100之间的整数:")

# 2. 循环猜数字(未知次数,用while True)
while True:
    # 获取用户输入(注意:input()返回字符串,需要转成整数)
    guess_input = input("请输入你猜的数字:")
    # 判断输入是否为整数(避免用户输入非数字导致报错)
    if not guess_input.isdigit():
        print("请输入有效的整数!")
        continue  # 跳过当前迭代,重新输入
    
    guess_number = int(guess_input)
    guess_count += 1  # 猜测次数+1
    
    # 3. 条件判断:提示太大/太小/猜对
    if guess_number > secret_number:
        print("太大了!再试试小一点的数字。")
    elif guess_number < secret_number:
        print("太小了!再试试大一点的数字。")
    else:
        # 猜对了,终止循环
        print(f"\n恭喜你,猜对了!答案是{secret_number}")
        print(f"你一共猜了{guess_count}次")
        # 4. 判断猜测次数等级
        if guess_count <= 5:
            print("你太厉害了!")
        else:
            print("继续加油!")
        break

# 测试示例:
# 欢迎来到猜数字游戏!请猜1-100之间的整数:
# 请输入你猜的数字:50
# 太小了!再试试大一点的数字。
# 请输入你猜的数字:75
# 太大了!再试试小一点的数字。
# 请输入你猜的数字:63
# 恭喜你,猜对了!答案是63
# 你一共猜了3次
# 你太厉害了!

六、注意事项与避坑指南

新手用条件判断和循环时,容易踩一些坑,这里总结了5个核心注意事项,帮你避开。

1. 缩进要规范(Python的"灵魂")

Python用缩进区分代码块,条件判断和循环的代码块必须缩进(推荐4个空格),缩进不一致会报错。比如:

python 复制代码
# 错误示范:缩进不一致
if 5 > 3:
    print("条件成立")
   print("缩进少了1个空格")  # 报错:IndentationError: unexpected indent

# 正确做法:所有代码块缩进4个空格,保持一致

2. 避免无限循环

while循环必须包含"更新条件的代码",for循环如果遍历无限迭代对象(比如itertools.count())也会无限循环。如果不小心写出无限循环,按Ctrl+C强制终止程序。

3. 比较操作符"=="和赋值操作符"="的区别

新手容易把"=="(判断相等)写成"="(赋值),导致条件判断失效。比如:

python 复制代码
# 错误示范:用=代替==
if score = 60:  # 报错:can't assign to conditional expression(不能在条件中赋值)
    print("及格")

# 正确做法:用==判断相等
if score == 60:
    print("及格")

4. 循环嵌套的缩进层次要清晰

嵌套循环的缩进层次要分明(外层循环4个空格,内层循环8个空格),否则容易混淆代码块归属,导致逻辑错误。

5. 处理用户输入时,注意数据类型转换

input()函数返回的是字符串类型,如果需要用用户输入的内容进行数值比较(比如猜数字游戏),必须先转成整数或浮点数,否则会报错。比如:

python 复制代码
# 错误示范:直接用字符串比较数值
guess = input("请输入数字:")
if guess > 50:  # 报错:'str' and 'int' instances can't be compared
    print("太大")

# 正确做法:转成整数后比较
guess = int(input("请输入数字:"))
if guess > 50:
    print("太大")

结尾:逻辑控制搞定了,该学"函数"了

今天咱们彻底掌握了Python的逻辑控制核心------条件判断(if-else)和循环(for/while),还有灵活控制循环的break/continue语句。现在你已经能写出带"智能决策"和"重复执行"功能的程序了,比如成绩管理系统、猜数字游戏、密码验证程序等,这些都是实际开发中常用的基础功能。

但你有没有发现一个问题:如果需要多次使用"计算平均分""判断成绩等级"这些功能,每次都要重新写一遍代码,非常繁琐。比如在多个地方都需要判断成绩等级,就需要重复写if-elif-else那段代码,代码冗余且难以维护。

这时候,"函数(function)"就该登场了。函数能把"一段实现特定功能的代码块"封装起来,起一个名字,后续需要使用时,直接调用这个名字即可,不用重复写代码。下一篇咱们就进入思维导图的"函数"模块,学习函数的定义、调用、参数传递、返回值等核心知识点,解锁Python的"代码复用"能力------学会函数,你就能写出更简洁、更易维护的代码,为后续学习复杂项目打下基础。如果今天的循环嵌套、break/continue用法有没搞懂的地方,随时告诉我,咱们再拆解一遍!

相关推荐
gf13211112 小时前
python_生成RPA运行数据报告
windows·python·rpa
java1234_小锋2 小时前
什么是Java可重入锁?
java·开发语言
小尧嵌入式2 小时前
【Linux开发五】条件变量|信号量|生产者消费者模型|信号概念和常见信号|信号的使用和处理
linux·运维·服务器·开发语言·c++·嵌入式硬件
不会c+2 小时前
Spring详解(二)IOC控制反转
java·开发语言
翔云1234562 小时前
golang中使用 sort.Interface 实现复杂多级排序
开发语言·后端·golang
2301_805962932 小时前
树莓派的一些问题记录-1:usbboot仓库
python·gitee
深蓝电商API2 小时前
Selenium 动作链 ActionChains 高级用法
爬虫·python·selenium
「QT(C++)开发工程师」2 小时前
C++设计模式
开发语言·c++·设计模式
喵手2 小时前
Python爬虫零基础入门【第八章:项目实战演练·第2节】项目 2:信息聚合站 Demo(列表+详情+增量+质量报告)!
爬虫·python·爬虫实战·python爬虫工程化实战·零基础python爬虫教学·爬虫项目演练·信息聚合站