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 学习资料都在这里,后续复习和拓展会更省时间。

相关推荐
老歌老听老掉牙28 分钟前
两个平面旋转平移坐标系间的坐标变换关系
python·算法·平面·旋转·平移
W.A委员会31 分钟前
PID与PID整定
python·算法
冷雨夜中漫步1 小时前
YOLO快速入门——(2)YOLO V26安装与快速入门
图像处理·算法·yolo·计算机视觉
longlongzihan1 小时前
LeetCode 41. 缺失的第一个正数:从基础解法到原地哈希
c++·算法·leetcode
Omics Pro1 小时前
强生:以机理为中心!虚拟细胞世界模型
数据库·人工智能·python·深度学习·算法·机器学习·自然语言处理
FPGA信号处理1 小时前
【凸优化】第一节课(下):保凸运算、分离超平面与 Farkas 引理
人工智能·算法·机器学习
怕浪猫2 小时前
Agent 的记忆系统怎么设计?面试官想听的是这个
算法·面试·github
C++ 老炮儿的技术栈2 小时前
C++ const 的3个核心作用
服务器·c语言·c++·算法·c
有毒的教程2 小时前
Dev-C++ 避免爆栈(Stack Overflow)完整方案
c++·算法·深度优先
在所不辞兄2 小时前
刚性问题误差容限设置技巧
深度学习·神经网络·算法·机器学习