【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

Python核心编程(第十一章)--函数和函数式编程

原创 2016年05月30日 14:48:03

函数的返回对象类型是None

函数中返回对象的数目:


关键字参数:仅仅针对函数的调用
choice()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
seq -- 可以是一个列表,元组或字符串
实现返回随机项
random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
在函数调用中使用*和**符号来制定元组和字典
创建函数:
def语句
前向引用:
Python不允许在函数未声明之前对其进行引用或调用
函数属性:
内部/内嵌函数:在函数体内创建另一个函数,只可以在函数体内调用 
函数装饰器:
装饰器的语法以@开头,接着是装饰函数的名字和可选参数
@decorator(dec_opt_args)
def func2Bdecorated(func_opt_args):
    :
其实总体说起来,装饰器其实也就是一个函数,一个用来包装函数的函数,装饰器在函数声明完成的时候被调用,调用之后声明的函数被换成一个被装饰器装饰过后的函数
装饰函数的参数是被装饰的函数对象,返回原函数对象
有参数的和无参数的装饰器:
@deco
def foo():pass

foo=deco(foo)
带参数的装饰器:
@decomaker(deco_args )
def foo():pass

sleep函数:暂停执行给定的秒数

传递函数:
def foo():
    print 'in foo()'

bar = foo
bar()
形参:
1.位置参数
2.默认参数:在函数调用时没有为参数提供值则使用预先定义的默认值
默认值让程序的健壮性上升到极高的级别
所有必须的参数都要在默认参数之前
可变长度的参数:
(1)参数以一个*号开头的代表着一个任意长度的元组(tuple),可以接收连续一串参数
参数以两个*号开头的代表着一个字典,参数的形式是“key=value”,接受连续任意多个参数。语法如下:
<span style="font-size:14px;">def function_name([formal_args,] *vargs_tuple):
    'function_documention_string'
    function_body_suite</span>
星号操作符之后的形参作为元组传递给函数(如果没有给出额外的参数,元组为空)
(2)关键字变量参数(字典)
关键字变量参数为函数定义的最后一个参数
关键字和非关键字可变长参数都有可能用在同一个函数中,只要关键字字典是最后一个参数并且非关键字元组在他前面
函数式编程:
匿名函数与lambda:

lambda [arg1[,arg2,...argN]] : expression(匿名函数,不需要以标准的方式来命名)
内建函数:

过滤函数filter():每个序列元素都通过这个过滤器进行筛选,保留函数返回为真的对象。filter函数为已知的序列的每个元素调用给定布尔函数
filter()工作原理:

map()函数: map函数会根据提供的函数对指定序列做映射
map(function, sequence[, sequence, ...]) -> list
当seq只有一个时,工作原理:

当seq多于1个时:

reduce()函数:
它是这样一个过程:每次迭代,将上一次的迭代结果(第一次时为init的元素,如没有init则为seq的第一个元素)与下一个元素一同执行一个二元的func函数。在reduce函数中,init是可选的,如果使用,则作为第一次迭代的第一个元素使用。
reduce(func,[1,2,3])=func(func(1,2),3)

partial()函数
偏函数应用(PFA):
函数的partial应用
变量作用域:
如果名字在过程的声明之内,它的出现即为过程的局部变量。
全局变量的特征是除非被删除,否则它们的存活到脚本运行结束     

global语句:
global语句被用来声明x是全局的

闭包:
在内部函数里,对在外部作用域的变量进行引用,则内部函数被认为是闭包
生成器:
特性:当达到一个真正的返回或者函数结束没有更多的值返回,当调用next(),一个StopIteration异常会抛出
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

《Python核心编程》第十一章:函数和函数式编程

《Python核心编程》第十一章:函数和函数式编程——介绍函数的创建、调用方式,内部函数、函数装饰器、函数参数的定义和传递、函数式编程、变量作用域、闭包。

Dave Python 练习十三 -- 函数和函数式编程

#encoding=utf-8 ######### 函数和函数式编程 ################ #********* Part 1: 函数 ******************* #函数是对程序逻辑进行结构化或过程化的一种编程方法。能将整块代码巧妙地隔离成易于管理 #的小块,把重复代码放到函数中而不是进行大量的拷贝--这样既能节省空间,也有助于保持一致性, #因为你只需改变单个的拷贝而无须去寻找再修改大量复制代码的拷贝。 ## 1

python核心编程笔记(10)- 函数和函数式编程

chap 10 函数和函数式编程 1.python中什么都不返回的函数默认返回的对象类型是None;由于python当中的函数可以动态地确定类型而且函数能返回不同类型的值,所以函数的类型和返...

Python, Lisp, Ruby函数式编程的一个小对比

转自[python-chinese] 一个小程序的对比 函数式编程到底有什么用呢? 我想实际的好处就是可以将更好的描述问题本身,而不是描述解决问题的操作步骤。看一个具体的例子: 问题:一个列表;对每一个元素平方;将平方后的数如果除3的余数为1则从列表中除去。看解决的方法:1. 传统过程式(Python)&gt;&gt;&gt; s = [1,2,3]<br style="font-family: Courier N

廖雪峰《python3 基础教程》读书笔记——第六章函数式编程

第六章  函数式编程 1、函数式编程——Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算。 2、函数式编程就是一种抽象程度很高的编程范式,纯...

Python进阶 函数式编程

函数式编程的特点: 1:将计算视为函数而非指令 2:纯函数式编程:不需要变量,没有副作用,测试简单 3:支持高阶函数,代码简洁 <p style="font-size: 14px

《Python核心编程》第11章 函数和函数式编程 练习

11-3 函数。 在这个练习中,我们将实现max()和min()内建函数。 (a) 写分别带两个元素返回一个较大和较小元素,简单的max2()核min2()函数。他们应该可以用任意的python ...

在Python中用函数式编程来恶心人

好友caoshijun最近找我做一个字符串的解码,字符串来源于moinmoin,其中将部分字符和中文做了转义,变成了括号内的2位16进制字符。例子字符如下:   "caoshijun(2f)logo(2e)jpg"   可见"(2f)"对应"/",而"(2e)"对应"."。   于是写了一段Python程序用于解码,写完以后感觉可读性极差,如下:   <pre name="code" class="pyth

Python核心编程---读书笔记:第11章 函数和函数式编程

第11章函数和函数式编程 11.1 什么是函数? 函数:逻辑结构化的编程方法 如果没有返回元素,python返回None 元组关键字: *tuple_args 字典关键字: **dict_a...

Python-函数式编程

高阶函数:一个函数可以接收另外一个函数作为参数 比如 def add(x,y,f): return f(x)+f(y) add(-10,2,abs) 12 map函数: map函数接受两个参数,第一个参数是函数本身,第二个参数是Iterable,map将传入的函数依次作用到序列的每个元素,并将结果作为序列返回 def f(x): return x*x map(f,[1,2,3]) 结果:[1,4,9] reduce函数:reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)