柏老师python笔记(四)

# encoding: utf-8
"""
author: Leo
date: 2017-6-21
"""
# 函数的使用


# 参数的收集(Python)使用这种方法解决参数个数不确定性
# *arg返回的是一个元祖的类型,如果不给*arg传值的话那么他就是一个空的元祖
def func(x, *arg):
    print x
    result = x
    print arg
    for i in arg:
        result += i
    return result
print(func(1, 2, 3, 4, 5, 6, 7, 8, 9))


# 还可以用**kargs的形式接收数值输入必须是:arg=val,在传值的时候需要指定键和值
# 并且**kargs返回的是一个字典
def foo(**kargs):
    print(kargs)
print(foo(a=1, b=2, c=3))


# 下面这种方式可以更高效的利用参数的收集
def book(author, name):
    print('%s is writing %s' % (author, name))


bars = {'name': 'HuLuWa', 'author': 'Joker'}


print(book(**bars))




"""特殊函数"""


# 递归:函数在定义中使用函数自身的方法,


# 几个特殊函数:filter、map、reduce、lambda、yield


# lambda
def add(x):
    x += 3
    return x
numbers = range(10)
print(numbers)


# 使用lambda: 1.在lambda后面直接跟变量
#            2.变量后面是冒号
#            3.冒号后面是表达式,表达式计算结果是本函数的返回值。
lam = lambda x: x + 3


n2 = []
for i in numbers:
    n2.append(lam(i))
print(n2)


g = lambda x, y: x + y
print(g(4, 5))


# map(func, seq)func是一个函数,seq是一个序列对象,序列对象中的每个元素,按照从左到右的顺序被取出来,塞入到func函数里
# 并将func的返回值一次存到一个列表中。


print(map(lambda x: x + 3, numbers))


# zip():主要的功能就是将两个列表对应的位置组合成一个列表,里面所以的元素都是元组
a = [1, 3, 5, 7, 9]
b = [2, 4, 6, 8, 10]


print(zip(a, b))    # [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]


print(sum(x * y for x, y in zip(a, b)))     # 190


# filter 过滤器,filter(function, iterable)
numbers = range(-5, 5)


print(filter(lambda x: x > 0, numbers))





































































































































































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值