零基础Python完全自学教程12:Python中的循环语句

    时间: 浏览:144次  来源:站长在线
欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础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语句

相关阅读:

《零基础Python完全自学教程》目录 

1、认识python

2、安装python及写第一个Python程序

3、Python开发工具介绍

4、Python语法特点

5、Python中的变量

6、Python中的基本数据类型

7、Python中的基本输入和输出

8、Python中常用的运算符

9、Python中运算符的优先级和条件表达式

10、Python中的三大程序结构

11、Python中的选择语句

12、Python中的循环语句


文末福利:

1、关注站长在线官方公众号站长在线微信号:olzzcom ,文末也有公众号二维码,关注公众号以后回复python,本站精心整理的Python书籍、软件、工具都实时更新哦!本站所安装的python3.10、 IDLE中文版 、PyCharmVisual Studio CodeSublime Text4等都在里面哦!

2、站长在线官方微信交流群已经开通了,微信扫码进入,一起交流,一起进步!

本文地址:https://www.olzz.com/pythonxhyj.html
码字不易,打个赏呗
站长在线小编感谢你的支持!
站长在线站长一对一技术培训,100元两个小时
阿里云虚拟主机1G空间,120元一年
香港、美国虚拟主机100元一年,1000元永久
腾讯云双十一0.4折起,2核8G5M三年仅700元,2核4G8M三年仅198元

猜你喜欢

站长在线Python精讲:Python中正则表达式的语法详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中正则表达式的语法详解》。本知识点主要内容有9点:行定位符、元字符、限定符、字符集、排除字符、选择字符、转义字符、分组、在Python中使用正则表达式语法。

2021-12-07  分类:Python教程  浏览:12次


站长在线零基础Python完全自学教程19:python中字符串完全解读

欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础 Python完全自学教程》今天给大家分享的是第19课《 python中字符串完全解读》。本节课是一个大课,我分了这些知识点进行详细讲解:字符串编码转换:encode编码和decode解码详解、使用“+”运算符来拼接字符串详解、使用len()函数计算字符串的长度详解、使用索引和切片的方法截取字符串详解、使用split()方法分割、使用join()方法合并字符串详解、检索字符串的5大方法详解、字符串中字母的大小写转换的4大方法详解、去除字符串中的空格和特殊字符的4个方法详解、格式化字符串的两种方法详解。

2021-12-05  分类:Python教程  浏览:32次


站长在线Python精讲:在Python中格式化字符串的两种方法详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中格式化字符串的两种方法详解》。本知识点主要内容有:使用%操作符格式化字符串和使用format()方法格式化字符串。

2021-12-04  分类:Python教程  浏览:34次


站长在线Python精讲:在Python中去除字符串中的空格和特殊字符的4个方法详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中去除字符串中的空格和特殊字符的4个方法详解》。本知识点主要内容有:使用strip()方法用于去掉字符串左、右两侧的空格和特殊字符、使用lstrip()方法用于去掉字符串左侧的空格和特殊字符、使用rstrip()方法用于去掉字符串右侧的空格和特殊字符、使用replace()方法,删除中间的空格和特殊字符。

2021-12-03  分类:Python教程  浏览:36次


站长在线经典Python题:使用Python编程思想解决鸡兔同笼的问题的4种方法

欢迎你来到站长在线的Python题库,鸡兔写完Python教程以后,还是来一个Python的题目吧!想来想去,还是写一个经典的题目为好,作为本栏目的第一个题目。我就想到了比较热门的题目《鸡兔同笼的问题》,本文不是用数学的方法,而是用Python编程的方法解决鸡兔同笼的问题。用的就是《Python中的三大程序结构》: 顺序结构、选择结构和循环结构。解决问题具体的方法就是;顺序语句假设法、选择语句判定法、while循环语句遍历法、for循环语句遍历法。下面我来一一解答:

2021-12-01  分类:Python题库  浏览:47次


站长在线Python精讲:在Python字符串中字母的大小写转换的4大方法详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python字符串中字母的大小写转换的4大方法详解》。本知识点主要内容有:使用lower()方法,把所有大写字母转换成小写字母、使用upper()方法,把所有小写字母转换成大写字母、使用capitalize()方法,仅首字母转化为大写字母,其余小写字母、使用title()方法,把每个单词的首字母转化为大写字母,其余为小写字母。

2021-12-01  分类:Python教程  浏览:50次


站长在线Python精讲:在Python中检索字符串的5大方法详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中检索字符串的5大方法详解》。本知识点主要内容有:使用count()方法检索指定字符串在另一个字符串中出现的次数、使用find()方法检索是否包含指定的子字符串、使用index()方法检索是否包含指定的子字符串、使用startswith()方法用于检索字符串是否以指定子字符串开头和使用endswith()方法用于检索字符串是否以指定子字符串结尾。

2021-11-30  分类:Python教程  浏览:46次


站长在线Python精讲:在Python中使用split()方法分割、使用join()方法合并字符串详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中使用split()方法分割、使用join()方法合并字符串详解》。本知识点主要内容有:在Python中使用split()方法分割字符串和在Python中使用join()方法合并字符串。

2021-11-29  分类:Python教程  浏览:40次


站长在线Python精讲:在Python中使用索引和切片的方法截取字符串详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中使用索引和切片的方法截取字符串详解》。本知识点主要内容有:使用索引的方法截取一个字符串和使用切片的方法截取一段字符串。

2021-11-28  分类:Python教程  浏览:59次


站长在线python精讲:在Python中使用len()函数计算字符串的长度详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中使用len()函数计算字符串的长度详解》。本知识点主要内容有:在Python中使用len()函数计算字符串在UTF-8编码中的长度和使用len()函数计算字符串在GBK编码中的长度。

2021-11-27  分类:Python教程  浏览:61次