![Python语言从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/679/33643679/b_33643679.jpg)
6.1 for循环语句
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/75_01.jpg?sign=1739264054-PAgvPwVXueRy8oHQQlmPhvHAEQQGuZyT-0-003cca8e9cb4b0530e4ffca55f267257)
↑扫码看视频
在本节中,将详细讲解在Python程序中使用for循环语句的知识。
6.1.1 基本的for循环语句
绝大多数的循环结构都是用for语句来完成的。在Java等其他高级语言中,for循环语句需要用循环控制变量来控制循环。而在Python语言的for循环语句中,则是通过循环遍历某一序列对象(如元组、列表、字典等)的方式构建循环,循环结束的标志是序列对象被遍历完成。
使用for循环语句的语法格式如下所示。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/75_02.jpg?sign=1739264054-khqcscCzfFHWFlAfCJuk4S4BE9uzc0Nz-0-f63dff52007309fdcf7b12370627cd8c)
上述for循环语句的含义是遍历for语句中的各个对象,每经过一次循环,循环变量就会得到遍历对象中的一个值。一般情况下,当对象被全部遍历完成时会自动退出循环。上述格式中各参数的具体说明如下。
● iterating_var:表示循环变量。
● sequence:表示遍历对象,通常是元组、列表和字典等。
● statements:表示执行语句。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/76_01.jpg?sign=1739264054-dxMyfrc0K1OQtfkq7XIcru1HQY21g7tj-0-3872cd122be19ac5eef2b7712a912579)
实例文件for.py的具体实现代码如下所示。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/76_02.jpg?sign=1739264054-HX3FNznVXLShGjUiRr5sWjlcE652xgMk-0-ff9cb1f046b48433ac14340d00907339)
执行后输出的结果如下。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/76_03.jpg?sign=1739264054-Bz7oyqvWl0VEjiwMdEBP3fExfWjp78vQ-0-fd5533a0f9a3532f18d34450f6e42b09)
6.1.2 通过遍历方式实现循环
在Python语言中,还可以通过遍历的方式实现循环功能,此时需要借助Python内置函数range()来实现。因为在Python的for循环语句中,对象集合可以是列表、字典以及元组等,所以可以通过函数range()产生一个整数列表,这样可以完成计数循环功能。
使用函数range()的语法格式如下所示。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/76_04.jpg?sign=1739264054-RzyMStq3xdpbzodmef002jkV7mRUA5p7-0-3b9160c22347e5a6d51ab5139e6cdab8)
● start:可选参数,起始数,默认值为0。
● stop:终止数,如果range只有一个参数x,那么range产生一个从0至x-l的整数列表。
● step:可选参数,表示步长,即每次循环序列增加值。
注意:产生的整数序列的最大值为stop-1。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/77_01.jpg?sign=1739264054-av9KaXL4pfqnlVELipskWs5oKCJAZI9I-0-c26b05021f09ba40d644d0db83658fb5)
实例文件diedai.py的具体实现代码如下所示。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/77_02.jpg?sign=1739264054-fGVE8H0FYWhwQqyjV3yesahos1tqSVMO-0-a8bcc794105bad585853a459950d2978)
执行后输出的结果如下所示。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/77_03.jpg?sign=1739264054-ROVylJJvMNPTHx29XLeMUm8qSiSlaTvB-0-314931b7f97b1b91b85fe0de21be317e)
6.1.3 for…else循环语句
使用for…else循环语句的语法格式如下所示。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/77_04.jpg?sign=1739264054-kHtbtrVogkEiV6Z17zF1L92QtbFWQpTk-0-62e88fd478a72dfa21f53d3bb0307a55)
● iterating_var:表示循环变量。
● sequence:表示遍历对象,通常是元组、列表和字典等。
● statements1:表示for语句中的循环体,它的执行次数就是遍历对象中值的数量。
● statements2:else语句中的执行代码,只有在循环正常退出(遍历完所有遍历对象中的值)后执行。
在使用for…else语句时,for里面的语句和普通的for循环没有区别,else中的语句会在循环正常执行完(即for不是通过break跳出而中断的)的情况下执行。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/77_05.jpg?sign=1739264054-KMiGRmKekuXkobVpecypoLdUrf2OUZwa-0-b5e33abea3d9a92662012638feb35a53)
实例文件else.py的具体实现代码如下所示。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/77_06.jpg?sign=1739264054-yXKZ94ZI9uCQuY39irLO4eG2Sdjszh15-0-a2488caad32ceda6ae0b43ccb63f67f5)
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/78_01.jpg?sign=1739264054-lCSfC0ayol7wJ0A6B0lTG6SPV3dzXa74-0-bd5777b18f114e66e8db8d3d168f2d9b)
执行后输出的结果如下所示。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/78_02.jpg?sign=1739264054-qLXTIhXyKRCj9oKN8p3UcDR3Few4hnLq-0-446b517296bc924636ffca2a7a360a11)
6.1.4 嵌套for循环语句
使用嵌套for循环语句的语法格式如下所示。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/78_03.jpg?sign=1739264054-hj03RdfFMCry3Mnx9M4twLQSTVcCBOWa-0-0cc8dc3662093a4af86a4a3a8381df3a)
● iterating_var:表示循环变量。
● sequence:表示遍历对象,通常是元组、列表和字典等。
● statements1:表示for语句中的循环体,它的执行次数就是遍历对象中值的数量。
● statements2:else语句中的statements2,只有在循环正常退出(遍历完所有遍历对象中的值)时执行。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/78_04.jpg?sign=1739264054-LGnZEvVwsirn62kcXLtJP0zhdLWTsPqi-0-75c8ae4d06e47a667ec46aee59e8c2bb)
实例文件qiantao.py的具体实现代码如下所示。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/78_05.jpg?sign=1739264054-OQxMsJwEqhTUwffjymJaI0kpqNBCJXMm-0-546bb3a4b8fccc43b5ba51a852ac2b6a)
在上述代码中,首先使用输入函数获取用户指定序列的开始值和结束值,然后使用for语句构建了两层嵌套的循环语句获取素数并输出结果。使用外循环语句生成要判定素数的序列,使用内循环生成测试的因子。并且使用else子句的缩进来表示它属于内嵌的for循环语句,如果多缩进一个单位,则表示属于其中的if语句;如果少缩进一个单位,则表示属于外层的for循环语句。因此,Python中的缩进是整个程序的重要构成部分。执行后将提示用户输入两个整数作为范围,例如分别输入“1”和“10”后输出的结果如下所示。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/79_01.jpg?sign=1739264054-4SUU2m7u3oFy0YWIxRegclbWFxVk0fE0-0-3ccb306c0002f876dd8e3f86d45b70ef)