Python Day4

本文详细介绍了Python中的while循环和for循环的基本语法、嵌套使用、range函数以及循环中断的break和continue关键字,通过实例演示了如何控制循环条件和实现循环操作。
摘要由CSDN通过智能技术生成

一、while 循环的基础语法

1.定义

while 条件:

    条件满足时,做的事情1

    条件满足时,做的事情2

    (只要条件满足,会无限循环执行)

例:

# 向小美表白5次
i = 0
while i < 5:
    print("小美我喜欢你")
    i += 1

 

注意事项:while的条件需得到布尔类型,True 表示继续循环,False 表示结束循环
需要设置循环终止的条件,如 i += 1 配合 i<5,就能确保5次之后停止,否则将无线循环
空格缩进和 if 判断一样,都需要设置

2.练习1

# 通过while循环,计算从1累加到100 的和
i = 1
sum = 0
while i <=100 :
    sum += i 
    i += 1
print(f"1+2+3+……+99+100={sum}")

2.练习2

# 设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数
# 无限次机会,直到猜中为止
# 每一次猜不中,会提示大了或小了
# 猜完数字后,提示猜了几次

# 提示:无限次机会,终止条件不适合用数字累加来判断 可以考虑布尔类型本身
# 需要提示几次猜中,就需要提供数字累加功能

import random
num = random.randint(1,100)
count = 0
flag = True
while flag:
    guess = int(input("请猜想一个数字:"))
    count += 1
    if guess == num:
        print(f"恭喜你猜对了")
        flag = False
    else:
        if guess > num:
            print(f"猜大了")
        else:
            print(f"猜小了")
print(f"一共猜了{count}次")

二、while循环的嵌套

1、定义

while 条件1:

    条件 1 满足时,做的事件1 (四个空格)

    条件 1 满足时,做的事件2

     while 条件2:                    (四个空格)

        条件2满足时,做的事情2(八个空格)

        条件2满足时,做的事情2

例:

# 外层,表白5天的控制
# 内层,每天送3只玫瑰花的控制
i = 1
while i <=5:
    print(f"今天是表白的第{i}天")
    j = 1
    while j <= 3:
        print(f"送的第{j}朵玫瑰花")
        j +=1
    i += 1
print(f"经过{i-1}天,最终表白成功")

注意事项: 注意条件控制,避免无限循环
多层嵌套,主要空格缩进来 确定层次关系

2.练习

# 补充知识,print 输出不换行
print("Hello",end ='')
print("World",end ='')

# 制表符 \t   多行字符串进行对齐
print("Hello World")
print("Hello yyqx")

print("Hello\tWorld")
print("Hello\tyyqx")

# 九九乘法表
# 定义外层循环的控制变量

# i 表示行数
i = 1
while i < 10:
    # 定义内层循环
    # j 表示一行的量
    j = 1
    while j <= i:
        print(f"{j}*{i}={j*i}\t",end="")
        j +=1
    i +=1
    print()

三、for循环的基础语法

除了while循环语句外,python同样提供了for循环语句

两者能完成的功能基本差不多,但仍有一些区别:

while循环的循环条件是自定义的,自行控制循环条件

for循环是一种“轮询”机制,是对一批内容进行“逐个处理”

将”待办事项“逐个完成的循环机制

1、定义

for 临时变量 in 待处理数据集:

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

例:

name = "yyqx"
for x in name:
    # 将name的内容,挨个取出赋予x临时变量
    # 就可以在循环体内对x进行处理
    print(x)

同while循环不同,for循环是无法定义循环条件的

只能从被处理的数据集中,依次取出内容进行处理

从理论上将,python的for循环无法构建无限循环(被处理的数据集不可能无限大)

2.练习

# 定义字符串变量name,内容为:“I am a girl”
# 通过for循环,遍历此字符串,统计有多少个英文字母:”a“

# 提示 技术可以在循环为定义一个整数类型变量用来做累加计数
# 判断是否为字母“a”,可以通过if语句结合比较运算符来完成

name = "I am a girl"
count = 0
for x in name:
    if x == "a":
        count += 1
print(f"I am a girl 中含有{count}个a")

四、range语句

1.定义

例:语法1:

获取一个从0开始时,到num结束的数字序列(不含num本身)

