04 - 控制流:if/for/while

想系统提升编程能力、查看更完整的学习路线,欢迎访问 AI Compass:https://github.com/tingaicompass/AI-Compass

仓库持续更新刷题题解、Python 基础和 AI 实战内容,适合想高效进阶的你。

04 - 控制流:if/for/while

学习目标: 掌握条件判断和循环


💻 代码示例

1. if条件判断

python 复制代码
x = 10

# 基本if
if x > 5:
    print("x大于5")

# if-else
if x > 15:
    print("x大于15")
else:
    print("x不大于15")

# if-elif-else
if x > 15:
    print("大")
elif x > 5:
    print("中")  # 输出这个
else:
    print("小")

# ⚠️ Python用缩进表示代码块,不用{}

2. for循环

python 复制代码
# 遍历列表
nums = [1, 2, 3, 4, 5]
for num in nums:
    print(num)

# range循环
for i in range(5):  # 0, 1, 2, 3, 4
    print(i)

# enumerate获取索引
for i, num in enumerate(nums):
    print(f"索引{i}: {num}")

# 遍历字典
scores = {"Alice": 90, "Bob": 85}
for name, score in scores.items():
    print(f"{name}: {score}")

# 嵌套循环
for i in range(3):
    for j in range(3):
        print(f"({i}, {j})", end=" ")
    print()

3. while循环

python 复制代码
# 基本while
count = 0
while count < 5:
    print(count)
    count += 1

# 链表遍历(常用模式)
current = head
while current:
    print(current.val)
    current = current.next

# 双指针
left, right = 0, len(nums) - 1
while left < right:
    # 处理逻辑
    left += 1
    right -= 1

4. break和continue

python 复制代码
# break:跳出循环
for i in range(10):
    if i == 5:
        break  # 循环到5就停止
    print(i)  # 0 1 2 3 4

# continue:跳过本次循环
for i in range(10):
    if i % 2 == 0:
        continue  # 跳过偶数
    print(i)  # 1 3 5 7 9

# 查找元素
nums = [1, 5, 3, 8, 2]
target = 8
found = False
for num in nums:
    if num == target:
        found = True
        break
if found:
    print("找到了")

5. pass:占位符

python 复制代码
# pass表示"什么都不做"
if x > 0:
    pass  # TODO: 以后实现
else:
    print("负数")

# 空函数
def todo():
    pass

# 空类
class MyClass:
    pass

🎯 在算法题中的应用

python 复制代码
# 第7课:移动零 - for + if
def moveZeroes(nums):
    slow = 0
    for fast in range(len(nums)):
        if nums[fast] != 0:
            nums[slow], nums[fast] = nums[fast], nums[slow]
            slow += 1

# 第24课:反转链表 - while
def reverseList(head):
    prev = None
    curr = head
    while curr:
        next_temp = curr.next
        curr.next = prev
        prev = curr
        curr = next_temp
    return prev

# 第9课:三数之和 - 嵌套循环 + 双指针
def threeSum(nums):
    nums.sort()
    result = []
    for i in range(len(nums) - 2):
        if i > 0 and nums[i] == nums[i-1]:
            continue  # 跳过重复
        left, right = i + 1, len(nums) - 1
        while left < right:
            total = nums[i] + nums[left] + nums[right]
            if total == 0:
                result.append([nums[i], nums[left], nums[right]])
                left += 1
                right -= 1
            elif total < 0:
                left += 1
            else:
                right -= 1
    return result

🏋️ 快速练习

练习1:找出1-100中的质数

点击查看答案

python 复制代码
for num in range(2, 101):
    is_prime = True
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        print(num, end=" ")

🎓 小结

if-elif-else 条件判断

for x in iterable 遍历

while condition 条件循环

break 跳出循环

continue 跳过本次

pass 占位符

常用模式:

python 复制代码
# 遍历数组
for i in range(len(nums)):
    ...

# 遍历索引和值
for i, val in enumerate(nums):
    ...

# 双指针
while left < right:
    ...

下一步 : 05-函数基础.md


如果这篇内容对你有帮助,推荐收藏 AI Compass:https://github.com/tingaicompass/AI-Compass

更多系统化题解、编程基础和 AI 学习资料都在这里,后续复习和拓展会更省时间。

相关推荐
先吃饱再说10 小时前
判断回文字符串,从一行代码到双指针优化
算法
黄敬峰13 小时前
深入理解算法核心:从递归思想、数组扁平化到快速排序
算法
得物技术14 小时前
从狂野代码到按目标生产:得物推荐 AI Harness 的工程化实践|AICon 演讲整理
人工智能·算法·架构
AI小老六18 小时前
SkillOpt 架构拆解:把 Skill 文本当参数,用执行轨迹训练 Agent
后端·算法·ai编程
胡萝卜术18 小时前
从“分数打架”到“排名投票”:为什么你的ChatBI必须用RRF?
算法·设计模式·面试
Asize19 小时前
初识DFS 与 BFS:递归、队列与图遍历
算法
罗西的思考1 天前
机器人 / 强化学习】HIL-SERL:人类在环驱动的具身智能进化框架
人工智能·算法·机器学习
CSharp精选营1 天前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
美团技术团队1 天前
LongCat 开源 VitaBench 2.0:长期动态智能体基准新标杆
人工智能·算法