# 函数基础

为什么要使用函数

  1. 可以把重复代码写成一个通用模板
  2. 可以把冗余的代码独立开

把工具事先准备好,下次使用的时候直接拿就行了,函数就是工具

函数格式

def 函数名():

代码块       #此代码块用于实现某一个具体的功能

函数定义格式:

函数名可以与变量名同等看待,也需要和变量名命名规范一样:

  1. 具有某种意义
  2. 函数名是用来接收函数返回值
  3. 函数名命名也是使用字母数字下划线,开头不能为数字和下划线

函数调用格式

使用方法:在想要使用函数时,打出 函数名() 就可以使用这个函数

函数的用分为两个阶段:定义函数与调用函数

在定义函数阶段不会运行其中的代码,只识别语法

在调用函数阶段才会执行函数体代码

定义函数的三种方式

一 无参函数

通俗理解就是在定义函数的时候,函数名的括号里没有东西

def self_max():
    x,y = 10,20
    if x > y:
        print(x)
    else;
        print(y)
        
self_max()

二 有参函数

有参函数在def后的函数名括号那里有几个参数,在调用的时候就必须要传入几个参数

def self_max(x,y):
    if x > y:
        print(x)
    else;
        print(y)
        
self_max(100,200)

三 空函数

空函数是指代码块先放着不写,用pass代替,回来再来写他

def self_max()
    pass

self_max()

函数的返回值

变量名用来接收变量值,函数名类比于变量名,函数名是用来接收函数返回值的

使用return来接收返回值

  1. return默认返回None
  2. return可以返回任意数据类型的数据
  3. 当return返回多个值的时候,会以元组的形式把多个值包在一起
  4. return会终止函数

函数参数的应用

定义阶段:定义阶段函数名后括号里的x,y(或者其他)被称为形参,形参具有描述意义类似于变量名,不为具体的数据类型

调用阶段:调用阶段的函数名后括号里的x,y(或者其他)被称为实参,实参必须是具体的数据类型

默认形参:在函数定义阶段,提前赋值给形参,当以实参传值的时候,实参传的值会覆盖原值

关键字实参:在函数调用阶段,找到与形参的对应关系,并赋值给对应的形参,形参名为什么则关键字实参名也必须是什么

默认形参和关键字实参的用法

默认形参:值不需要改变,并且经常使用,默认形参必须跟在位置形参后面

关键字实参:当你的参数非常多的时候,使用关键字实参,关键字实参必须在位置实参后

可变长参数

示例:

def self_max(a,b,c,,e,f,g,h,k,x=1,y=2,z=4):
    print(a,b,c,,e,f,g,h,k,x,y,z)
a = [1,2,3,4,5,6,7,8,9]     #*会把这个列表内的元素一个一个取出来,然后一个一个传给函数
b = {'x':10,'y':30}      #**会把这个字典打散成键值对的形式作为实参传给参数
self_max(*a,**b)       #可变长实参
#   self_max(1,2,3,4,5,6,7,8,9)      #*a的作用
#   self_max(x=10,y=30)      #**b的作用

可变长形参

def self_max(*args,**kwargs):
    print(args)   #*args接收了所有的位置实参,然后以元组的方式保存下来,只接受位置参数不接受关键字实参
    print(kwargs)    #**kwargs接收了所有的关键字实参,然后以字典的形式保存下来

*后必须得写args,**后必须得写kwargs,这是约定俗成的一种规范

原文地址:https://www.cnblogs.com/acate/p/10945932.html