文章目录
前言
上节课,我们第一次接触了循环,是不是非常神奇?这节课,我们要继续深入循环,并学习一个新的内容。你准备好了吗?上路!
一、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)