学习编程的一个重要部分是识别和使用编程中的通用模式。在这些笔记中,我将向您介绍在Python中使用循环时出现的一些最常见的模式。
下面赢博体育的例子都将使用一个通用的数据集:
Data = [2,-1,-2,1,-3,-7,-3,1,6,2,1,2,-3,2, -1]
第一个也是最基本的循环模式是求和模式。要计算数据集中项目的总和,我们将使用以下代码。
对于数据中的x, Total = 0: Total += x
我们可以在求和循环中做其他事情,而不仅仅是相加。例如,如果我们需要计算列表中元素的平均值,我们需要在添加元素的同时对它们进行计数。
Total = 0 count = 0 for x in data: Total += x count += 1 average = Total /count
在搜索模式中,我们遍历一个循环来寻找一些东西。为了帮助我们进行搜索,我们通常在循环体中放置一个if语句来检查我们到达的每个项目。
例如,要计算数据列表中有多少项是负的,我们可以这样做:
Negative_count = 0 for x in data:如果x < 0: Negative_count += 1
下面是一些搜索列表中最大数字的代码。
最大= data[0] for x in data:如果x >最大:最大= x
单循环还可以用于同时搜索多个内容。在本例中,我们搜索数据列表中最小和最大的数。
最小= data[0]最大= data[0] for x in data:如果x >最大:最大= x elif x <最小:最小= x
过滤模式涉及选择某个列表的子集。实现过滤最常见的方法是从一个空的结果列表开始,然后在找到要添加的项时向其中添加项。
例如,如果我们想过滤掉数据列表中的负数,只保留正数,我们可以这样做:
Positive_numbers = [] for x:如果x >= 0: Positive_numbers .append(x)
编程中的另一个重要概念是重用。一旦我们解决了一个问题,我们可能想在其他程序中使用相同的解决方案。实现重用最常见的方法是将有用的代码嵌入到函数中。然后,可以将有用的函数集合收集到一个函数包中,并将其导入到其他程序中。
下面是上面的一些重构为函数的例子。
下面是一个将列表中的元素相加的函数。
Def sum_list(values): sum = 0 for x in values: sum += x返回sum
下面是一个查找列表中最小值和最大值的函数。
deffind_bounds (values):最小= values[0]最大= values[0] for x in values:如果x <最小:最小= x elif x >最大:最大= x return(最小,最大)
下面是一个过滤列表并返回仅包含正数值的列表的函数。
defpositive_filter (value) positive_numbers = [] for x in values:如果x > 0: positive_numbers.append(x)返回positive_numbers
除了重用之外,功能在问题分解中也扮演着重要的角色。为了解决更复杂的问题,我们可能需要将问题分解成子任务。编写函数来帮助执行子任务是编程中的常见做法。
这里有一个例子。数字列表中的模式是出现次数最多的数字。计算列表模式的一个重要子任务是计算给定数字在值列表中出现的次数。这里有一个函数来回答这个问题。
def count_occurs (values,v): ““”返回v在values中出现的次数的计数”“” count = 0 for x在values中:如果x == v: count += 1返回count
然后,我们可以使用这个函数来帮助我们编写计算一组数字的模态的函数。
def mode(values): ““”返回values中出现次数最多的数字”“” max_count = 1 most_common = values[0] for x in values: count = count_occurs (values,x)如果count > max_count: max_count = count most_common = x返回most_common
数据值列表的平均值x是这些数据值的平均值。
数据值列表的标准差为
在列表中,离群值是指距离列表平均值超过2个标准差的数据元素。
编写程序查找数据列表中的异常值
Data = [2,-1,-2,1,-3,-7,-3,1,6,2,1,2,-3,2, -1]
你的程序应该定义和使用三个函数: