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

相关推荐
niyongsheng2 分钟前
3D 装箱算法工程化:数据结构、放置启发式与支撑规则
数据结构·算法·rust
叉烧滑蛋2 小时前
B站台湾大学郭彦甫|MATLAB 学习笔记|04 变量与档案存取
数据结构
j7~3 小时前
【穷举、深搜与回溯算法】一棵决策树讲透全排列与子集
数据结构·c++·算法·leetcode·回溯·递归
傅科摆 _ py3 小时前
DP,贪心,堆和栈,二分力扣复习
开发语言·python·算法
Shaoshing4 小时前
LeetCode100 42.接雨水
java·算法·leetcode
域限奇点访客4 小时前
用AI生成问卷的网站怎么选?看题目录入结构、题型映射和生成后的校验
算法
not coder5 小时前
一文讲通--从树到红黑树
数据结构·算法
octopus_c5 小时前
C++ 入门
开发语言·c++·算法
爱吃香菜的初学者6 小时前
八.数据结构——哈希表(1)
数据结构·散列表