如range(5)获取的数据是:[0,1,2,3,4]

for i in range(0,5)

    print(i)

语法2:

range(num1,num2)

获得一个从num1开始,到num2结束的数字序列(不含num2)

如,range(5,10)获取的数据是:[5,6,7,8,9]

for i in range(5,10)

    print(i)

语法3:

range(num1,num2,step)

获取一个从num1开始,到num2结束的数字序列(不含num2本身)

数字之间的步长,以step为准(step默认为1)

如,step(5,10,2)获取的数据是:[5,7,9]

for i in range(5,10,2)

    print(i)

2.练习

# 有几个偶数
# 定义一个数字变量num,内容随意
# 并使用range()语句,获取从1到num的序列,使用for循环遍历他
# 在遍历过程中,统计有多少偶数出现

# 提示 序列可以用:range(1,num)得到
# 偶数通过if判断,判断数字余2是否为0即可

import random
num = random.randint(1,100)
count = 0
for i in range(1,num):
    if i % 2 == 0:
        count += 1
print(f"从1到{num}(不包含{num}),一共有{count}个偶数")

五、for循环临时变量作用域

如果在for循环外部访问临时变量:

实际是可以访问到的

在编程规范上,是不允许,不建议这么做的

for i in range(5):

     print(i)

print(i)  # 在循环外访问变量

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

如需访问临时变量,可以预先在循环外定义它

 六、for循环的嵌套使用

1.定义

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

    循环满足条件应做的事情1:

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

        循环满足条件应做的事情1

例:

for i in range(1,4):
    print(f"今天是向小美表白的第{i}天")
    for j in range(1,4):
        print(f"给小美送的第{j}朵玫瑰花")
    print(f"第{i}天表白结束")
print(f"经过第{i}天,表白结束")

拓展:

(1)for 循环和 while循环互相嵌套

for i in range(1,4):

    print(f"今天是向小美表白的第{i}天")

    j = 1

    while j < 4:

        print(f"送的第{j}朵玫瑰花")

        j + = 1

    print(f"第{i}天表白结束")

print(f"经过{i}天,表白结束")

(2)while循环和for循环互相嵌套

i = 1

while i < 4:

    print(f"今天是向小美表白的第{i}天")

    i += 1

    for j in range(1,4):

        print(f"今天是送的第{j}朵玫瑰花")

    print(f"第{i-1}天表白结束")

print(f"经过{i-1}天,表白成功")

2.练习

九九乘法表

for i in range(1,10):
    for j in range(1,i):
        print(f"{j}*{i}={j*i}\t",end="")
    print()

七、循环中断:break 和 continue

1.continue

(1)定义

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

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

例:

for i in range(1,6):

    print("语句1")

    continue # 在循环内,遇到continue就结束当次循环,进行下一次 所以语句2是不会执行的

    print("语句2")

# 在循环中,因某些原因,临时结束本次循环

# 只控制 它所在的循环临时中断

(2)continue嵌套应用

for i in range(1,4):
    print("语句1")
    for j in range(1,4):
        print("语句2")
        continue
        print("语句3")
    print("语句4")

2.break

(1)定义

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

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

例:

for i in range(1,6):

    print("语句1")

    break # 在循环内,遇见break就结束循环 所以执行语句1后直接执行语句3

    print("语句2")

print("语句3")

(2)break嵌套应用

for i in range(1,6):
    print("语句1")
    for j in range(1,6):
        print("语句2")
        break # 只在本次循环内终止循环
        print("语句3")
    print("语句4")

3.综合案例

# 发工资
# 某公司,账户余额有1w元,给20名员工发工资
# 员工编号从1到20,从编号1开始,依次领取工资,每个人可领取1000元
# 领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位
# 如果工资发完了,结束发工资

# 提示 使用循环对员工一次发放工资
# continue用于跳过员工,break直接结束发工资

money = 10000
for i in range(1,21):
    import random
    score = random.randint(1,10)
    if score < 5 :
        print(f"员工{i},绩效分为{score},低于5,不发工资,下一位")
        continue
    else:
        money -= 1000
        print(f"员工{i},发放工资1000元,剩余{money}")
    if money == 0:
        break
print(f"本月工资发放完毕,请下个月再来")




  • 18
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值