一,(05 while循环)

目标

  • 了解循环
  • while语法【重点】
  • while应用
  • break和continue
  • while循环嵌套【重点】
  • while循环嵌套应用【难点】
  • for循环

一、循环简介

1.1循环的作用

● 思考:假如我有个女朋友,有一天我们矛盾生气了,女朋友说:道歉,说100遍“媳妇儿,我错了”这个时候程序员会怎么办?

○ 答;100遍 print('媳妇儿,我错了')

● 思考:复制粘粘100次吗?

○ 答:重复执行100次一样的代码,程序组循环即可

循环的作用:让代码更高效的重复执行。

1.2 循环的分类

在python中,循环分为 whlie for 两种,最终实现效果相同。

二、 while的语法

while 条件:
    条件成立要重复执行的代码1
    条件成立要重复执行的代码2

2.1 快速体验

需求:复现重复执行100次print(‘媳妇儿,我错了’)(输出更简洁一些,我们这里设置5次)

分析:初始值是0次,终点是5次,重复做的事情输出“媳妇儿,我错了”。

代码如下:

#需求:重复打印5次媳妇儿,我错了--1.2.3.4.5.6x----数据表示循环的次数--=第一次是1.最后依次5
#1+1+1+1.....

# 循环计数器
#计算机世界里 0 也是一个数
i = 0
while i < 5: #也可以写作代码; while i <= 4
    print('媳妇儿,我错了')
    i += 1  #i= i + 1

print('任务结束')

2.1 while扩展知识:

当while循环  执行流程完成,才去执行下面代码。

三、 while 的应用

3.1 应用一:计算1-100累加和

分析:1-100的累加和,即1+2+3+4+5...即前两个数字的相加结果+下一个数字(前一个数字+1)

# 需求:1-100数字累加和--1+2+3+4+5.。。。100=结果,打印结果
'''
1.准备做加法运算的数据1-100 增量为1
2.准备变量保存将来运算的结果
3.循环做加法运算
4.打印结果
5.验证结果正确性
'''

# 准备数据
i = 1

#结果变量
result = 0

# 循环
while i < 101:
    result = result + i
    i += 1
# 打印结果----输出结果 5050
print(result)

注意:为了验证程序的准确性,可以先改成小数值,验证结果正确后,在改成1-100累加。

3.2 应用二:计算1-100偶数累加和

分析:1-100的偶数做累加和,即 2+4+6+8.。。。 得到偶数方法如下:

● 偶数即是和2取余结果为0的数字,可以加入条件语句判断是否为偶数,为偶数则累加

●初始值为0/2,计数器每次累加2

 3.2.1 方法一:条件判断和2取余数则累加

#需求:1-100偶数累加和---2+4+6+8+10.。。。100=结果--输出结果

'''
1.准备累加和的数字  开始1 结束100 增量1
2.准备保存结果的变量 resulit
3.循环加法运算--如果是偶数才做加法运算---和2 取余为0
4.验证结果
5.验证结果
'''

i = 1
result = 0
while i <= 100:
    #条件语句--if
    if i % 2 == 0:
        # 加法运算
        result += i  # result = result +i
    # i 不能缩进到 if 语句里,因为需要每次循环都+1
    i += 1

print(result)

3.2.2 方法二:计数器控制

# 计数器控制 让偶数累加
'''
1.准备累加的数据
2.准备存储结果的变量
3.循环计算
4.输出结果
5.
'''

i = 0
result = 0

while i <= 100:
    result += i
    i += 2
print(result)

● 程序的结束方法

四、break和continue

break和continue 是循环中满足一定条件推出循环的两种不同方式。

4.1理解

举例:一共吃5个苹果,吃完第一个,吃第二个。。。 这里“吃苹果”的动作是不是重复执行?

情况一:如果吃的过程中,吃完第三个吃饱了,则不需要再吃第四个和第五个苹果,即吃苹果的动作停止,这里就是break控制循环流程,即终止次循环。

举例二:如果吃的过程中,吃到第三个苹果吃出一个大虫子。。。。是不是这个苹果就不吃了,开始吃第四个苹果,这里就是continnue控制循环流程,即退出当前一次循环继而下一次循环代码。

4.1.1 情况一:break   (break特点:当某些条件成立,终止此循环)

