Python程序设计——day5——while 循环语句

目录

一、什么是循环

二、循环的分类

三、while 循环

1、while 循环应用场景一

2、while 循环应用场景二

3、while 循环应用场景三

四、循环控制语句

1、break 语句应用场景

2、continue 语句应用场景

五、while循环嵌套

1、while 循环嵌套应用场景一 

2、while 循环嵌套应用场景二


一、什么是循环

        定义:将事物(代码)循环执行

        作用:减少代码的重复编辑与执行

二、循环的分类

        Python 提供了 for 循环和 while 循环两种循环语句

        for 循环:重复执行语句

        while 循环:在给定的判断条件为 true 时执行循环体,否则退出循环体

三、while 循环

        Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务

语法结构:

while 循环条件:
    循环体语句
[else:
    执行语句]
# else语句是在循环体正常结束时才执行的语句,当循环被中断时不执行,
# 当遇到 break、return 和有异常发生时都会中断循环

错误示范:

n = 10
while n > 0:                  # 这是个错误示范,因为这是个死循环,一旦开始运行,将会不停的
     print('Hello Python')    # 打印“Hello Python”,直到手动停止或者系统内存被占满

注意:不能写死循环(要给代码找出口)

正确示范:

n = 1
while n < 11:
    print('Hello Python')         # }循环体,循环打印10遍“Hello Python”
    n += 1                        #  n=n+1,当n=10的时最后一次打印,因为再+1就不满足条件

示例:

i = 1
while i * i < 10:
    print(str(i),"*",str(i),"=",i * i)
    i += 1
else:
    print("循环结束")
# 运行结果:1 * 1 = 1
#          2 * 2 = 4
#          3 * 3 = 9
#          循环结束

示例改:

i = 1
while i * i < 10:
    if i == 3:
        break
    print(str(i),"*",str(i),"=",i * i)
    i += 1
else:
    print("循环结束")
# 运行结果:1 * 1 = 1
#          2 * 2 = 4

1、while 循环应用场景一

        犯了错惹老婆生气,需要输出100次 “媳妇,我错了” 才能被原谅

n = 1
while n <= 100:
    print('媳妇⼉,我错了')
    n += 1
print('谢谢媳妇儿的原谅,以后再也不犯这个错了')

2、while 循环应用场景二

        请计算1-100的和

num = 1                # 循环取值
sum = 0                # 加和变量,从0开始
while num < 101:       # <101的效果等同于<=100
    sum += num         # sum=sum+num 加和变量在每次循环中加一次num的数值
    num += 1           # num=num+1 每完成一次循环取值加1
print(sum)             # 等循环结束后打印加和变量,结果是5050

3、while 循环应用场景三

        请计算1-100偶数和

方法一:

        思考:偶数即是和2求余结果为0的数字,可以加⼊条件语句判断是否为偶数,为偶数则累加,同理奇数即是和2取余结果不为0的数字

num = 1
sum = 0
while num < 101:
    if num % 2 == 0:    # %表示求余或者求模,如果余数等于0,即表达式成立,num是偶数
        sum += num
    num += 1
print(sum)

方法二:

        思考:偶数从0开始依次加2得来的,故可以使用 num += 2 来表示

num = 0
sum = 0
while num < 101:
    # print(num)
    sum += num
    num += 2
print(sum)

4、while 循环应用场景四

        计算水仙花数。提示:水仙花数是一个三位数,三位数各位的立方之和等于三位数本身

i = 100; n1 = 0; n2 = 0; n3 = 0        # 前置条件可以用分号隔开放在同一行
while i < 1000:
    n1 = i // 100
    n2 = (i - n1 * 100) // 10
    n3 = i - n1 * 100 - n2 * 10
    if i == (n1**3+n2**3+n3**3):
        print(i,end="\t")
    i += 1
# 运行结果:153	370	371	407	
AI解释代码:
    以上代码是一个寻找水仙花数的程序,水仙花数指一个三位数,其个位、十位、百位数字的立方和等于该数本身。
    程序中的变量 i 初始化为 100,n1、n2 和 n3分别初始化为 0 。
    通过 while 循环,当 i 小于 1000 时,进入循环体。循环体中首先将 i 分别除以 100、10 和 1,得到百位数、十位数和个位数,并分别赋值给 n1、n2 和 n3。
    然后通过 if 语句判断 i 是否等于它的各个位数的立方和。若相等,则将 i 输出,并在末尾加上制表符(\t)。
    最后,将 i 加 1,继续进行下一次循环,直到 i 大于等于 1000,程序结束。

四、循环控制语句

        Python 提供了 break、continue 和 pass三种循环控制语句

        break语句:在语句块执行过程中终止循环,并且跳出整个循环

        continue语句:在语句块执行过程中终止并跳出本次循环,执行下一次循环

        pass语句:pass 是空语句,是为了保持程序结构的完整性

