函数基础

函数:

  函数是组织好的,可以重复使用,用来实现单一或相关联功能的代码段

  函数即变量,变量必须先定义后使用,未定义而直接引用,相当与在引用一个不存在的变量名

函数定义:

  def 关键词开头():

    函数体

  def是固定的,不能变,他就是定义函数的关键词

  函数名,由数字,字母,下划线任意组合,同样不能以数字开头,要有可描述性

  注释:每个函数都应该对功能和参数进行相应的说明,应该写在函数下面的第一行,以增强代码的可读性。

  调用:就是函数名加括号()

函数返回值 return

  在函数中如果遇到return,直接结束函数,return以后的内容不会执行,作用与循环中的break差不多

  在没有返回值得情况下,print(def 函数())返回None,

  return   单个值  时,返回的这个元素的类型就是什么类型

  return 多个值  时,返回的值是一个元组,所有的返回值作为元组中的一个函数

def func1():
    a = 1
    b = 2
    c = []
    d = "alex"
    e = {}
    return  a,b,d       #(1, 2, 'alex') <class 'tuple'>
# print(func1(),type(func1()))    

函数的参数(形参和实参)

形参即变量名(变量的名字)实参是指变量值,函数调用则将值绑定到名字上,函数调用结束后,解除绑定

应用:

  位置参数:按照从左到右的顺序定义的参数  一一对应

    位置形参:必选的参数

    位置实参:按照位置给形参传值

  关键字参数:按照key= value的形式定义实参  

    无需按照位置为形参传值

    注意的问题:关键字实参必须在位置实参的右面,位置参数在左,关键字参数在右

          对同一个形参不能重复传值,即位置参数赋值后,右面不能再以关键字参数赋值,不然会报错

  默认参数:形参在定义的是就已经为其赋值

    可以传值,也可以不传值,经常变化的参数可以定义成位置参数,变化较小的可以定义成默认参数(形参)

    注意问题:1.只在定义时赋值一次

          2.默认参数定义在位置形参右边

          3.默认参数通常最好定义成不可变的类型

默认参数中的一个陷阱点

  默认参数如果定义成可变的类型。例

def my_func1(a,b=[]):
    b.append(a)
    print(b)
my_func1("alex")        #['alex']
my_func1("taibai")      #['alex', 'taibai']

当默认参数定义成可变的类型时,这个可变的数据类型(例如list)的地址是指向的同一个。即,后面添加参数的都会出现在这个(list内)地址内部,而不是又新建一个列表。

原文地址:https://www.cnblogs.com/yuncong/p/9482102.html