Chapter11"函数和函数式编程"笔记

1、函数没有设定返回值的默认返回对象类型为None,类似于C中的void。

def hello():
    print 'hello world'
print hello()
结果输出:hello world
        None

2、元组可以被分解成为单独的变量,也可以直接用单一变量对其进行引用

def bar():
    return ('abc',[4-2j,'python'],"Guido")
atuple=bar()
x,y,z=bar()

3、

返回的对象数目Python实际返回的对象
0None
1return返回的object
( >1以tuple元组形式返回

4、

random.random() #返回随机浮点数数
random.choice(s) #随机返回序列s中的元素
random.randint(start,stop)  #随机返回start-stop区间内的一个整数

5、
在Python中,所有的对象都是通过引用来传递的;函数和其他对象一样是可以被引用的,也作为参数传入函数中。

def foo():
    print 'in foo()'
bar=foo
print bar()
结果为:in foo()
       None

函数作为参数传递:

def convert(func,seq):
    return [func(eachnum) for eachnum in seq]
myseq=(123,45.67,-6.2e8,99999999L)
print convert(int,myseq)
print convert(float,myseq)

6、lambda表达式
lambda表达式返回可调用的函数对象

def add(x,y):return x+y 等价于 lambda x,y:x+y
def add2(x,y=2):return x+y 等价于 lambda x,y=2:x+y

7、filter(bool_func, seq)
Python內建的filter()用于过滤序列,参数包括一个函数和一个序列,将序列中的每个元素放入到函数中,根绝函数返回的True or False来选择保留还是丢弃该元素。

filter()函数原型:

def filter(bool_func,seq):
    filtered_seq=[]
    for eachitem in seq:
        if(bool_func(eachitem)):
            filtered_seq.append(eachitem)
    return filtered_seq

filter()举例:将9个随机整数列表allnums中的奇数元素剔除,只保留偶数:

from random import randint
def odd(n):
    return n%2
allnums=[]
for eachnum in range(9):
    allnums.append(randint(1,99))
print filter(odd,allnums)

8、map()函数
map()将函数调用映射到序列的每个元素上,并返回一个含有所有返回值的列表。

def map(func,seq):
    mapped_seq=[]
    for eachitem in seq:
        mapped_seq.append(func(eachitem))
    return mapped_seq
map((lambda x:x+2),range(6))#将0-5分别+1并返回列表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值