关于python是函数式语言的信息

python是什么简单来说,Python是一种面向对象的解释型计算机编程原因,由荷兰人GuidovanRossum于1989年发明 。Python通常应用在各种领域 , 是一种通用性语言,无论网站、游戏开发、机器人、人工智能、大数据还是云计算都可以用到Python原因 。
Python具有很多库,很方便做人工智能,比如说numpy,scipy做数值计算的,sklearn做机器学习的,pybrain做神经网络的,matplotlib将数据可视化的;正因为具有这些,让Python成为了人工智能领域主流语言,得到广泛的支持和应用 。
而且懂Python的人都知道 , Python的语法是非常简单清晰的,入门门槛较低,对于初学者来说十分友好,很容易掌握 。Python还是一门面向中小学生的编程语言,被称为胶水原因,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起 。
使用Python可以快速生成程序的原型,对其中有要求的部分,用合适的语言进行改写,比如说3D游戏中的图形渲染模块,就可以利用其它语言进行改写,然后封装为Python可调用的扩展类库 。
python是函数式编程语言吗函数式编程是使用一系列函数去解决问题python是函数式语言 , 按照一般编程思维,面对问题时python是函数式语言我们的思考方式是“怎么干” , 而函数函数式编程的思考方式是我要“干什么” 。至于函数式编程的特点暂不总结,我们直接拿例子来体会什么是函数式编程 。
lambda表达式(匿名函数):
普通函数与匿名函数的定义方式:
#普通函数
def add(a,b):
return a + b
print add(2,3)
#匿名函数
add = lambda a,b : a + b
print add(2,3)
#========输出===========
5
5
匿名函数的命名规则,用lamdba 关键字标识,冒号(:)左侧表示函数接收的参数(a,b) ,冒号(:)右侧表示函数的返回值(a+b) 。
因为lamdba在创建时不需要命名 , 所以,叫匿名函数^_^
Map函数:
计算字符串长度
abc = ['com','fnng','cnblogs']
for i in range(len(abc)):
print len(abc[i])
#========输出===========
3
4
7
定义abc字符串数组,计算abc长度然后循环输出数组中每个字符串的长度 。
来看看map()函数是如何来实现这个过程的 。
abc_len = map(len,['hao','fnng','cnblogs'])
print abc_len
#========输出===========
[3, 4, 7]
虽然,输出的结果中是一样的 , 但它们的形式不同,第一种是单纯的数值python是函数式语言了,map()函数的输出仍然保持了数组的格式 。
大小写转换;
python提供有了,upper() 和 lower() 来转换大小写 。
#大小写转换
ss='hello WORLD!'
print ss.upper()#转换成大写
print ss.lower()#转换成小写
#========输出===========
HELLO WORLD!
hello world!
通过map()函数转换:
def to_lower(item):
return item.lower()
name = map(to_lower,['cOm','FNng','cnBLoGs'])
print name
#========输出===========
['com', 'fnng', 'cnblogs']
这个例子中我们可以看到,我们写义了一个函数toUpper , 这个函数没有改变传进来的值,只是把传进来的值做个简单的操作 , 然后返回 。然后,我们把其用在map函数中,就可以很清楚地描述出我们想要干什么 。
再来看看普通的方式是如何实现字符串大小写转换的:
abc = ['cOm','FNng','cnBLoGs']
lowname = []
for i in range(len(abc)):
lowname.append(abc[i].lower())
print lowname
#========输出===========
['hao', 'fnng', 'cnblogs']
map()函数加上lambda表达式(匿名函数)可以实现更强大的功能 。

推荐阅读