今天小鲸要给大家介绍另一个常见的循环语句——for循环语句,那在介绍之前,我们一样来尝试着做一个小例子:
判断一个数组中是否有重复的数字,并找出重复的数字。
那我们首先来看第一个需求,判断数组中是否有重复数字。
同样的,先对需求进行分析,要判断数组中是否有重复数字,就要对数组中的元素进行一一比较,判断是否有一样的数字。那么就有多种方式,比如每次提取一个元素,与序列内的其他元素相比较,或者也可以复制一个无重复元素序列,两个序列相比较。对比这两种方式,可以发现第二种方式似乎更简单一些,这里呢,我们就采用第二种方式进行分析。
我们可以看到,给出了一个数组序列为list1,我们要判断这个序列里是否有重复元素。我们首先利用set()函数生成一个基于原序列list1的无重复元素序列list2,再将list2与list1里的元素进行对比,开始判断序列是否存在相同元素了。
result = “”
if len(list1) > len(list2):
result = “YES”
else:
result = “NO”
这里的result =表示定义一个变量,变量值还未确定,也就是我们下面if函数需要判断的部分。接着就开始正文啦,if函数已经是我们的老朋友了,这里的len()函数表示的是计数功能,统计序列里有多少个元素,如果list1的元素个数大于list2,那就说明序列里有元素重复,result的值为YES,如果list1的元素不大于list2,也就是else部分,那就说明序列里没有元素重复,result的值为NO。
print(‘该序列是否存在重复元素:%s’ % result)
最后这里就是导出测试结果,并显示出来。%s中s表示我们需要显示出的变量,后面标注% result说明显示变量为result。我们可以看到最后的结果是:
for循环语句
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。其常用的语法格式如下:
for i(变量) in sq(序列):
code……
那么我们来看第二个需求,找出重复的元素是哪些。现在就可以利用for循环遍历list1里的所有元素,找出重复的元素。具体代码如下:
同样的,我们在前面复制一个list2,建立一个无重复序列list3。接下来开始寻找list3中元素在list2中是否出现,如果出现则在list1里予以删除,那么当我们把所有无重复的元素删除掉,剩下的元素就是重复的数字了。
for i in list3: 表示在list3中出现的每一个元素i。
if i in list2:
list1.remove(i)
表示如果在list2中出现了,那么就在list1中把该元素删除。
print(‘list:%s中的重复元素有:%s’ % (list2, list1))
''内表示要打印的字符串,这里的list:%s表示的是填入的list为list多少,也就是后面列出的%(list2,list1),这是一种print()函数的表示方式,那么最后我们就得出了结果,list1中重复的元素有4,9,2。
好了,这里就是今天小鲸给大家介绍的for循环语句,不知道这个小例子大家学会了没有呢?每个例子都有多种写法,如果你有更简单的方法,记得在后台留言给小鲸哦~