函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。也可以自己创建函数,这被叫做用户自定义函数

函数的定义

1. 函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
1. 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
1. 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
1. 函数内容以冒号起始,并且缩进。
1. Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
1. pass 表示什么都不做,主要用于占位。

Python 定义函数使用 def 关键字,一般格式如下:

def  函数名(参数列表):
    函数体

例如,使用函数输出“Hello World”

>>> def hello():
...     print("Hello World")
...

函数调用(执行)

执行Python 函数,直接执行函数名即可,如执行hello()函数

>>> hello()
Hello World

函数的参数

实参(argument)是指函数调用时传递进去的参数值(value),区别于形参(parameter)。

Python实参(argument)分为两类,关键字实参和位置实参(positional argument)。

  1. 默认参数

默认参数使得API简洁,但不失灵活性。当一个参数有默认值时,调用时如果不传递此参数时,会使用默认值。

>>> def inc(init, step=1):
...     return init + step
...

这里的默认参是step=1,如在调用的时候,不写这个参数,就是默认等1;如下所示:

>>> inc(3)
4

>>> inc(3,4)
7

默认参数需要放在参数列表的最后面。

2)关键字参数

关键字实参就是在调用函数的时候,以name=value的形式传递参数,name就是参数定义的名字,也就是形参;关键字参数指明了参数名,所以可以不用管其调用时候顺序。

位置实参就是只传递value的形式,顾名思义,这要靠实参的位置来匹配形参,关键字参数必须位于位置参数之后

>>> def add(a,b):
...     return a + b
...
>>> add(b=2,a=1)
3
  1. 不定长参数

有些时候并不知道要传的参是多少,在python中可以使用不定长参数传递一个元组(*args)或字典(**kwargs)

>>> range(2,5)
range(2, 5)
>>> r = (2,10)
>>> range(*r)
range(2, 10)

使用*r 代表一个元组传递参数进去

>>> def add(a,b):
...     return a + b
...

>>> s = {"a":1,"b":2}
>>> add(**s)
3

使用**s(两个*)代表字典;

高阶函数

1) map

map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

map()函数语法:

map(function, iterable, ...)

function -- 函数,有两个参数 iterable -- 一个或多个序列

>>> def square(x):
...     return x**2
...
>>> map(square,range(10))
<map object at 0x0000000002360940>
>>> a = map(square,range(10))
>>> for i in a:
...     print(i)
...
0
1
4
9
16
25
36
49
64
81
  1. reduce

语法

reduce(function, iterable[, initializer])

将后面的序列给函数处理

>>> from functools import reduce
>>> def add(x,y):
...     return x + y
...
>>> reduce(add,range(10))
45

转载于:https://my.oschina.net/u/3805676/blog/1795671

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值