网站首页 > 技术文章 正文
这篇文章我们将介绍一下for循环的使用,以及通过for循环学习一下break、continue和else子句的使用,如果大家对循环掌握得不是很扎实,可以先看一下《Python的while语句用法介绍 》,对循环有一定的认识之后,循序渐进的学习才更容易掌握。本文章使用的环境是:Windows 7 + Python 2.7.17 + PyCharm Community Edition 2016.1.5
我们通过一个小例子来看一下for的用法。假定有一个小公司,我们想计算一下全公司有多少个员工姓"张"。源代码如下:
执行结果如下:
雇员列表employee_list是公司所有员工的姓名;family_name是指要搜索的姓,比如我们这个例子中,是要搜索全公司所有姓"张"的员工;employee_num是一个计数器,代表有多少个姓"张"的员工;
这个for循环将迭代整个employee_list,要特别注意一下本行的最后要以冒号结尾,for循环的语句块都要进行缩进,通过缩进对齐确定哪些语句是循环要执行的语句。这一点是和C/C++语言完全不同的,大家要注意。我们看到在这个实例中,如果找到一个姓"张"的同事,就会给计数器employ_num加1。
这里有一个小技术点就是find函数,在这里我们通过find函数在一个字符串(employee_name)中查找一个子串(family_name),如果能够找到,则返回子串的位置数值,如果找不到,则返回-1,所以当返回值不等于-1时,我们给计数器employee_num加1
当循环结束后,我们通过计数器(employee_num)来判断一下是否找到了这样的人,如果找到了,则employee_num一定不会再是初始值0,所以我们根据判断结果是否为0,将对应的结果显示在控制台上,反馈给用户。
通过这个例子,我们看到了for循环的基本用法,下面我们再增加一些技术要点。这次我们在雇员列表employee_list中,查找一下有没有叫"张2"的员工。
在这个实例中,如果找到了这名员工,程序将使用break语句跳出循环,而不需要从头到尾迭代完。如果从头到尾迭代完也没有找到的话,则会执行else子句,这里的else子句从缩进上可以看出,是与for语句对齐的,所以它是与for配对使用的,而不是与if配对使用的。我们这个程序的执行效果如下,说明"张2"是找到了。
break语句的含义是当程序执行此语句时,将跳出当前循环,开始执行整个循环之后的语句。与之相对应的是continue语句,其含义是当程序执行此语句时,将跳出此语句之后循环体中要执行的语句,同时继续迭代下一个变量,继续循环。
说起来比较抽象,我们看一个关于continue的实例吧,还是上面的这个小公司,现在要统计一下姓王的同事的人数,上面的例子我们统计的是姓张的同事,姓张的人太少了,效果不好,这回咱们统计姓王的。可是现在有一个小问题,有一个叫"王4"的大哥,他这周正在办理退休手续,所以咱们统计的时候,就要把他剔除出去,不要计算他了。那么程序如下:
在这个实例中,我们增加了一个判断,如果雇员姓名employee_name是"王4",则continue,这样循环就不会再执行下面的加1的语句,并且再次返回循环体的开头,开始下一次循环,它并没有像break一样跳出循环体。所以最后的执行结果就是7个姓王的同事,只计算了6个。
通过上面的3个实例,我们讲解了一下for循环,break,continue语句和else子句的使用。大家可以自已尝试着把程序写一遍,感受一下这些技术要点。
猜你喜欢
- 2024-09-10 for循环 while循环 exit退出整个脚本
- 2024-09-10 Python中的for循环(python中的for循环嵌套)
- 2024-09-10 MATLAB表上作业法解决运输问题(matlab求解运输问题案例)
- 2024-09-10 Python笔记 循环中的break/continue/pass
- 2024-09-10 Python | for 循环(pythonfor循环1到10)
- 2024-09-10 golang2021流程控制(18)跳转控制语句-break
- 2024-09-10 Python中break语句在for循环中的使用
- 2024-09-10 Python-第10弹之while循环、for循环、break语句、continue语句
- 2024-09-10 js forEach跳出循环(js跳出当前for循环)
- 2024-09-10 JS中arr.forEach()如何跳出循环(js跳出each循环语句)
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)