函数的基本方法
什么是编程软件中的函数?
函数在日常生活中就类似于我们的一个工具箱,在干活时,可以随时取出工具,在不用时,可以把工具放入。
在编程中,函数就是起一个归纳的作用,把一堆代码赋值给函数名,若是要用此代码,直接调用函数即可。
语法结构
def 函数名(): print(‘这是一个函数’) #调用时 函数名()
 1. def(关键字必须的)
        用来定义函数的,函数要想使用必须先定义def
    2. 函数名(必须的)
        函数名的命名遵循变量名的命名就可以了,见名知意
    3. 注释 (不是必须的)
        类似于说明书,对函数功能的描述,简介...
    4. 函数体(必须的)
        执行代码的核心逻辑
    5. return返回值(不是必须的)
        执行完函数之后,返回的结果
    6. 参数(不是必须的)
        就是执行函数之前的一些前提
函数的定义和调用
 注意事项:
    	 1. 函数必须先定义,在调用
         2. 函数在定义阶段,值检测语法是否正确
         3. 函数在定义阶段,不会执行函数体代码
         4. 函数只能有一个return,函数一旦遇到return,函数立马结束
函数的底层原理:
		1. 先在内存中申请一块空间存储函数体
		2. 把函数体所在的内存地址绑定给函数名
		3. 使用函数名加括号调用函数,来执行函数
函数的分类
函数可分为内置函数以及自定义函数
内置函数就是各个编程软件中自带的函数
自定义函数是程序员在编程时,由于多个地方需要重复代码而定义的
自定义函数中分为:
1.无参函数:
无参函数就是在调用时不需要写参数,直接调用即可
2.有参函数:
有参函数即为有变量的函数,函数内代码可以根据用户所输入的参数,给出不同的结果。
3.空函数:
空函数即为调用出来无结果的函数,一般在写框架时会用到。
函数的参数
函数的参数分为两大类,一种叫形参,一种叫实参。
形参与实参
形参
形参就是在定义函数时在函数名后中括号写的一个变量。
实参
实参就是在调用函数阶段函数名后括号写的一个可以随意改变的变量
总结
在实参中写的一个变量可以可以给形参中的变量赋值,最终形参中的值赋值给函数中的代码块实现运行。
位置参数
位置参数就是按照顺序一个一个赋值,且形参的数量以及位置必须要和实参的数量以及位置相互对应,不能少一个也不能多一个。
def my_max(a, b): print(a, b) if a > b: return a else: return b res = my_max(1, 2) print(res)
关键字参数
关键字参数可以随意写位置,关键字参数的本质就是直接点对点的将实参附给形参,但在位置参数和关键字参数同时用时,位置参数的位置需要固定。且位置参数必须要在关键词参数之前。
def new(a, b, c): print(a, b, c) new(1, c=3, b=2)
默认参数
默认参数是在定义函数的阶段,直接将一个变量附给一个变量名,即使在调用函数中不写也没有什么关系,会直接调用在定义函数阶段时所赋予的变量。若是在调用阶段新重新赋予了一个变量则会覆盖掉在定义函数时赋的值,将在调用时写的值赋值给此变量。
def new(a, b, c=4): print(a, b, c) new(1, b=2) => 1, 2, 4 new(1, 2, c=3) => 1, 2, 3
可变长参数
可变长参数顾名思义就是函数可以根据写入的变量自动控制辨认,给达到合理的长度。具体使用方法如同解压赋值时*的用法。
可变长参数在用在位置参数的时候,一般用*加变量名。用于关键字参数的时候,一般用**加变量名。
def new(a, b, *c, **d): print(a, b, c, d) new(1, 2, 3, 4, 5, 6) # => 1 2 (3 4 5 6) new(1, 2, 4, 5, x=3, d=4) # => 1 2 (4 5) {'x'=3,'d'=4}
同时在调用函数中此方法也同样可行。
def new(a, b, *c, **d): print(a, b, c, d) r = (1, 2, 3, 4, 5) r1 = {'a': 1, 'b': 2, 'w': 3, 'e': 5} new(*r) # => 1 2 (3, 4, 5) {} new(**r1) # => 1 2 () {'w': 3, 'e': 5}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号