python课堂随笔_函数的定义

本文详细介绍了Python中的函数概念,包括函数定义与调用、参数(必备、默认值、不定长)、返回值、作用域(局部、全局、内建)以及闭包的作用。通过实例演示了如何灵活运用这些概念进行编程。
摘要由CSDN通过智能技术生成

 

函数的定义及调用

        1、有些功能可能需要反复使用

               (循环虽然可以多次使用,但是是连续的)

                 复制粘贴,或导致代码 重复量过大,过于冗余,浪费资源

         2、编程建议将相同功能的代码存放在一起,方便维护

                 函数: 可以重复使用的,用来实现单一或者相关功能的代码块。

                 ctrl + 鼠标单击函数名 可以定位到函数的定义处

函数的定义

def 函数名():

         函数具体功能的代码块

函数的调用

函数名()

        函数的命名规则与变量名一致

        函数名可以向变量一样进行传递

        使用变量接收函数名之后,同样可以使用变量() 的方式对这个函数进行调用

def is_trl():
    num = input("请输入一个手机号:")
    if num[0] !="1":
        print("不是1开头")

    elif len(num) !=11:
        print("不是11位")

    elif not num.isdigit():
        print("不是纯数字")

    else:
        print("是手机号码")

函数返回值:用来传递函数的返回结果,将函数里面的数据返回出来

        如果说,函数没有返回值,返回的结果就是None

return  是函数返回值的关键字,直接要把要返回的数据写在return后面就行

        return  具有结束函数的功能,后续代码不在执行

        多个返回值逗号隔开,会打包成元组进行返回、

 

def my_sum():
    print("这是一个求和的函数")
    a = 10
    b = 20
    return  a + b
res = my_sum()
print(res)

 需求:求任意两个数的和----参数

作用:让函数使用更加灵活

        形参:函数的定义处(作用类似于变量名)

        实参:函数的调用处(作用类似于变量值)

必备参数:一一对应原则

        数量一一对应        位置一一对应

def my_sum (a,b):    #形参
    print("a:",a)
    print("b":,b)
    return  a + b
res = my_sun(32,198)    #实参
res = my_sum(32,298,15)    #参数不对等,报错    
print(res)
 

默认值参数

        定义: 直接在函数定义处以 变量名=变量值 的形式进行指定

        作用: 当我们没有传参,不会报错,而是使用默认的值

        传参,覆盖原来的参数值

实例: print() end默认是换行, 我们可以自己定义

            end=" " 不换行 sep=" " 默认间隔符是空格,我们也可以自行更改

不定长参数

        *args 没有指定名称的参数,会被args以元组形式进行接收

        **kwargs 指定了名称的参数,会被kwargs以字典形式进行接收

        注意: *表示的是打包,args是变量名

        参数的顺序: 必备、默认值、不定长

def my_sum(a, b, c=100, *args, **kwargs):  # 形参
    print("a:", a)
    print("b:", b)
    print("c:", c)
    print("args", args)
    print("args", kwargs)
    return a + b + c


print(my_sum(1, 2, 3, 4, 5, 6, 7, d=300, e=400))

 

 

作用域:变量不是在每个地方都可以直接使用(取决于它定义的地方)

        条件和循环语句没有作用域的概念

分类

         ● L(local):局部作用域,即函数中定义的变量;

         ● E(enclosing):嵌套的父级函数的局部作用域;

         ● G(global):全局变量,就是模块级别定义的变量;

         ● B(build-in):内建作用域,系统固定模块里面的变量

优先级:优先使用离自己最近的 作用域:内建 》 全局 》 嵌套 》 局部

全局变量(只要是这个文件里面,在这一行后面的都能够使用)

def fun1():
     print(a)
     A = "Fish"
     print(A)  # 局部变量,只能在这个函数里面使用

def fun2():
     print(A)  # 这个函数里面没有定义A,不能使用


 fun1()
 #类似于 print()这些不需要定义就能够使用的,就是内建作用域
    print(a)
print(A)  # 函数里面的变量在外面不能进行调用

 

闭包 存在于嵌套函数中

         1、将子函数名使用 return 进行返回

         2、使用变量接收返回的子函数名

         3、通过接收这个函数名的变量+() 进行函数调用

作用:

        1、方便调用子函数;

         2、对子函数进行一个保护(直接调用父函数的时候,子函数不会执行)

 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值