Python连载系列之Python语法基础2:Python中的函数
来源:互联网 发布:apache 报错日志 编辑:程序博客网 时间:2024/06/10 15:55
这是Python系列连载之Python语法基础的第二讲,这个连载系列尽可能用通俗的语言来讲解Python的语法基础,希望读者阅读后能轻松掌握Python!
这一讲的主要内容:
#=====================================================================
1 Python的內建函数(Built in functions)
2 Python的模块函数(Module functions)
3 Python保存程序的方法
4 自己写一个函数
#=====================================================================
1 Python的內建函数(Built in functions)
所谓内建函数就是可以直接用的函数,不用包含文件或者模块什么的
比如
abs(x)函数,它返回x的绝对值
pow(x,y)函数,相当于x**y(见第一讲)
有几个内建函数是经常会用到的,他们是len(), range(), sum(), map(), zip()
- len()函数返回对象集合中元素的个数:
-如len([0, 1, 2]),其中[0, 1, 2]是一个整数数组,元素的个数为3,因此返回3
如len("chao liu"),其中"chao liu"是一个字符串,是字符对象的集合,字符个数为8(空格也是一个字符),因此返回8
- range(a, b)返回的是所有大于等于a,小于b的整数构成的数组
-比如range(2, 3)返回数组[2], range(2, 4)返回数组[2, 3]
-另外,range()也可以接收1个和3个参数
1个参数代表返回0到这个参数(不包括该参数)之间的值,如range(3) = [0, 1, 2]
3个参数中的第三个代表步长,即间隔, 如range(1, 8, 2) = [1, 3, 5, 7]
- sum()函数就是把传入的集合中所有的元素都加起来
-比如sum(1, 101)就是从1加到100,结果是5050
- map函数是映射函数,它的第一个参数是映射法则,第二个参数是函数的自变量,返回值是应变量
-比如map(abs, range(-10, 0)),返回值是[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
- zip函数是一个拉链函数,把左排拉链和右排拉链拉起来,变成“两两一对”的一排拉链
-比如x = [ 1 , 2 , 3 ], y = [ 4 , 5 , 6 ]则zip(x, y) = [(1, 4), (2, 5), (3, 6)]
2 Python的模块函数(Module functions)
有许多函数并不是Python自带的,而是在其他模块中。我们不能直接调用该函数,而是要用如下格式:
- module.function
比如,要计算5.1的向下取整值,可以这样调用math.floor(5.1),返回值为5
在IDEL(见第一讲)中,只要输入模块名module再输入".",模块中包含的所有函数会自动显示出来,如下所示:
这方便我们查看模块中究竟有哪些函数,至于这些函数的用法和解释,可以查看python manuals(见第一讲)
这里有一个技巧,如果你觉得模块名+函数名的写法太长了,可以把他们用另一个名字代替,比如
round_down = math.floor
roud_down(5.1)
同样也返回5
3 Python保存程序的方法
目前我们写的程序全都没有保存过,要进行保存,首先要新建一个窗口(按Ctrl+N, 如下图),
把程序写在那里,然后保存(Ctrl+S),注意:保存时文件的扩展名必须是.py
在新建窗口中按F5运行模块,运行结果就在原先那个窗口中显示出来了
4 自己写一个函数
我们开始自己写一个函数,这个函数叫hamming_distance,用来求两个字符串的汉明距离,也就是两个字符串中不同字符的个数
用上面介绍的方法,我们新建一个窗口,然后在里面写一个自己的函数
- Python中使用def关键字定义函数,函数包括函数名称和参数,不需要定义返回类型,Python能返回任何类型:
我们在新建的窗口中输入该函数:
def hanmming_distance(s1_s2):
assert len(s1) == len(s2)
return sum(ch1 != ch2 for ch1, ch2 in zip(ch1, ch2))
写完后保存,我们保存在Python的安装目录下的Lib/site-packages文件夹下,名字叫hamming_distance.py,这个文件就成为一个模块了,我们如何使用这个模块里的hamming_distance函数呢?
根据上面所说的调用模块函数的方法
我们在IDEL的Shell中,把这个模块(=文件名)导入进来
import hamming_distance
就是把刚才我们写的hamming_distance.py的所有代码都复制到当前的Shell中
我们用调用模块函数的方法调用该函数:
hanmming_distance.hanmming_distance("liuchao", "LiuChao")
返回值是2,即这两个字符串中有两个不同的字符("l"和"L"以及"c"和"C")
下面我们讲解一下函数式编程中的精华——lamda函数,它的作用是把表达式转变为函数
比如,下面两个函数实现的功能一样,一种是传统写法,一种是lamda函数写法:
lamda的写法: 把表达式a+b转换为了函数,这个函数是匿名的,可以把它赋给一个变量add2作为它的名字。
lamda函数经常和filter和map这两个内建函数配合使用
- filter函数用于过滤数据集合
filter函数的第一个参数是过滤规则,通常是一个表达式转换成的函数,即用lambda函数来做,第二个参数是要过滤的集合
lambda x: x%3 == 1的意思是除3余1的所有数
- map函数前面已经介绍了,是对一个集合中每个元素做一个映射
map函数的第一个参数是映射机制,和filter函数的第一个参数一样,通常是一个表达式转换成的函数,即用lambda函数来做,第二个参数是要映射的集合
本次连载的配套复习幻灯片:http://download.csdn.net/source/2819253
------------------------------------------------------------
如果对本次连载内容有任何疑问或者建议,欢迎大家留言
- Python连载系列之Python语法基础2:Python中的函数
- Python连载系列之Python语法基础3:Python中的字符串和数据结构
- Python连载系列之Python语法基础1:开始使用Python
- 【python】python语法基础
- python基础语法(7) 函数2
- 2、Python语法基础
- python基础语法(2)
- Python(2) 基础语法
- python系列之 - 函数
- Python基础 2----Python 基础语法
- Python学习之基础语法
- 自学Python之 基础语法
- Python基础语法之字符串
- python基础之函数
- python基础之函数
- Python基础之函数
- python之函数基础
- Python之函数基础
- Java的资源
- 雷凌 Ralink RT2070 RT3070 RT2870系列芯片驱动移植到LPC3250Demo板的ifconfig ra0 up问题解决方案~~
- INF文件小结
- SQL Server连接
- perl几个读取文件命令
- Python连载系列之Python语法基础2:Python中的函数
- android之ScrollView
- java.lang.OutOfMemoryError: unable to create new native thread
- Android IMF (Input Method Framework) 输入法简介
- 十个让你变成糟糕的程序员的行为
- Ubuntu 着了魔了~只能安装PHP-5.2.9
- 中国低工资高物价的秘密
- 2003-2007回顾贴:yeguiren个人随笔
- 人鬼过河(智力游戏)