1.为什么要使用函数?
当代码有规律的重复的时候,我们就可以使用函数来封装一下规律重复出现的代码,使用时调用函数即可,不需要每次重复编写相同的代码
2.调用函数
Python中内置了很多函数,我们可以直接调用,调用一个函数,我们需要知道函数名、需要传入的参数,从哪里可以获取这些函数的说明文档
-
途径1
官方文档 -
途径2
使用help(函数名)
>>>help(sum)
Help on built-in function sum in module builtins:
sum(iterable, start=0, /)
Return the sum of a 'start' value (default: 0) plus an iterable of numbers
When the iterable is empty, return the start value.
This function is intended specifically for use with numeric values and may
reject non-numeric types.
3.定义函数
3.1 通过def语句定义函数
1.在Python中使用def语句定义一个函数
2.函数的参数用圆括号包括,如果含有多个参数用逗号,隔开
3.函数的结尾要用冒号:标记代码块的开始,不可省略
>>> def my_abs(num):
... if num > 0:
... return(num)
... if num < 0:
... return(-num)
3.2 空函数
如果想定义一个什么也不做的函数,使用pass语句
>>> def do_nothing():
... pass
3.3 函数返回值
- 使用return返回函数执行结果
>>> def my_sum(a,b):
... return a+b
>>> my_sum(4,5)
9
- 函数可以返回多个值,其实只是返回了一个元祖
>>> def my_sum(a,b):
... return a+b,a,b
>>> my_sum(6,7)
(13, 6, 7) #是一个元祖中3个元素
- 当函数中有多个return语句,只执行第一个就不再执行后面的return语句
>>> def my_sum(a,b):
... return a+b
... return a,b
>>> my_sum(8,5)
13 #只执行了第一个return语句
4.函数的参数
函数的参数有多种类型,除了正常定义的必选参数,还可以使用默认参数、可变参数和关键字参数
4.1 位置参数
位置参数即按照函数定义时参数(形参)的位置
>>> def power(x,n):
... return x**n
>>> power(2,3)
8
说明:
定义了x和n两个参数,想要计算2的立方那么我们在调用power函数时
就要按顺序传入power(2,3)才可以得出8,不可以传入power(3,2)
4.2 默认参数
- 1.当我们需要计算任意一个数的平方时,power函数的第二个参数可以设置默认参数值为2,这样我们在调用时,就不用每次都传值
>>> def power(x,n=3):
... return x**n
>>> power(3)
27
- 2.当函数的参数包含位置参数和默认参数时,我们要加位置参数放在默认参数前面,否则会报下面的错误提示
>> def power(n=3,x):
... return x**n
File "<stdin>", line 1
SyntaxError: non-default argument follows default argument
#提示因为把非默认参数放在了默认参数后面导致报错
- 3.默认参数必须指向不变对象
>>> def add_end(L=[]):
... L.append('end')
... return L
>>> add_end()
['end']
>>> add_end()
['end', 'end']
这里使用默认参数调用时,会看到两次的结果不一样
因为list是一种可变对象,不可用其来做默认参数,改良过后:
>>> def add_end(L=None):
... if L == None:
... L = []
... L.append('end')
... return L
>>> add_end()
['end']
>>> add_end()
['end']
4.3 可变参数 *args
- 1.当我们不确定函数参数的个数(可以是0也可以是任意个),我们可以定义可变参数*args
>>> def calc(*nums):
... sum = 0
... for num in nums:
... sum = sum+num
... return sum
>>> calc(1,2,4,5) #传多个参数
12
>>> calc() #不传参数
0
- 2.当已有了一个list或者tuple时,想调用一个可变参数,使用*args
>>> lists = [1,3,4,5]
>>> calc(*lists)
13
4.4 关键字参数 **kw
- 1.把传入的参数在函数内部自动组装成字典
>>> def person(name,age,**kw):
... print('name:',name,'age:',age,'other:',kw)
>>> person('Alice',34,height=169)
name: Alice age: 34 other: {'height': 169}
- 2.调用一个已定义好的字典
>>> extra = {'hobby':'sing','sex':'femal'}
>>> person('Jack',20,**extra)
name: Jack age: 20 other: {'hobby': 'sing', 'sex': 'femal'}









网友评论