函数复习

一、函数
1.为什么要使用函数?
减少代码的冗余
2.函数先定义后使用(相当于变量一样先定义后使用)
3.函数的分类:
内置函数:python解释器自带的,直接拿来用就行了
自定义函数:根据自己的需求自己定义的函数
def func(): #函数名打印出来的是内存地址
'''注释'''
函数体
4.函数定义都干了些什么事?
只检测语法,不执行代码
5.函数就是一段功能,尽量把函数名定义的有意义
6.定义函数的三种方式:
  有参数的函数:就是接受外部传进来的值,进行一系列的运算,最后吧结果返回出来
  无参数的函数:通常只是做一下操作而已
  空函数:什么事情都不做就是一个空函数(即便是一个空函数,他也会有如下属性)
7.函数的返回值:可返回任意类型的值
  什么时候需要有返回值:具体情况具体分析
  什么时候没有返回值:具体情况具体分析
8.yield和return的区别
  yield 停在那呢,挂起了
  yield 能返回多次值;return 返回一次值
  yield 保存函数状态
9.函数的调用:函数名加()

10函数的参数

形参:
1 位置形参:必须被传值
2 默认参数:调用时可不传值
需要注意的问题:
只能在位置形参的后面定义
只在定义阶段被赋值一次
通常默认参数的值应该是不可变类型
实参:
1:位置实参:与形参一一对应
2:关键字实参:指名道姓地传值,即便是不按照位置定义也能准确的为指定的形参传值
可以混用1和2两种形式,但需要注意的问题:
1必须在2之前
不能为同一个形参重复传值

可变长度的参数:从实参的角度推算出形参对应的形式*和**
针对按照位置定义的实参冗余的部分,会被形参中的*保存成元组的形式赋值给args
针对按照关键定义的实参冗余的部分,会被形参中的**保存成字典的形式赋值给kwargs
强调:
如果实参中出现了*和**,第一时间打散了去看。
11
命名关键字参数(了解)
定义:在定义阶段,*之后定义的形参称之为命名关键字参数
特点:在调用阶段,该类参数必须以关键字的形式被传值
def foo(x,y,*args,a=11111111111111111,b):
print(x)
print(y)
print(args)
print(a)
print(b)
#
foo(1,2,1,2,3,4,5,b=20)
原文地址:https://www.cnblogs.com/1a2a/p/7412258.html