博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 学习笔记 五
阅读量:6835 次
发布时间:2019-06-26

本文共 1416 字,大约阅读时间需要 4 分钟。

函数

下面看一个打印斐波那契数列的函数:

def fabs(n):    a, b = 0, 1    while a < n:        print a        a, b = b, a+b

 

从这个例子可以看除Python函数的结构.

记录函数

如果想要给函数写文档, 可以加如注释(#开头), 另一种方式是直接写上字符串, 比如在def语句后面, 在函数定义下面的字符串会作为函数的一部分进行存储, 这称为文档字符串.

例如:

def squart(x):    'Calculates the squart of the number x.'    return x*x

可以这样访问文档字符串:

>>> sqare.__doc__

关键字参数和默认值

定义函数时, 可以为参数设置默认值, 这样调用函数时可以不提供参数:

>>>  def hello(greeting='Hello', name='world'): print'%s, %s' % (greeting, name)

>>> hello()

Hello, world

此外, 调用函数时, 可以为实参指定形参关键字, 这样可以忽略参数顺序的影响, 例:

>>> hello(name='bob', greeting='Hi, ')

Hi, bob

收集参数

在参数前面加上*号可以将所有值放入同一个元组中, 可以说是将这些值收集起来, 然后使用.

能处理关键字的收集操作: **, 将参数收集为字典.

反转过程

有这样一个函数:

def add(x, y): return x + y

有这样一个元组:

params = (1, 2)

这样调用函数:

add(*params)

函数式编程

  1.map(function, sequence)

对每一个序列元素调用函数, 返回包含所有函数返回值的列表

>>> def cube(x): return x*x*x...>>> map(cube, range(1, 11))[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

  2.filter(function, sequence)

filter函数可以基于一个返回布尔值的函数对元素进行过滤, 它返回包含一些元素的序列, 这些元素在funcrtion(item)返回True. 如果序列是字符串或元组, 结果将是相同的类型, 否则, 结果总是一个列表.例如:

>>> def f(x): return x % 2 != 0 and x % 3 != 0...>>> filter(f, range(2, 25))[5, 7, 11, 13, 17, 19, 23]   

   3.lambda

匿名函数可以用lambda关键字创建. Lambda可以用于需要函数对象的地方:

>>> fileter[lambda x: x % 2 != 0 and x % 3 != 0, seq]

注: map和filter在目前版本Python中并不是特别有用, 可以使用列表推导式代替, 例如:

>>> [x for x in range(1, 25) if x % 2 != 0 and x % 3 != 0]

 

 

 

转载于:https://www.cnblogs.com/ezhengnan/p/3746466.html

你可能感兴趣的文章
ConText
查看>>
java异常捕获
查看>>
Android Service的绑定 基础概念篇
查看>>
MVC项目开发中那些用到的知识点(登录权限认证)
查看>>
错误总结
查看>>
Delphi7 (第一天:类的编写)续
查看>>
单片机基础
查看>>
ZOJ 1027 Human Gene Functions(动态规划LCS)
查看>>
变量、中文-「译」javascript 的 12 个怪癖(quirks)-by小雨
查看>>
合作开发用到的几个 设计模式
查看>>
[iOS] 在UIToolBar中增加UILabel等控件(xib/storyboard图形界面方式)
查看>>
宋体节点hdoj 1520 Anniversary party(树形dp)
查看>>
优化网站设计(七):避免在CSS中使用表达式
查看>>
让你的网站拥有微博(weibo.com)关注图标
查看>>
hadoop基本命令
查看>>
若不能连接到sql server的localhost
查看>>
JavaScript无提示关闭窗口(兼容IE/Firefox/Chrome)
查看>>
Winform窗口里的嵌入WPF的UserControl,关闭Winform父窗体的方法
查看>>
JavaScript – 6.JS面向对象基础(*) + 7.Array对象 + 8.JS中的Dictionary + 9.数组、for及其他...
查看>>
格式资料python sqlalchemy 查询结果转化为 Json格式
查看>>