python基础学习笔记第三章

一、while循环

1. 基础语法

核心 :条件为布尔类型,True继续循环,False结束循环。

2. 注意事项

  • 条件必须返回布尔值

  • 必须设置循环终止条件(如i += 1),否则无限循环

  • 严格遵守空格缩进规则

3. 基础案例

案例1:向小美表白100次
cpp 复制代码
i = 0
while i < 100:
    print("小美,我喜欢你")
    i += 1
案例2:计算1-100的和
cpp 复制代码
i = 1
sum_total = 0
while i <= 100:
    sum_total += i
    i += 1
print(f"1-100的和为:{sum_total}")  # 结果:5050
案例3:猜数字游戏
cpp 复制代码
import random
num = random.randint(1, 100)
count = 0
flag = True
while flag:
    guess = int(input("请输入你猜的数字:"))
    count += 1
    if guess > num:
        print("大了")
    elif guess < num:
        print("小了")
    else:
        print(f"猜中了,你一共猜了{count}次")
        flag = False

4. while循环嵌套

1)语法
cpp 复制代码
while 条件1:
    条件1满足执行的代码
    while 条件2:
        条件2满足执行的代码
        循环2的终止条件
    循环1的终止条件
2)注意事项
  • 按缩进确定层次关系

  • 分别设置各层循环的终止条件,避免无限循环

案例1:表白100天,每天送10朵玫瑰
cpp 复制代码
i = 1
while i <= 100:
    print(f"今天是第{i}天,准备表白..")
    j = 1
    while j <= 10:
        print(f"送给小美第{j}只玫瑰花")
        j += 1
    print("小美,我喜欢你")
    i += 1
print(f"坚持到第{i-1}天,表白成功")
案例2:打印九九乘法表
cpp 复制代码
i = 1
while i <= 9:
    j = 1
    while j <= i:
        print(f"{j}*{i}={i*j}\t", end="")
        j += 1
    print()  # 换行
    i += 1

补充end=""让print不换行,\t制表符实现对齐。

二、for循环

1. 基础语法

cpp 复制代码
for 临时变量 in 待处理数据集(可迭代对象):
    循环执行的代码

核心:轮询机制,逐个取出数据集内容处理,无法自定义循环条件,无无限循环(数据集有限)。

2. 可迭代对象

字符串、数字序列(range生成)、列表、元组等。

3. 基础案例

案例1:遍历字符串
cpp 复制代码
name = "itheima"
for x in name:
    print(x)  # 逐个输出i t h e i m a
案例2:统计字符串中字母a的个数
cpp 复制代码
name = "itheima is a brand of itcast"
count = 0
for x in name:
    if x == "a":
        count += 1
print(f"字符串中共含有:{count}个字母a")  # 结果:4

4. range语句

生成数字序列,常用作for循环的数据集,左闭右开

三种语法
  1. range(num):生成0到num-1的序列

    cpp 复制代码
    for i in range(5):
        print(i)  # 0 1 2 3 4
  2. range(num1, num2):生成num1到num2-1的序列

    cpp 复制代码
    for i in range(5, 10):
        print(i)  # 5 6 7 8 9
  3. range(num1, num2, step):按步长step生成序列

    cpp 复制代码
    for i in range(5, 10, 2):
        print(i)  # 5 7 9
案例:统计1到num的偶数个数
cpp 复制代码
num = 100
count = 0
for i in range(1, num):
    if i % 2 == 0:
        count += 1
print(f"1到{num}(不含本身)范围内,有{count}个偶数")  # 结果:49

5. 临时变量作用域

  • 规范上:临时变量仅作用于for循环内部

  • 实际上:外部可访问,但不建议

  • 如需外部访问,提前在循环外定义:

cpp 复制代码
i = 0
for i in range(5):
    print(i)
print(f"循环外访问i:{i}")  # 结果:4

6. for循环嵌套

1)语法
cpp 复制代码
for 临时变量1 in 数据集1:
    执行代码
    for 临时变量2 in 数据集2:
        执行代码
2)注意事项
  • 按缩进定层次

  • for和while可相互嵌套

案例1:表白100天(for嵌套)
cpp 复制代码
for i in range(1, 101):
    print(f"今天是向小美表白的第{i}天,坚持。")
    for j in range(1, 11):
        print(f"送给小美的第{j}朵玫瑰花")
    print(f"小美,我喜欢你(第{i}天的表白结束)")
print(f"第100天,表白成功")
案例2:for循环打印九九乘法表
cpp 复制代码
for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{j}*{i}={i*j}\t", end="")
    print()

三、循环中断:break和continue

1. continue

  • 作用:中断本次循环,直接进入下一次

  • 适用:for/while循环,嵌套中仅作用于所在层循环

cpp 复制代码
# 案例:打印1-5,跳过3
for i in range(1, 6):
    if i == 3:
        continue
    print(i)  # 1 2 4 5

2. break

  • 作用:直接结束整个循环

  • 适用:for/while循环,嵌套中仅作用于所在层循环

cpp 复制代码
# 案例:打印1-5,遇到3终止
for i in range(1, 6):
    if i == 3:
        break
    print(i)  # 1 2

3. 综合案例:发工资

cpp 复制代码
import random
money = 10000  # 账户余额
for i in range(1, 21):
    score = random.randint(1, 10)
    if score < 5:
        print(f"员工{i},绩效分{score},不发工资")
        continue
    if money < 1000:
        print("工资发完了,结束发放")
        break
    money -= 1000
    print(f"员工{i},绩效分{score},发工资1000,余额{money}")
相关推荐
aqi0027 分钟前
15天学会AI应用开发(八)使用向量数据库实现RAG功能
人工智能·python·大模型·ai编程·ai应用
Csvn1 小时前
`functools.lru_cache` —— 一行代码搞定缓存加速
后端·python
金銀銅鐵18 小时前
[Python] 从《千字文》中随机挑选汉字
后端·python
cup111 天前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill
aqi001 天前
15天学会AI应用开发(七)有了大模型为什么还要引入RAG
人工智能·python·大模型·ai编程·ai应用
金銀銅鐵1 天前
用 Python 实现 Take-Away 游戏
python·游戏
copyer_xyf1 天前
Agent 流程编排
后端·python·agent
copyer_xyf1 天前
Agent RAG
后端·python·agent