1、break 语句应用场景

# 从 1 打印到 100,但是到了 50 的时候我希望停止整个循环
num = 1
while num < 101:
    print(num)
    if num == 50:
        break   # 结束整个循环
    num += 1

2、continue 语句应用场景

# 从1 打印到100,只有50不打印
num = 0
while num < 100:
    num += 1
    if num == 50:
        continue   # 跳过本次循环,进入下一次循环
    print(num)

注意:以上两个例子里面起始数字不同,print 语句所在的位置也不同,其实最关键的是变量重新赋值的语句位置不同,如果其位于 continue 的后面,则会一直执行下去

五、while循环嵌套

        执行流程:当内部循环执行完成之后,再执行下⼀次外部循环的条件判断

1、while 循环嵌套应用场景一 

        和女朋友闹矛盾生气了,为了哄女朋友,你决定每天道歉一次 ,并买三束鲜花 ,计划总共持续10天 。当你在第四天,买了第2束花后,女朋友不生气了,整个循环都会退出

x = 1
while x < 11:
    y = 1
    while y < 4:
        print("道歉第%d天," % x, "买了%d束花" % y)
        if x == 4 and y == 2:                             #    
            break                                         # 这两句是为了实现小循环退出
        y += 1
    if x == 4:                                            # 
        print("女朋友不生气了")                            # 
        break                                             # 这三句是为了实现大循环退出
    x += 1
AI 解释代码:
    这段代码包含了两个嵌套循环。外层循环使用了 while 循环,初始条件为 x=1,当 x 小于 11 时执行循环体,每次循环结束 x 增加 1。
    内层循环同样使用了 while 循环,初始条件为 y=1,当 y 小于 4 时执行循环体,每次循环结束 y 增加 1。在每次内层循环体中,会输出“道歉第x天,买了y束花”的信息。同时,当 x 为 4 且 y 为 2 时,会使用 break 语句退出内层循环,此时输出的信息只有前四天的。
    当 x 为 4 时,会输出“女朋友不生气了”,同时使用 break 语句退出外层循环,此时整个程序结束。
    总结一下,这段代码的功能是模拟男友向女友道歉送花的情况。外层循环控制送花的天数,内层循环控制每天送花的束数,当送花的天数为4且送花的束数为2时,女友不生气了,程序结束。

2、while 循环嵌套应用场景二

        使用 while 循环编写一个99乘法表

        思考:使用while循环嵌套的方式,一个变量循环控制行,一个变量循环控制列,是第几行就有几列

x = 1                # 定义x为行变量
while x <= 9:        # 让行从1循环到9
    y = 1            # 定义y为列变量
    while y <= x:    # 当列<行时,例如第5行的1 2 3 4 5列依次进入循环
                     # format函数为大括号赋值,end=''函数是每次打印完不换行
        print('{}*{}={}'.format(y, x, x*y), end='\t')   # end='/t'是为每次打印加4个空格
        y += 1
    print('')        # print()方法默认是自动换行的,如果不希望换行就使用一个end属性
    x += 1
AI 解释代码:
    以上代码是一个九九乘法表的输出程序,具体解释如下:
    1、定义变量 x 为行变量,初始值为 1;
    2、进入外层 while 循环,循环条件是当 x 小于等于 9 时,即从第 1 行循环到第 9 行;
    3、在外层 while 循环中,定义变量 y 为列变量,初始值为 1 ;
    4、进入内层 while 循环,循环条件是当 y 小于等于 x 时,即在第 x 行从第 1 列循环到第 x 列;
    5、在内层 while 循环中,使用 print 函数输出乘法表的内容,输出格式为“ yx=xy ”,使用 format 函数进行字符串格式化,同时使用 end='\t' 参数不换行并且每次输出后加上 4 个空格;
    6、内层 while 循环结束后,使用 print 函数输出一个空行,从而实现在控制台输出一个完整的乘法表;
    7、外层 while 循环结束后,整个程序结束。

运行结果:

1*1=1    
1*2=2    2*2=4    
1*3=3    2*3=6    3*3=9    
1*4=4    2*4=8    3*4=12    4*4=16    
1*5=5    2*5=10    3*5=15    4*5=20    5*5=25    
1*6=6    2*6=12    3*6=18    4*6=24    5*6=30    6*6=36    
1*7=7    2*7=14    3*7=21    4*7=28    5*7=35    6*7=42    7*7=49    
1*8=8    2*8=16    3*8=24    4*8=32    5*8=40    6*8=48    7*8=56    8*8=64    
1*9=9    2*9=18    3*9=27    4*9=36    5*9=45    6*9=54    7*9=63    8*9=72    9*9=81
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值