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}")
相关推荐
前端技术1 天前
ArkTS第三章:声明式UI开发实战
java·前端·人工智能·python·华为·鸿蒙
landuochong2001 天前
用 Claude Code 直接写 Obsidian 笔记-增强版
人工智能·笔记·skill·claudecode
知识分享小能手1 天前
MongoDB入门学习教程,从入门到精通,MongoDB的分片管理(17)
数据库·学习·mongodb
世人万千丶1 天前
Flutter 框架跨平台鸿蒙开发 - 嫉妒分析器应用
学习·flutter·华为·开源·harmonyos·鸿蒙
疯狂成瘾者1 天前
.pyc格式文件
python
泰晶科技1 天前
【晶振电子元件基本术语】
笔记
鬼圣1 天前
Python 生成器与迭代器详解
python
IT摆渡者1 天前
JUMPSERVER堡垒机部署
linux·运维·网络·经验分享·笔记
西魏陶渊明1 天前
解决异步挑战:Reactor Context 实现响应式上下文传递
开发语言·python