# break: 当条件成立了,退出整个循环
#循环吃5个苹果,吃完第三个吃饱了 第4和第5 不吃了(不执行)--- ==4 或 >3

i = 1
while i <= 5:
    #条件:吃到第三个苹果吃饱了不吃了。打印吃饱了
    if i ==4:
        print('吃饱了,不吃了')
        break
    print(f'吃了{i}个苹果')
    i += 1

4.1.2 情况二:continnue (continnue特点:退出当前一次循环继而下一次循环代码

●  如果使用continnue,在continnue之前一定要修改计数器.否则进入死循环
# continnue:当条件成立时 退出当前一次循环,继而执行下一次循环
#吃五个苹果--循环;吃到第3个苹果,吃出一个大虫子 不吃了,没吃饱,继续吃第4和第5个苹果----只有第三个不吃
i = 1
while i <= 5:
    #条件
    if i == 3:
        print('吃出一个大虫子,我不吃')
        # 如果使用continnue,在continnue之前一定要修改计数器.否则进入死循环
        i += 1
        continue
    print(f'吃了{i}个苹果')
    i += 1

五、while 循环嵌套

5.1应用场景

故事梗概:有天女朋友生气了,惩罚:说3遍“”媳妇,我错了” 这个程序是不是可以循环?但如果女朋友说:还要刷今天的碗,这个程序怎么写?

while 条件:
    print('媳妇儿,我错了')
print('刷晚饭的碗')

但如果女朋友还是生气,把这套惩罚要连续3天都要执行呢,有如何抒写程序?

while 条件:
    while 条件:
        print('媳妇儿,我错了')
print('刷晚饭的碗')

5.2 语法

while 条件1:
    条件1成立执行的代码
    ....
    while 条件2:
        条件2成立执行的代码
        .....

总结:所谓while循环嵌套,就是一个while里面嵌套一个while写法,每个while和之前基础语法是相同的。

5.3快速体验:复现场景

5.3.1 代码

'''
1.循环打印3次 媳妇 我错了
2.刷晚饭的碗
3.上面是一套惩罚要重复执行三天
'''
j = 0
while j < 3:
    i = 0
    while i < 3:
        print('媳妇,我错了')
        i += 1
    print('刷晚饭的碗--------------------')
    j += 1

5.3.2 执行结果

5.3.3 理解执行流程

当内部循环执行完成后,再执行下一次外部循环的条件判断

六、while循环嵌套应用

6.1 应用一:打印星号(正方形)

  1. *****
  2. *****
  3. *****
  4. *****
  5. *****

6.1.2 代码

分析:一行输出5个型号,重复打印5行

'''
1.打印一个1星
2.一行5个:循环--5个星星在一行显示
3.打印5行星星:循环--一行5个
'''

#重复打印5行星星
j = 0
while j <= 4:
    # 一行星星打印
    i = 0
    while i <= 4:
        #一行内的星星不能换行,取消print默认结束符\n
        print('*',end='')
        i += 1
    #每行结束要换行,这里借助一个空的print,利用print默认结束符换行
    print()
    j += 1

6.2 应用二:打印星号(三角形)

6.2.1需求

  1. *
  2. **
  3. ***
  4. ****
  5. *****

6.2.2代码

#三角形:每行星星的个数和行号相等
#重复打印5行星星
# j表示行号

j = 0
while j < 5:
    # 一行星星打印
    i = 0
    # i表示每行里面星星的个数,这个数字要和行号相等所以i和j联动
    while i <= j:
        #一行内的星星不能换行,取消print默认结束符\n
        print('*',end='')
        i += 1
    #每行结束要换行,这里借助一个空的print,利用print默认结束符换行
    print()
    j += 1

6.3 九九乘法表

6.3.1执行结果

6.3.2代码

'''
1.打印一个乘法表达式 x*x=x*x
2.打印一行多个表达式,--一行表达式个数与行号相等---循环:一个表达式----不换行
3.打印多个表达式---循环-----换行

**** 一行表达式的个数和行号相等
'''
#重复打印9行表达式
j = 1
while j <= 9:
    #打印一行里面的表达式 a * b=a*b
    i = 1
    #i与j的联动 print结束符\t(制表符)美化 
    while i <= j:
        print(f'{i}*{j}={i*j}',end='\t')
        i += 1
    print()
    j += 1

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值