第11天学习笔记 python中函数的基础知识 (plus不要小看这些基础知识哦,往往一个项目卡住了可能就是不知道这些基本用法。)

一,函数的定义

函数最只要的目的:封装一个功能。 

二,函数的优点是什么

1,减少代码重复率。

2,增强代码可阅读性。  # 不可能看一百行才知道你这个东西到底是干什么大的吧。

三,函数的组成部分

def my_len(): # 关键字,函数名,括号,冒号
    l = [1, 2, 3, 4]   # 函数体
    count = 0
    for i in l:
        count += 1
    print(count)

四,执行函数

my len() # 函数名 + 括号

五,函数的返回值:return 的作用停止函数体的运行。和break的功能一样。并且返回给这个函数一个值。

1> return 空或者没有return时,打印函数执行者时,为None

def func1():
    print (888)
    return

def func2():
    print(9)
    
print(func1())
print(func2())

>>> 

888
None
9
None

 2,return 加一个值,返回给函数这个值,这个值是什么类型就返回什么类型

3,return 加多个值是,返回给函数一个由这些值组成的元组,如

def func1():
    a = 8
    return a
def func2():
    a = 9 
    b = 20
    return a, b

print(func1())
print(func2())
8
(9, 20)

六,函数的传参,函数的参数分为形参和实参,顾名思义,一个形式上的参数,一个实实在在的参数。

  1. 形参的角度分类: 

               1> 位置参数, 按照顺序 ,一 一对应。就是这个位置我占了,谁在我位置上,我就是谁。先来后到。别和我抢地盘。

 

执行结果如下:

                 2>  默认参数,如果你给我一个值,我会将原来我默认的参数覆盖掉,牺牲自己,服务群众。如果你不给我传值,我也不会像位置参数那样大叫着要给我东西,不给我我就不让你过。此路是我开,留下银子。我只会默默无闻,任劳任怨的背负我原来的责任,不喜新厌旧,看我多宽宏大量。哈哈  又调皮了

                 3> 万能参数,也叫动态参数,*args ,**kwargs

例1:

运行结果如下

例2:

运行结果如下: 

           4>  形参的顺序 :位置参数,*args,默认参数,**kwargs

运行结果如下;

      5,传参陷阱:如果默认参数是一个可变的数据类型,那么他的内存地址用的是一个。

例1(传默认参数时的运行结果):

 

运行结果如下

 

例2(把变量放入局部命名空间):

 

运行结果如下:

 

2.站在实参的角度分为:位置传参,关键字传参,混合传参。

运行结果如下

七,函数的作用域,名称空间,取值顺序

    1,函数的名称空间:全局名称空间,局部名称空间(临时),内置名称空间

    2,函数的作用域:全局作用域,局部作用域

    3,取值顺序:就近原则:局部名称空间----->全局名称空间------->内置名称空间

八,函数名的应用

   函数名可以作为一个变量,函数的参数,函数的返回值,容器类类型的元素,

例1:

运行结果如下:

例2:

执行结果如下:

例三,当函数名作为返回值时

执行结果如下

九,函数的嵌套,global,nonlocal的运用。

例1:

 执行结果如下:

例2:

运行结果如下:

猜你喜欢

转载自blog.csdn.net/weixin_42233629/article/details/81805840