|Python新手小白低级教程|第十五章:循环(2)while循环·高级&break和continue

本文介绍了Python中的while语句特殊用法,包括与else结合以及pass语句的应用。此外,详细讲解了break和continue两个控制语句的使用,并通过实战案例演示了阶乘计算和找数问题。
摘要由CSDN通过智能技术生成

前言

上节课,我们第一次接触了循环,是不是非常神奇?这节课,我们要继续深入循环,并学习一个新的内容。你准备好了吗?上路!

一、while语句特殊用法

1.while语句和else结合

看到这里,好多同学懵逼了:上次刚讲了一个if和while结合,咋else也能和while结合呢?
其实,大家也可以把while看做if,因为while后面也能加条件。那么,else怎么放大家心里面应该也有数了。
那么,接下来这个例子大家会做吗?、
题目:输出1~10,循环结束后输出“循环结束”

现在,这道题是不是so easy?嘿嘿,核对一下,看看你做的对不对。

i = 1
while i <= 10:
    print(i)
    i = i + 1
else:
    print("循环结束") 

怎么样,while是不是“海纳百川”?

2.pass语句架空if

架空if,这个语句看起来好威风!
不过,pass也可以看做“空气”,不过要比空着好。
废话不多说,让我们用实例告诉大家pass怎么用。

i = 1
while i <= 100:
    if i % 2 == 0: 
        pass
    else:
        print(i)
    i = i + 1

大家眼熟不?这就是上节课例题的第一题变形。这里的pass被放在if里面,表示“直接跳过,满足了就不用看”,如果不满足,就跳到下面的else里。这样的话,我们的if语句就不那么死板了,而是在pass的帮助下活灵活现。
当然,放在else里也不例外:

i = 1
while i <= 100:
    if i % 2 == 1:
        print(i)
    else:
        pass
    i = i + 1

是不是非常有趣?有意思的还在下面!

二、横闯江湖的俩兄弟:break和continue

这两个家伙上来就是金身上场,横闯江湖哎!它们究竟有多牛?它们堪称Python永动机的绊脚石
为什么这么说呢?因为它们一个能配合if语句打出王炸,直接截断循环;一个能配合if语句滑滑梯,直接换张纸,重新开始一波新的循环
接下来我们就来好好认识这两个“江湖大汉”

1.break

break,中文意思“打破”,看它这个出场陈设,想必一定是个刁难人的主,连while死循环遇到他都得让路投降走弯道。接下来,我们来看看它具体怎么用:

i = 1
while True:
    print(i)
    if i == 3:
        break
    i += 1

也就是说,从i == 3开始,break直接打破循环,成功输出。从这里可以看出,break对Python的‘永动机’while死循环毫不客气。

总之,break只要记住:一旦符合条件,直接结束循环,进入下一阶段。

2.continue

这位大侠就比较的温和,没有break那么暴力。它的中文意思是“继续”
听他这名字,我们就知道他不会直接破坏循环,而是切换至下一循环。
打个比方,如果循环是一叠纸,那break是直接撕成碎片,而continue是“换纸”,比起break要更有素质。

i = 0
while i <= 10:
    i = i + 1
    if i == 1:
        continue
    print(i)

这里的continue和break方法大同小异,只不过continue比较挑剔。像在这里,上来就continue,程序就会这样:
在这里插入图片描述
知识输出了一个1,连程序运行结束都没有。这种情况,堪称“continue混沌循环”。虽然continue不能管死循环,但是普通循环它还是能大打出手的。
接下来,来做个小练,来看看大家break和continue学的如何。

练习

1.1.1使用死循环输出1~100.(提示:break)
1.1.2使用循环输出“不三不四”1~100数列(提示:木有3,4)

三、循环实战

1.阶乘

数学好的同学应该认识阶乘,在数学中写成n!,运算规则:1×2×3×……×n,换句话说,就是从1一直乘到我们指定的一个数。接下来,我们就试着我们来写这个程序:计算 10!

(1)思路

这个程序可以参照以前讲的算1到10的和。换汤不换药,我们只要把中间的不断加值改成不断减值就可以了。

(2)编程

接下来就是编程了。老样子,先准备2个变量,一个表示乘数,一个表示总积。我们暂且先设为n和num。

n = 10
num = 1

然后,就是写循环语句。
不过这里,有一点要注意:num(积值)千万不能设为0,因为0乘任何数都等于0.
条件很简单。

n = 10
num = 1
while n > 0:

只要n大于0,程序就能正常执行。
那循环语句怎么写呢?我们设n等于10,那么体现的全过程就是10×9×8×7×6×……×1,也就是递减。此时,我们需要用到的是n = n -1,程序才能成立。
大家可以试着编程了吗?答案来袭!

n = 10
num = 1
while n > 0:
    num = n * num
    n = n - 1
print(num)

你做对了吗?这段代码非常实用,记得分析一下!

2.找数

题目:寻找100以内5和7的公倍数。

(1)思路

[n,m]公倍数,就是既能被n整除,又能被m整除。在Python中法,表示为i % m == 0和i % n == 0这是解决这个程序的核心
我们把5,7代入,就能知道判断条件了。
所以,聪明的你想到了吗?

(2)编程

先设变量i,while i <= 100。然后,在中间插入“i是5,7公倍数时输出i”即可。

i = 1
while i <= 100:
    i = i + 1
    if i % 5 == 0 and i % 7 == 0:
        print(i)

两道题练下来,大家觉得掌握如何?

总结

好啦,今天的内容到这里也告一段落。
习题?不用,下节课我们会学习IPO程序,到时候我们会重点练习,大家敬请期待!
最后,别忘了一圈三连,点个关注哦!下期见!

Test Key

1.1.1

i = 1
while True:
    print(i)
    i = i + 1
    if i == 101:#注意!这里到101,否则100就没了!
        break

1.1.2

i = 0
while i <= 100:
    i = i + 1
    if i == 3:
       continue
    if i == 4:
       continue
    print(i)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值