2024-06-01 04:10:00 发布
网友
所以我现在在一个班上学习三种主要的编程模式。我知道python同时使用函数和命令范型。我正在寻找这些范例中每一个的简短python示例代码,以便在明天考试之前更好地理解这一点。谢谢您!
思考命令式和函数式范例之间区别的一种方法是,对于命令式,您必须显式地对操作顺序进行编码(我在这里使用非常松散的语言使其对您来说更简单)。相反,在函数式编程中,您不是定义序列,而是声明要建模的内容(这就是为什么它有时被称为声明式编程风格)。
因此在下面的例子中,如果我想确定列表中哪些数字是偶数,我必须显式地对循环进行编码,并在进行必要的编码时检查每个数字是否是偶数。在函数示例中,我不需要这样做。在这个例子中,我刚刚定义了一个数是偶数的含义,然后我将这个抽象/函数应用到列表中。简单的一行。
两种范式之间有更多的差异,但这应该给你一个想法。
命令:
naturalNumbers = [0,1,2,3,4,5,6,7,8,9] def printEvenNumbers (listOfNumbers): for x in listOfNumbers: if x % 2 == 0: print True else: print False
功能:
def evenNumber (x): return (x % 2) == 0 print(map(evenNumber, naturalNumbers))
你可以用两种方法来翻字典:
def reverse_mapping1(map): return {v:k for k, v in map.items()} def reverse_mapping2(map): inverse = {} for k, v in map.iteritems(): inverse[v] = inverse.get(v, []) inverse[v].append(k) return inverse
这不是真正的函数式编程,但它确实提供了一种不同的思考解决问题的方法,这是我认为你的老师试图达到的。
给定L = [1, 2, 3, 4, 5],我们可以用两种方法计算和。
L = [1, 2, 3, 4, 5]
sum = 0 for x in L: sum += x
功能(本地功能):
def add(x, y): return x + y sum = reduce(add, L)
功能(lambda表达式):
sum = reduce(lambda x, y: x + y, L)
(当然,内置的sum函数可以有效地执行与这两个函数相同的操作。)
sum
思考命令式和函数式范例之间区别的一种方法是,对于命令式,您必须显式地对操作顺序进行编码(我在这里使用非常松散的语言使其对您来说更简单)。相反,在函数式编程中,您不是定义序列,而是声明要建模的内容(这就是为什么它有时被称为声明式编程风格)。
因此在下面的例子中,如果我想确定列表中哪些数字是偶数,我必须显式地对循环进行编码,并在进行必要的编码时检查每个数字是否是偶数。在函数示例中,我不需要这样做。在这个例子中,我刚刚定义了一个数是偶数的含义,然后我将这个抽象/函数应用到列表中。简单的一行。
两种范式之间有更多的差异,但这应该给你一个想法。
命令:
功能:
你可以用两种方法来翻字典:
这不是真正的函数式编程,但它确实提供了一种不同的思考解决问题的方法,这是我认为你的老师试图达到的。
给定
L = [1, 2, 3, 4, 5]
,我们可以用两种方法计算和。命令:
功能(本地功能):
功能(lambda表达式):
(当然,内置的
sum
函数可以有效地执行与这两个函数相同的操作。)相关问题 更多 >
编程相关推荐