[Python] 005-Python循环语句

1、while循环的基础语法

  • 循环的两个要素:

    1、条件

    2、操作

语法格式:

while 条件:

条件满足时,做的事情

# 演示while循环的基础运用
i = 0
while i < 100:
    print(f"hello world {i}")
    i += 1

while循环注意点

  1. while的条件需要得到布尔类型,True表示继续循环,False表示结束循环
  2. 需要设置循环终止的条件,如果i += 1配合i < 100,就能确保100次后停止,否则将无限循环
  3. 空格缩进和if判断相同,都需要设置
  • 练习案例:求1-100的和
# 求1-100的和
i = 1
sum = 0
while i <= 100:
    sum += i
    print(sum)
    i += 1

2、while循环的基础案例

通过while循环,配合input语句,判断输入的数字是否等于随机数

  • 无限次机会,直到猜中为止

  • 每一次猜不中,会提示大了或小了

  • 猜完数字后,提示猜了几次

提示:

  1. 无限次机会,终止条件不适合用数字累加来判断

  2. 可以考虑布尔类型本身(True or False)

  3. 需要提示几次猜中,就需要提供数字累加功能

  4. 随机数可以使用:

    import random
    num = random.randint(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
    else:
        if guess_num > num:
            print("猜大了")
        else:
            print("猜小了")

print(f"你一共猜测了{count}次")

3、while循环的嵌套应用

在这里插入图片描述

# 嵌套循环

# 外层:表白100天
# 内层:每天的表白都送10支玫瑰
i = 1
while i <= 100:
    print(f"今天是第{i}天,准备表白...")

    # 内层循环控制变量
    j = 1
    while j <= 10:
        print(f"day{i}送的第{j}支玫瑰")
        j += 1

    print(f"day{i} end")
    i += 1

print(f"坚持到{i - 1}日,表白成功!")

while循环的嵌套-注意点

  • 注意空格缩进(基于空格缩进来决定层次关系)
  • 注意条件的设置,避免出现无限循环

4、while循环的嵌套案例

  • 补充知识1-print输出不换行

在print语句中,加上end=‘’ 即可输出不换行了

此处的 end=‘’ 其实是print语句的传参功能

print("hi")
print("world")

print("hi--", end='')
print("world")

在这里插入图片描述

  • 补充知识2-制表符\t

可以让多行字符串进行对齐

在这里插入图片描述

  • 案例练习:九九乘法表

1、控制行的循环 i <= 9

2、控制每一行的内容输出的循环 j <= i

tip:每一行被乘的数都是当前的i 所以 每一行的内容是 j*i

# 九九乘法表

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

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

    i += 1
    print()  # print空内容,就是输出一共换行的意思

5、for循环的基础语法

基础语法

while循环和for循环的区别:

  • while循环的循环条件是自定义的,自行控制循环条件
  • for循环是一种“轮询”机制,是对一批内容进行“逐个处理

语法格式:

for 临时变量 in 待处理数据集(序列)

循环满足条件是时执行的代码

从待处理数据集中:逐个取出数据赋值给临时变量

# 遍历字符串
# 定义字符串name
name = "samantha"

# for循环处理字符串
for x in name:
    # 将name的内容,挨个去除 赋予临时变量x
    # 就可以在循环体内对x进行处理
    print(x)
  • 可以看出,for循环是将字符串内容:依次取出
  • 所以,for循环也被称之为:遍历循环
for循环注意点
  • 无法定义循环条件,只能被动取出数据处理
  • 循环内的语句,注意空格缩进

for循环与while循环不同,for循环是无法定义循环条件的。只能操你个被处理的数据集中,依次取出内容进行处理

所以,理论上讲,Python的for循环无法构建无限循环(被处理的数据集不可能无限大)

  • 练习案例:数一数有几个a

在这里插入图片描述

"""
for循环练习:数一数有几个a
"""
# 统计如下字符串中有几个a
name = "samantha is a cute guy"
# 定义一个变量,用来统计a
count = 0

# for循环统计
# for 临时变量 in 被统计的数据:
for x in name:
    if x == "a":
        count += 1
print(count)

range语句

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

"""
演示range()语句的基本使用
"""

# range 语法1 range(num)
# 从0到num结束 (不包含num本身) (共num个数字)
for x in range(10):
    print(x)

# range 语法2 range(num1,num2)
# 从num1到num2结束 (不包含num2本身)
for x in range(5, 10):
    # 从5开始,到10结束的序列(不包含10),数字间隔默认为1
    print(x)

# range 语法3 range(num1,num2,step)
for x in range(5, 10, 2):
    # 从5开始,到10结束的一个序列(不包含10),数字之间的间隔是2
    print(x)

# while送花
i = 1
while i <= 5:
    print("送花")
    i += 1

# for送花
for x in range(5):
    print("郁金香")
  • 练习案例:有几个偶数

在这里插入图片描述

# 练习:有几个偶数
count = 0
for x in range(1, 100):
    if x % 2 == 0:
        count += 1
print(f"1到100(不含100)范围内,有{count}个偶数")

变量作用域

在这里插入图片描述

在这里插入图片描述

  1. for循环中的临时变量,其作用域限定为:

    循环内

  2. 这种限定:

    • 是编程规范的限定,而非强制规定
    • 不遵守也能正常运行,但不建议
    • 如需访问临时变量,可以预先在循环外定义它

6、for循环的嵌套应用

在这里插入图片描述

"""
演示for的嵌套循环
"""
# 坚持表白100天,每天10朵花
# range
for i in range(1, 101):
    print(f"今天是第{i}天")
    # 内循环
    for j in range(1, 11):
        print(f"送{j}朵花")
    print(f"day{i}  end")
print("成功")

for循环的嵌套注意点

  • 需要注意缩进,嵌套for循环同样通过缩进来确定层次关系

  • for循环和while循环可以相互嵌套使用

  • 练习案例:for循环-九九乘法表

# 通过外层循环控制行数
for i in range(1, 10):
    # 通过内层循环控制每一行的输出
    for j in range(1, i + 1):
        print(f"{j}*{i}={j * i}\t", end='')
    # 外层循环可以通过print输出一个回车符
    print()

7、循环中断:break和continue

continue

continue关键字用于:中断本次循环,直接进入下一次循环

continue可以用于:for循环和while循环,效果一致

在这里插入图片描述

# 演示continue
for i in range(1, 6):
    print("语句1")
    continue
    print("2")

在这里插入图片描述

  • continue只对当前这一层循环有作用
# 演示 continue的嵌套应用
for i in range(1, 4):
    print("111")
    for j in range(1, 4):
        print("222")
        continue
        print("333")
    print("444")

break

break关键字用于:直接结束循环

break可以用于:for循环和while循环,效果一致

在这里插入图片描述

  • break关键字同样也只能控制当前循环
# break
for i in range(1, 4):
    print("11")
    break
    print("22")
print("33")

小结

  1. continue的作用:

    中断所在循环的当次执行,直接进入下一次

  2. break的作用:

    直接结束所在循环

  3. 注意事项:

    • continue和break,在for和while循环中作用一致
    • 在嵌套循环中,只能作用在所在的循环上,无法对上层循环起作用

8、综合案例

练习案例:发工资

在这里插入图片描述

"""
循环综合案例:发工资
"""

# 定义账户余额变量
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结束发放
        break
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值