Python学习笔记--函数

匿名函数:

  lambda函数是一种快速定义单行的最小函数,是从Lisp借来用的,可以用在任何需要函数的地方;

例如:

  l=range(1,6) //1~5相加

  f=lambda x,y:x+y

  print reduce(lambda x,y:x+y,l)

使用lambda函数应该注意的几点:

  • lambda定义的是单行函数,如果需要复杂的函数,应该定义普通函数
  • lambda参数列表可以包含多个参数,如 lambda x, y: x + y
  • lambda中的表达式不能含有命令,而且只限一条表达式

 

switch语句:

  switch语句用于编写多分支结构的程序,类似与if...elif...else语句;

  switch语句表达的分支结构比if...elif...else语句表达的更清晰,代码的可读性更高

备注:python本身是没有switch语句的,只能通过字典实现switch语句的功能。

 例如:

  operator={'+':jia,'-':jian,'*':cheng,'/':chu}

  def f(x,o,y):
    operator.get(o)(x,y)

  f(3,'*',2)

 

内置函数

一、数学相关

1、绝对值:abs(-1)
2、最大最小值:max([1,2,3])、min([1,2,3])
3、序列长度:len('abc')、len([1,2,3])、len((1,2,3))
4、取模:divmod(5,2)//(2,1)
5、乘方:pow(2,3,4)//2**3/4
6、浮点数:round(1)//1.0
二、功能相关
1、函数是否可调用:callable(funcname),注意,funcname变量要定义过
2、类型判断:isinstance(x,list/int)
3、比较:cmp('hello','hello')
4、快速生成序列:

  range(10)->[0,1,2,3,4,5,6,7,8,9]

  (x)range([start,] stop[, step]):xrange生成的不是一个数组,而是一个生成器
三、类型转换

0、type(x):获取x的类型
1、int(x):将x转化为int类型
2、long(x)
3、float(x)
4、complex(x) //复数
5、str(x)
6、list(x)
7、tuple(x) //元组
8、hex(x)
9、oct(x)
10、chr(x)//返回x对应的字符,如chr(65)返回‘A'
11、ord(x)//返回字符对应的ASC码数字编号,如ord('A')返回65

 

 

字符串处理:

str.capitalize():返回字符串的一个副本,只有它的第一个字母大写

  语法:str.capitalize()

  s='hello world' s.capitalize()->'Hello world'

str.replace():把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次

   语法:str.replace(old, new[, max])

    ss='123123123123'   ss.replace('1','x',3)->'x23x23x23123'

str.split():通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串

  语法:str.split(str="", num=string.count(str))

  str = "Line1-abcdef \nLine2-abc \nLine4-abcd";

  print str.split( ) ->['Line1-abcdef', 'Line2-abc', 'Line4-abcd']

  print str.split(' ', 1 );['Line1-abcdef', '\nLine2-abc \nLine4-abcd']

 

序列处理函数:

len():获取长度

max():获取最大值

min():获取最小值

filter():对序列做过滤处理,就是说可以使用一个自定的函数过滤一个序列,把序列的每一项传到自定义的过滤函数里处理,并返回结果做过滤

  s=range(10)   def fx(x):if(x)>5:return True  filter(fx,s)->[6, 7, 8, 9]

zip():它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)

  name=['milo','zou','tom']  age=[20,30,40]   zip(name,age)->[('milo', 20), ('zou', 30), ('tom', 40)]

map():map(function, sequence),作用是将一个列表映射到另一个列表

  name=['milo','zou','tom']  age=[20,30,40]   map(None,name,age)->[('milo', 20), ('zou', 30), ('tom', 40)]

reduce():reduce(function, sequence, startValue),作用是将一个列表归纳为一个输出

   def add(x,y):return x+y  print reduce(add,range(1,101))

posted @ 2016-09-12 11:46  yinrw  阅读(282)  评论(0编辑  收藏  举报