Python03_循环语句

声明

文章是基于:

哔哩哔哩上的《黑马程序员python教程,8天python从入门到精通,学python看这套就够了》视频教程所做的学习笔记,仅为学习使用!!如有侵权,联系删除

目录

一、while循环

(一)基础语法

(二)基础案例

(三)嵌套应用

(四)嵌套案例

二、for循环

(一)基础语法

(二)range语句

1、range(num)

2、range(num1, num2)

3、range(num1, num2, step)

(三)变量作用域

(四)嵌套应用

(五)嵌套案例

三、while循环和for循环的区别

(一)终止条件

四、循环中断:break 和 continue

(一)continue

(二)break

五、综合案例


遍历:是指通过某种顺序对一个数据结构中的所有元素进行访问

一、while循环

(一)基础语法

i = 0
while i < 100:
    print("加油")
    i += 1
  • while的条件需得到布尔类型,True表示继续循环,False表示结束循环。
  • 需要设置循环终止的条件,如i += 1配合 i < 100,就能确保100次后停止,否则将无限循环。
  • 空格缩进和if判断一样,都需要设置。

(二)基础案例

1、求1 - 100的和 

sum = 0
i = 1

while i <= 100:
    sum += i
    i += 1
    
print(f"1-100的和是"{sum})

2、猜数字

# 获取范围在1~100内的随机数字
import random
num = random.randint(1, 100)

# 定义变量存储用户总共猜测多少次
count = 0

#通过一个布尔类型变量,作为循环是否继续的标志
flag = True
while flag:
    guess_num = int(input("请输入猜测数字"))
    count += 1
    if guess_num == num:
        print("猜中了")
        # 设置为False就是终止循环的条件
        flag = False
    elif guess_num > num:
        print("你猜的大了")
    else:
        print("你猜的小了")
        
print(f"你总共猜测了{count}次")

(三)嵌套应用

# 外层循环:表白100天的控制
i = 1
while i <= 100:
    print( f"今天是第{i}天" )
    
    j = 1
    # 内层循环:每天都送10只玩偶的控制
    while j <= 10:
        print( f"送给你第{j}只")
        j += 1
        
    i += 1
    
print(f"坚持了{i-1}天")
  • 同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进
    • 基于空格缩进来决定层次关系
  • 注意条件的设置,避免出现无限循环(除非真的需要无限循环)。

(四)嵌套案例

1、通过while嵌套循环,打印九九乘法表

(1)补充知识

  • 默认print语句输出内容会自动换行
  • 我们需要使用print语句,输出不换行的功能,非常简单,实现方式如下:
  • 在字符串中,有一个特殊符号:\t,效果等同于在键盘上按下:tab键;它可以让我们的多行字符串进行对齐

(2)代码实现

# 定义外层循环的控制变量
# 控制行
i = 1
while i <= 9:

    # 定义内层循环的控制变量
    j = 1
    while j <= i:
        # 内存循环的print语句,不要换行,通过\t制表符进行对齐
        print(f"{j} * {i} = {j * i}\t", end='')
        j += 1

    i += 1
    print()  # print空内容,输出一个换行

二、for循环

(一)基础语法

1、

  • 同while循环不同,for循环是无法定义循环条件的,循环能执行多少次取决于被处理数据集里有多少份数据供循环处理。

2、

(二)range语句

  • 获得一个简单的数字序列可迭代类型的一种)。

1、range(num)

  • 获取一个0开始到num结束的数字序列(不含num本身
  • 如range(5)取得的数据是:[0, 1, 2, 3, 4]
  •   for x in range(10):
          print(x)

2、range(num1, num2)

  • 获得一个从num1开始,到num2结束的数字序列(不含num2本身
  • 如,range(5, 10)取得的数据是:[5, 6, 7, 8, 9]

3、range(num1, num2, step)

  • 获得一个从num1开始到num2结束的数字序列(不含num2本身
  • 数字之间的步长/间隔,以step为准step默认为1
  • 如,range(5, 10, 2)取得的数据是:[5, 7, 9]

(三)变量作用域

  • 临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部

(四)嵌套应用

"""
    同样以向小美表白的案例为例
        坚持表白100天
        每天送花10束
"""

i = 1
for i in range(1, 101):
    print(f"今天是表白的第{i}天")
    for j in range(1, 11):
        print(f"送给小美的第{j}朵玫瑰花")
    print(f"第{i}天的表白结束")
    
print(f"第{i}天,表白成功")
  • 和while循环一样,需要注意缩进,因为通过缩进,确定层次关系

(五)嵌套案例

1、通过for循环,打印九九乘法表

# 控制外层循环
# i表示行
for i in range(1, 10):
    # 内层循环控制列
    # j表示列
    j = 0
    for j in range(1, i+1):
        # 在内层循环中输出每一行的内容
        print(f"{j} * {i} = {j * i}\t", end='')
    # 输出一个回车符
    print()

三、while循环和for循环的区别

(一)终止条件

  • while循环边界条件
  • for循环遍历完整个列表

排队打疫苗的场景:

  • while循环:设定了边界条件疫苗总共500支,在打完之前可以一直排队一直打,打完500支就没有了
  • for循环:排到的一组人都会依次打完,一个都不会少

四、循环中断:break 和 continue

(一)continue

  • 中断本次循环,直接进入下一次循环
  • for循环和while循环,效果一致
  • 只能作用在所在的循环上,无法对上层循环起作用

(二)break

  • 直接结束所在循环
  • for循环和while循环,效果一致
  • 只能作用在所在的循环上,无法对上层循环起作用

五、综合案例

money = 10000

# for循环对所有员工发放工资
for i in range(1, 21):
    import random
    score = random.randint(1, 10)

    if score < 5:
        print(f"员工{i}绩效分{score},不满足发工资条件,下一位")
        # continue跳过发放工资
        continue

    # 要判工资余额是否足够
    if money >= 1000:
        money -= 1000
        print(f"员工{i},满足条件发放工资1000,公司账户余额:{money}")
    else:
        print(f"余额不足,当前余额:{money}元,不足以发工资")
        break
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Star_KeyW

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值