python学习笔记七(函数)

本文介绍了Python中的函数,包括结构化编程的概念,函数的创建、调用和运行机制,以及函数的多种特点。详细讨论了函数的参数类型,如位置参数、关键字参数、默认参数和可变长参数,并提到了函数的返回值、局部和全局变量的作用域,以及`global`和`nonlocal`关键字的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数
1.结构化编程
       将特殊的逻辑,功能性代码,单独的抽取出来,封装成函数进行调用
        min([1,2,3]) ---逻辑被封装到了函数当中,调用起来非常方便简洁
2.非结构化编程
       所有的代码和逻辑都在同一个代码块中
       图书管理系统
       逻辑比较混乱,代码量太多,太杂

函数是程序的重要组成部分
一个程序中可以有多个函数组成,多个函数相互作用

创建函数的关键字:def ---定义(动词) 函数的定义(名词)---函数的创建
函数的创建(函数的定义)
       def 函数名(参数列表):    #参数可以是多个,多个参数要用逗号隔开
           函数的实现(核心代码)
函数调用
           函数名(参数)


函数的运行机制

当调用函数的时候,解释器(pvm)会根据函数名称所定义的位置,进入到函数内部,进行执行,执行完毕后,返回到函数的调用处

函数的特点:
     
1.避免代码的冗余
2.提高代码的可重用性
3.提高代码的可维护性
4.提高代码的灵活性

函数定义的位置:
1.函数和全局变量类似,从文件最前端书写(没有任何缩进)
2.函数和局部变量类似,定义在其他函数内部

函数的结构
1.函数的声明(函数的定义)
        def 函数名(参数列表)
        返回值
2.函数的内容(实现)
         核心代码
3.返回值
        return 要返回的值


函数的返回值

关键字:return
return要返回的值
任何一个函数,一定有return,如果没有书写return,系统会默认添加renturn None
作用:
返回整个函数(函数不在执行)


函数的参数

1.参数的划分:
      形式参数:函数声明的时候所写的参数,没有具体的值(从未使用过的标签)----简称:形参
      实际参数:(让标签贴在实际参数上)---简称:实参


位置参数
      参数和位置有关---参数是有顺序的---实参和形参的位置必须一一对应
位置参数不能过多,也不能过少

关键字参数
      定义了关键字的参数(函数的调用---实参)
      关键字参数和顺序无关---关键字必须是形式参数中定义的变量名
def fun(a,b):
   print(a.b)
fun(b=10,a=20)
注意:
1.位置参数应该写在关键字参数之前,如果形参中出现了关键字参数,PVM默认认为从此往后的所有参数都是关键字参数
2.实际参数只能被赋值一次(不能被重复赋值)
def fun(a,b):
    print(a,b)
fun(20,a=10)#错误,a被重复赋值
fun(10,20)
--------------------------------------
def fun(a,b):
    print(a,b)
fun(a=10,a=20,b=30)#错误,关键字参数重复

默认参数
定义了默认值的参数
def fun(a,b=100):# a=10 b=100 b=20
   print(a,b)
fun(10,20)
如果默认参数被传递了值,则覆盖掉以前的默认值
默认参数必须放在位置参数之后

可变长参数
收集参数----(函数的定义)
1.在参数前加*
   将所有的参数,打包成元组
   可以直接使用位置参数传递实参
def fun(*a):
   print(a)
fun(1,2,3,4,5)
输出:#(1,2,3,4,5)
2.在参数前加**
   将所有的参数,打包成字典
   必须使用关键字参数传递实参
def fun(**a):
   print(a)
fun(a=1,b=2,c=3,d=4,e=5)
输出: #({'a':1,'d':4,'e':5,'b':2,'c':3})

3.可变长参数在位置参数之前时,位置参数只能用关键字参数进行传值
def fun2(*a,b):
   print(a)
fun2(1,2,3,4,5)


函数的文档
文档注释:'''三引号'''
函数文档必须在函数结构中的第一行出现
1.文档的导出:
   函数名._doc_
2.help函数
   help(函数名)
   help可以自动打印文档(不用再次print)


函数和过程

1.函数
      函数的声明+函数的返回值
2.过程
      函数的实现(内容)

返回值
关键字:return
1.任何函数都有返回值
    如果没写,系统默认添加return None
2.return之后的语句不会执行
    函数的返回,依托于return
3.return之后可以跟任何数据
    数字,列表,字符串,None,bool....
4.return之后可以跟表达式
5.return之后可以跟函数的调用
6.return之后可以跟一个值
    间接的返回了多个值,本质上只传递了一个值

函数的变量的作用域

作用域:作用范围:命名空间
1.局部变量
       1.定义在函数内部的变量称之为局部变量
       2.先定义(赋值),后使用
       3.从定义开始到包含它的代码块结束
2.全局变量
       1.定义在文件的开头(没有任何缩进)
       2.作用范围:整个文件(如果以脚本的形式运行,运行的代码可能会截断作用域)
       3.局部变量和全局变量发生了命名冲突,以局部变量为优先.如果重新赋值,局部变量不会影响全局变量
        原因:局部创建了一个同名的新的变量(局部变量)


global关键字

global
使用方法:
     global 全局变量名
1.global 后声明的变量,叫全局变量
     从本行开始该函数内部用的所有变量都是全局变量


nonlocal关键字

nonlocal
常用方法
     nonlocal 外层函数的局部变量名
1.nonlocal后声明的变量,是外层函数的局部变量
    从本行开始该函数内部用的所有变量都是外层函数的局部变量
nonlocal---外层函数的局部变量


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值