几段小代码解释Python命令式编程和函数式编程

2017-05-24 董付国 Python小屋 Python小屋

所谓命令式编程,是指How to do,要通过指令告诉计算机如何一步一步地完成预定任务;而所谓函数式编程,可理解为What to do,只需要通过简单的指令告诉计算机要做什么就可以了,代码更加简洁、易理解、易维护和易并行。本文通过一个小问题来演示命令式编程和函数式编程在Python中的用法。


# 创建列表

lst = list(range(10))

print(lst)


# 下面的代码使用不同方法创建新列表,新列表中的元素是lst列表中的对应元素加5


# 命令式编程,循环

result = []

for item in lst:

    result.append(item + 5)

print(result)


# 列表推导式,也属于命令式编程

result = [item+5 for item in lst]

print(result)


# 函数式编程

def add5(v):

    return v+5

result = list(map(add5, lst))

print(result)


# 函数式编程,lambda表达式

result = list(map(lambda item: item+5, lst))

print(result)


# 函数式编程,偏函数

from functools import partial

from operator import add


add5 = partial(add, 5)

result = list(map(add5, lst))

print(result)


运行结果:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]



---------------分割线---------------

本周四(5月25日)应邀在CSDN学院分享数据挖掘与分析的第一次直播课(共3次)。CSDN学院精选了录播课程与直播课程,为学习Python 数据挖掘与分析的同学提供从Python入门到数据挖掘、数据 分析,再到实战解析全套内容。本公众号粉丝可获得大幅优惠,进入公众号留言「数据挖掘」即可领取优惠券。课程地址:

http://edu.csdn.net/mobile/openCourse/detail/402?ref=2&from=timeline