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}")
相关推荐
yosh'joy!!1 小时前
Python
python
阿钱真强道1 小时前
18 Python 关联分析:Apriori 算法——如何从购物小票里找到高频组合
python·apriori·关联规则·频繁项集挖掘·购物篮分析
小心我捶你啊2 小时前
提升爬虫稳定性的关键,Python爬虫代理IP解析与轮换策略
爬虫·python·tcp/ip
hua872222 小时前
Golang 构建学习
java·开发语言·学习
大傻^2 小时前
LangChain4j RAG 核心:Document、Embedding 与向量存储抽象
开发语言·人工智能·python·embedding·langchain4j
快乐柠檬不快乐2 小时前
使用Python操作文件和目录(os, pathlib, shutil)
jvm·数据库·python
进击的小头2 小时前
第11篇:频率响应绘制方法——伯德图(Bode Plot)
python·算法
用户8356290780512 小时前
Python 设置 Excel 条件格式教程
后端·python·excel
91刘仁德2 小时前
C++ 内存管理
android·c语言·数据结构·c++·经验分享·笔记·算法