Python从入门到熟练(7):函数

本文详细介绍Python函数的基础使用、参数类型、变量作用域及递归函数等内容。通过学习,读者可以了解如何定义和调用函数,掌握不同类型的参数,理解变量的作用域规则,并学会使用递归函数解决实际问题。

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

函数

本节主要讲函数。函数也可以看作是一种方法,能够去实现某种想法,比如加法等操作就是一种函数,只不过在背后被封装起来了。函数是编程中一个重要的方法,

掌握函数,就可以以编程的方式实现自己脑海中的想法。

1 函数的基本使用

  • 函数:把具有独立功能的代码块打包为一个小模块,在需要的时候调用
    函数的使用包含两个步骤:

    • 定义函数——封装独立的功能

    • 调用函数——享受封装的成果

  • 作用:在开发程序时,使用函数可以提高工作效率以及代码的重用

  • Python中提供了非常多的内置函数:print()input()type()

定义函数:

定义函数:

  • def 函数名():
    	函数封装的代码
    
  • 函数代码块以def关键字开头,后接函数名圆括号()

  • 关键字def : 是英文define的缩写,在计算机领域指预设置的命令

  • 函数名应该能够表达函数封装代码的功能,方便后续的调用

  • 函数名的命名应该符合标识符的命名规则

标识符的命名规范复习:
  • 标识符由字符(A〜Z , a〜z )、下划线数字组成
  • 不能以数字开头
  • 不能包含特殊字符
  • 不能和Python中的关键字重名
调用函数的方法
  • 调用函数的方法:

    通过函数名()即可完成对函数的调用

    注意:
    代码中不能将函数调用放在函数定义的上方 , 在类中是可以的

2 函数的参数

  • 函数的参数

    • 将函数内需要使用到的变量,在调用函数的时候,使用参数传递到函数内部
    • 在函数内部,把参数当做变量使用
    • 函数定义时的参数称为形参调用时被传入的参数称为实参
  • 使用方式:
    在函数名后面的小括号内部填写参数,多个参数之间使用,分隔

  • 必需参数:在函数调用时数量和顺序必须和声明时的一样

  • 关键字参数:

    • 函数调用时使用参数名进行对应传值,允许参数的顺序与声明时不一样
  • 默认参数:

    • 函数定义时给参数设定默认值,如果函数调用时没有传入,则使用默认值
  • 可变参数:

    • 在定义函数不确定参数的数量内容时,使用可变参数,不会进行直接命名
    • *args参数获取所有直接传参的参数元组
    • **kwargs参数所有关键字传参的参数字典
3 变量作用域

变量的作用域:也称变量的命名空间,由变量声明的位置决定了该变量的作用域

  • 局部变星:
    • 函数内声明的变量,不做特殊声明的都是局部变量,只能在函数内使用
  • 全局变量:
    • 在函数外赋值的变量就是全局变量,可以在整个程序范围内使用

多层代码块中变量作用域的使用规则:

  • 局部变量不能在外部代码中直接使用

  • 全局变量可以在函数体内进行访问

  • 函数体内对外部变量重新赋值不会改变函数体外的全局变量

  • global关键字:如果想对函数体外的变量进行修改,使用global关键字

获取函数体内的变量:

  • 如果需要获取函数执行的结果或者获取函数内的局部变量

  • 在函数中使用return关键字可以返回结果

  • 也可以一次性返回多个结果,返回的多个结果时使用,隔开

  • 当返回多个结果时,在接受的地方使用元组解包的方式获取数据

    注 意 : return关键字表示返回结果,后续的代码都不会被执行

突然修改的列表

  • 往主函数内传入一个列表,并在函数内修改,这时函数外的列表也会同步改变

  • 传入一个字符串,尽管同样在函数内修改,函数外字符串不会发生改变

  • 测试结果

    • 函数传入可变数据类型时,在函数内修改,影响原数据
    • 不可变数据类型则不会
  • 拓展

    • 可变数据类型:List (列表)、Dictionary (字典)、Set (集合)
    • 不可变数据类型:Number (数字)、String (字符串)、Tuple (元组)

4递归函数

  • 递归函数: 指函数不断自己调用自己, 好处是可以循环访问数据以达成结果。

  • 使用场景:每次进入更深一层递归时,问题规模相比上次递归都应有所减少

注意:递归是一个很容易造成死循环的函数。但是,在被正确编写后,递归可能是一种非常有效且数学上优雅的编程方法。一定要设定好递归退出的条件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uncle_ll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值