python函数知识点总结

函数的定义
Python定义一个函数使用def保留字,语法形式如下:
def <函数名>(<参数列表>):
<函数体>
return <返回值列表>
函数的作用: 函数可以减少重复代码、增强程序的扩展性、可读性;使用原则是先定义后调用,在定义阶段只检测语法不执行函数体代码,调用阶段才执行函数体代码。
参数:形参与实参
形参:位置形参,默认形参,可变长参数
实参:位置实参,关键字实参,可变长实参(*后面必须跟可迭代对象, **后面必须是字典)
函数的返回值
return是函数结束的标志,函数内可以有多个return,但只要执行一次函数就会立刻结束,并把return的值作为本次调用结果返回。返回值可以是任意类型,没有个数限制,没有return默认返会None,若返回多个值,会将多个值放在一个元组里一起返回。
函数对象:函数对象可以被当做数据去处理
1、引用

def foo():

pass

f = foo

2、当做参数

print(foo)

3、当做返回值

def bar()

def wrapper()

    pass

 return wrapper

f = bar()

4、当做容器类型的元素

def f1():

pass

def f2():

pass

l = [f1, f2,]
l0 #函数名加括号即调用该函数、

函数调用
python在调用函数的时候,注意到形参的类型以及形参的个数是否和已知函数参数相匹配, 函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”,相当于C语言里面引用操作,给函数取了一个别的名字。

a = abs # 变量a指向abs函数
a(-1) # 所以也可以通过a调用abs函数1

函数的参数种类:

  1. 默认参数:假设首先定义了一个函数pow(n)表示计算n2,那么现在我们想要定义一个n3,那么我们重新定义一个函数pow(n,3),那么此时这个pow(n)函数就会失效,那么我们假如还想使用以前的pow(n)函数怎么办了,我们可以通过使用默认参数,既可以使用扩展的进行调用,也可以使用原来最基本的函数。这个默认参数就好像是以前的默认的选项一样。
    def power(x, n=2):
    s = 1
    while n > 0:
    n = n - 1
    s = s * x
    return s

power(5)
25>>> power(5, 3)
125
这个演示例子表示我们不仅仅可以使用扩展的函数,有时候方便起见,也可以使用不是扩展之后函数。

  • 一是必选参数在前,默认参数在后,否则Python的解释器会报错;
    -二是如何设置默认参数。
  • 当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。
    使用默认参数有什么好处?最大的好处是能降低调用函数的难度。
    可变参数:可变参数就是参数的个数是可变的,从原来的函数参数使List或者Tuple变成了这样就可以传入很多个参数了。
    定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个
    号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。

def cal_grade(number): 这是通过传入参数是List
sum = 0
for n in number:
sum = sum + n
return sum

print(cal_grade([1,2,3]))
关键字参数
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

关键字参数的作用是什么?如果你想提供一个用户注册的功能,那么现在你可以提供基本的参数设置,但是你也可以提供其他的参数设置,你也可以提供成为一个字典,通过这个关键字将字典作为关键字参数传入。
def print_student(age, name, **kw):
print(‘age:’, age, ‘name:’, name, ‘others:’, kw)
student = {‘s1’: 18, ‘s2’: ‘xuchao’}
print_student(11, ‘11’, **student)

参考文献:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

你可能感兴趣的:(学习笔记)