函数

致命三问,他来了他来了……

什么是函数?

函数就是一种工具,可以重复使用(比如说光头强砍树,他用的电锯就是他的工具,而函数就是我们的工具)

为什么要用函数?

1、防止代码冗余

2、增强可读性

怎么用函数?

PS:函数的命名规则和变量名是一样的

函数的使用:定义函数——>>>调用函数

PS:函数是先定义,再调用,在定义阶段只检测语法,不执行代码

定义函数:

def index():    # 定义函数
    '''打印hello world'''  # 函数描述:代码体的功能或操作
    print('hello word')     # 代码体(实现某种功能)
index()    # 调用函数

函数的三种形式

1、无参函数

def index():     #index中没有参数
    print('ok')
f = index()

2、空函数

del index():
    pass

3、有参函数

def login(username,age):    #传入形参username,age
    print(username,age)     #打印username,age 
login('姓名:kang','年龄:21')#传入实参姓名:kang年龄:21

函数的调用有三种方式

1、直接调用:直接用函数名,比如说上边的代码就是直接调用

2、定义变量接受,再次返回变量

def index():
    print('ok')
f = index()     #把函数定义成变量f
print(f)        # 打印变量f

3、将函数当参数使用

def index(a,b):     # 定义形参a,b
    if a > b:       # 如果a>b
        return a    # 返回a
    else:           # 如果不是
        return b    # 返回b
print(index(1,2))   # 定义实参a=1,b=2

函数的返回值(return)

return:一个函数结束的标志,函数代码体但只要执行到return,函数执行结束

1、不写return:默认返回None

2、只写return:只有结束函数体代码的效果,返回None

3、写return None:和只写return一样

4、return返回一个值:返回当作一个变量来使用

5、return返回多个值:

  ①将返回的多个值存入元组(函数返回的值不想被修改)

  ②可以自己制定返回的数据类型

函数的参数

形参

 是在函数定义阶段就规定的参数,它就相当于定义变量时的变量名

def login(username,age):        # 定义形参
    print(username,age)
login('姓名:kang','年龄:21')  

实参

函数调用阶段传入的参数,它就相当于定义变量时的变量值

def login(username,age):        
    print(username,age)
login('姓名:kang','年龄:21')  # 定义实参

位置参数

通过位置进行传参

def index(age,QQ):
    print(age,QQ)    
index('21','123456')    #age = 21,QQ = 123456

关键字参数

指定参数进行传参

def index(age,QQ):
    print(age,QQ)              # 打印age QQ
index(QQ='123456',age='21')    # age = 21,QQ = 123456

PS:位置参数和关键字参数可以混用,但是位置参数必须在关键字参数前面,混用时不要对同一个形参重复赋值

def index(age,QQ):
    print(age,QQ)              # 打印age QQ
index('21',QQ='123456')    # age = 21,QQ = 123456

默认参数

在定义函数阶段就已经传入参数,如果说你在实参中传入了一个新的参数,就会使用新参数

def index(age='21',QQ='456'):   # age默认为21,QQ默认为456
    print(age,QQ)               # 打印age QQ
index(QQ='123456')

PS:当参数对应值重复出现的情况下,使用默认参数

可变长参数  

*args(官方认证)  

接收用户所溢出的位置参数,接收的值都被存入一个元组

def index(name,age,QQ,*args):
    print(name,age,QQ,args)
index('kang',21,456789,15013131313,'篮球')

**kwargs

接收所有溢出的关键字参数,接收的都被存入一个字典

def index(name,age,QQ,**kwargs):
    print(name,age,QQ,kwargs)
index(name='kang',age=21,QQ=456789,phon=15013131313,hobby='篮球')
原文地址:https://www.cnblogs.com/aheng/p/11824813.html