栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python——第六章 函数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python——第六章 函数

1.函数的定义与调用

2.函数的参数及返回值

3.变量的作用域

4.函数的递归调用

5.函数式编程


6.1 函数的定义与调用

格式: def<函数名>(<参数列表>):

                   <函数体>

与c不同的是,没有规定返回值类型

调用时:<函数名>(<参数列表>)

tips:

python不允许在函数未声明之前进行引用或调用


6.2函数的参数和返回值

1.参数的传递与修改 对于不可变类型int float string tuple,直接将值传给形参,引用了值的地址

def func1(n):

        n=20

        print(n)

a=10

func1(a)

打印a的值仍为10,但func1的结果为20

2.如果实际参数的数据类型是可变的对象(列表,字典),则参数的传递方式将采用引用传递方式

def func2(n):
    n[1] = 10
    print(n)

a=[1,2,3]
func2(a)
print(f"传递前的a变为{a}")

结果为:

[1, 10, 3]
传递前的a变为[1, 10, 3]

为了保证原始列表的安全,可以把列表的切片作为实参传递给函数

tips:

1.当一个函数有多个参数时,实参默认采用的是按位置顺序传递给形参

2.函数定义时可以给默认值

def func1(a,b,c = 3):
    print(a,b,c)

3.python可以接受非固定的数目的参数

def func1(*a):
    print(a)

func1(1,2,3)//结果为(1,2,3)
func1(1,2)//结果为(1,2)

默认为元组

4.函数的返回值

定义函数时不需要声明函数的返回值类型

函数返回值类型与return语句返回的表达式类型一致

可以返回元组类型,类似返回多个值

list1=[]
def fun(*n):

    a=sum(n)/len(n)

    for i in n:
        if(i < a):
            list1.append(i)
    return a,list1

print(fun(1,2,3,4))

6.3变量的作用域

标识符的作用域为其声明在程序里的可应用范围

全局变量与局部变量

全局变量与全局变量的生命周期

a = 1
def func1():
    b = 10
    global c
    c = 20
    print("Local:",b)
func1()
print("Global:",a)
print("Global:",c)

内嵌函数:在函数里面再定义一个新的函数(不是嵌套调用)

如果在函数体内不调用内嵌的函数,那么无法在外部调用

标识符解析的LEGB法则:

        local(局部作用域) ---->enclosing(函数范围作用域)

        global(全局作用域)----->build-in(内建对象作用域)

在 if while for等语句中定义的变量,后续仍可以继续使用,并不产生新的作用域,只有module class def才会出现新的作用域

x=1
def f1():
    print("f1:",x)

def f2():
    x =3
    print("f2:",x)
    f1()

f2()
x = 1
def f1():
    # print("f1",x)
    global x
    x = 2
    print("f1:",x)

f1()
print(x)

f1: 2
2

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349830.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号