零基础Python完全自学教程12:Python中的循环语句
欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础Python完全自学教程》今天给大家分享的是第12课《Python中的循环语句》。本节课主要内容有:Python中的whi
欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础python完全自学教程》今天给大家分享的是第12课《Python中的循环语句》。本节课主要内容有:Python中的while循环、Python中的for循环、Python中的循环嵌套。
回顾一下上节课的内容:第11课 Python中的选择语句:最简单的if语句、if...else语句、if...elif...else语句、选择语句的嵌套。看起来是不是比较相似呢?一个是选择语句,一个是循环语句。
循环很容易理解,就是周而复始的重复下去,直到条件改变才会终止。比如每天的公交车、地铁等公共交通工具必须不断的往返于始发站和终点站。类似的反复做同一件事的情况称为循环。
循环语句 (Loop statement) 又称重复结构,用于反复执行某一操作。
在Python中,循环主要有以下两种类型:
1、一直重复,直到条件 不满足时才结束的循环,称为条件循环。只要条件为真,这种循环就会一直持续下去。如while循环。(while中文意思是:虽然;在…期间;当…的时候;与…同时;)
2、重复一定次数的循环,称为计次循环,如for循环。(for中文意思是:对于;为了;给,对,供;以帮助;关于)
接下来就详细讲讲这两种类型的循环。
12.1、Python中的while循环
while循环就是条件循环,是通过一个条件来控制是否要继续反复执行循环体中的语句。其语法格式如下:
while 条件表达式
循环体
注:循环体是一组被重复执行的语句(代码块)。
当条件表达式的返回值为真时,将执行循环体的语句,执行完毕后,重复判断条件表达式的返回值,直到条件表达式返回的结果为假是,退出循环。while循环语句执行流程图,如图12.1所示:
图12.1 while循环语句执行流程图
实例12.1、继续讲解黄蓉与瑛姑见面的数学题。(while循环版)
使用while循环,实现从1开始依次尝试符号条件的数,直到找到符合条件的数才退出循环。
实现方法:
实现定义一个用于计数的 变量number (number 是数字的单词)和一个作为循环条件的变量none (none是没有的单词,默认值为真),然后编写while语句,在循环体中,变量number的值加1,并且判断number的值是否符合条件,当符合条件时,将变量none的值设置为假,从而退出循环。具体代码如下:
print("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?\n")
none = True # 作为循环条件的变量
number = 0 # 计数的变量
while none:
number += 1 # 计数加1
if (number%3 ==2) and (number%5 ==3) and (number%7 ==2): # 判断是否符合条件
print("答曰:这个数是",number) # 输出符合条件的数
none = False # 将循环条件的变量赋值为否
执行结果:
今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?
答曰:这个数是 23
>>>
当然,上面我们的计数的变量是0,加1以后是1开始,我们可以设置成24开始,就会得到一个数字是128,执行结果:
今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?
答曰:这个数是 128
>>>
当然,我们又把起始数字改成129,就会得到233,以此类推;23,128,233,338,443……等有无穷无尽的数字满足条件。所以在代码中最后一行的none = False
一定要加上。否则就会无限循环下去。
12.2、Python中的for循环
for循环是一个计次循环,一般应用于循环次数已知的情况下。通常用于枚举或遍历序列,以及迭代对象中的元素。起语法格式如下:
for 迭代变量 in 对象:
循环体
其中:
迭代变量用于保存读取的值;
对象为要遍历或迭代的对象,该对象可以是任何有序的序列对象,如字符串、列表、和元组等;
循环体为一组被重复执行的语句。
for循环语句的执行流程图,如图12.2所示:
图12.2、for循环语句执行流程图
12.2.1、进行数值循环
在使用for循环时,最常用的就是数值循环。还记得小学题目“1+2+3+……+100=?”的题目吗?即求1~100的和。在这里可以使用代码实现:
print("计算 1+2+...+100 的结果为:")
result = 0 #保存累加结果的变量
for i in range(101): #逐个获取从 1 到 100 这些值
result += i #做累加操作
print(result) #实现循环结束是输出结果
运行后的结果为:
计算 1+2+...+100 的结果为:
5050
>>>
上述代码中,使用了range()函数,该函数是Python中的内置函数,用于生成一系列的连续的整数,主要用于for循环中,起语法格式如下:
range(start,end,step)
各参数说明如下:
start:用于指定技术的起始值,可以省略。如果省略则从0开始。
end:用于指定计数的结束值,不能省略。结束值不包括该值,如range(100),则表示值为0~99。当range()函数只有一个参数时,即表示指定计数的结束值。
step:用于指定步长,即两个数之间的间隔,可以省略。如果省略则表示步长为1。如range(1,7)则表示值为1、2、3、4、5、6、
注意:在使用range()函数时:
1、如果只有一个参数,那么表示指定的是end;
2、如果只有两个参数,那么表示指定的是start和end;
3、只有三个参数都存在时,最后一个参数step才表示步长。
例如。使用下列for循环语句,将输出20以内的所有奇数:
for i in range(1,20,2):
print(i,end = ",")
运行结果如下:
1,3,5,7,9,11,13,15,17,19,
>>>
在Python中,使用print()函数时,如果想要实现输出的内容在一行上面显示,就需要加上“,end = "分隔符"”,这里是使用,作为分隔符。如果不加则竖排显示,一行显示一个,自己测试效果。
实例12.2、使用for循环解决黄蓉与瑛姑见面的数学题。(for循环版)
使用for循环语句实现1循环到100(不含100),并且记录符合黄蓉要求的数。
具体实现方法:应用for循环语句从1迭代到100,在循环体中,判断迭代变量number 是否符合“三三数之剩二,五五数之剩三,七七数之剩二”的要求,如果符合,则应用print()函数输出,否则继续循环。代码如下:
print("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?\n")
for number in range(100):
if (number%3 ==2) and (number%5 ==3) and (number%7 ==2): # 判断是否符合条件
print("答曰:这个数是",number) # 输出符合条件的数
运行程序,输出结果如下:
今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?
答曰:这个数是 23
>>>
上面是循环到100的,我们试试循环到1000看看,输出结果为:
今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?
答曰:这个数是 23
答曰:这个数是 128
答曰:这个数是 233
答曰:这个数是 338
答曰:这个数是 443
答曰:这个数是 548
答曰:这个数是 653
答曰:这个数是 758
答曰:这个数是 863
答曰:这个数是 968
>>>
重新修改一下代码,循环到10000,输出的话,只是输出数字,并且在一行显示,自己修改代码哦!显示如下,那么你就修改对了:(自己动动脑筋,学会根据原有代码,举一反三的改动,站长在线不在公布代码,但是公布结果)
今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?
答曰:在1-10000中,这些数都符合:
23,128,233,338,443,548,653,758,863,968,1073,1178,1283,1388,1493,1598,1703,1808,1913,2018,2123,2228,2333,2438,2543,2648,2753,2858,2963,3068,3173,3278,3383,3488,3593,3698,3803,3908,4013,4118,4223,4328,4433,4538,4643,4748,4853,4958,5063,5168,5273,5378,5483,5588,5693,5798,5903,6008,6113,6218,6323,6428,6533,6638,6743,6848,6953,7058,7163,7268,7373,7478,7583,7688,7793,7898,8003,8108,8213,8318,8423,8528,8633,8738,8843,8948,9053,9158,9263,9368,9473,9578,9683,9788,9893,9998,
>>>
12.2.2、遍历字符串
使用for循环语句除了可以循环数值,还可以遍历字符串,列如:下面代码将横向显示的字符串转换为纵向显示:
string = "建一个网站,创一番事业"
print(string) #横向显示
for ch in string:
print(ch) #纵向显示
执行代码如下:
建一个网站,创一番事业
建
一
个
网
站
,
创
一
番
事
业
>>>
12.3、Python中的循环嵌套
我们在上一节课中,讲到了《选择语句的嵌套》。同样的,循环语句是也是可以嵌套的。
在Python中,允许在一个循环体中嵌入另一个循环体中,这称为循环嵌套。while循环和for循环都可以相互嵌套。
12.3.1、在while中套用while:
while 条件表达式1:
while 条件表达式2:
循环体2
循环体1
12.3.2、在for中套用for:
for 迭代变量1 in 对象1:
for 迭代变量2 in 对象2:
循环体2
循环体1
12.3.3、在while中套用for:
while 条件表达式:
for 迭代变量 in 对象:
循环体2
循环体1
12.3.4、在for中套用while:
for 迭代变量 in 对象:
while 条件表达式:
循环体2
循环体1
除了上面的4种嵌套,还可以多层次嵌套,原理是一样的,这里不在一一写出了。
实例12.3、输出九九乘法表
先来一个简单的,使用while循环,输出类似九九乘法表的小星星。
i = 1 #起始值为1
while i <=9: #输出最多9行
print(" * "*i) #输出*的i倍数
i += 1 #计数+1
执行结果如下:
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
>>>
使用嵌套的for循环,输出九九乘法表,代码如下:
for i in range(1,10): # 输出9行
for j in range(1, i + 1): # 输出与行数相等的列
print(str(j) + "×" + str(i) + "=" + str(i * j) + "\t",end = '')
print('') # 换行
上述代码使用了双层的for循环,第一个for代表输出9行,同时也是乘数;第二个for循环控制乘法表的列数,最大值等于行数。
运行结果如下:
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
>>>
使用嵌套for循环,输出九九乘法表。
到此为止,今日的《Python中的循环语句》讲解的Python中的while循环、Python中的for循环、Python中的循环嵌套都讲解完毕,课程里面的代码自己去执行了。没有时间的复制代码执行一次,有时间的,亲自把代码敲出来进行练习。明白其中的意思,最好举一反三,自己做实例。
下节预告:零基础Python完全自学教程13:Python中的break语句、continue语句和pass语句
相关阅读:
1、认识python
11、Python中的选择语句
12、Python中的循环语句
文末福利:
1、关注站长在线官方公众号【站长在线】微信号:olzzcom ,文末也有公众号二维码,关注公众号以后回复python,本站精心整理的Python书籍、软件、工具都实时更新哦!本站所安装的python3.10、 IDLE中文版 、PyCharm、Visual Studio Code、Sublime Text4等都在里面哦!
2、站长在线官方微信交流群已经开通了,微信扫码进入,一起交流,一起进步!
本文地址:https://www.olzz.com/pythonxhyj.html
阿里云虚拟主机1G空间,120元一年
香港、美国虚拟主机100元一年,1000元永久
腾讯云双十一0.4折起,2核8G5M三年仅700元,2核4G8M三年仅198元
猜你喜欢