专栏首页AI科技时讯Python从入门到熟练(7):函数

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

函数

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

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

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递归函数

  • 递归函数: 指函数不断自己调用自己, 好处是可以循环访问数据以达成结果。
  • 使用场景:每次进入更深一层递归时,问题规模相比上次递归都应有所减少

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

本文分享自微信公众号 - AI科技时讯(aiblog_research),作者:海棠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 关于神经网络,这里有你想要了解的一切!

    随着神经网络的发展,很多过去曾被认为是难以完成的任务现在已经可以完成了例如图像识别、语音识别,在数据集中发现更深的关系等已经变得更加容易了。所以我们应该衷心感谢...

    用户3578099
  • 贝叶斯优化在XGBoost及随机森林中的使用

    XGBoost和Random-Forest(RF,随机森林)都属于集成学习(Ensemble Learning),集成学习的目的是通过结合多个基学习器的预测结果...

    用户3578099
  • NFM:Neural Factorization Machines for Sparse Predictive Analytic

    FM能够有效的发现二阶组合特征,但存在的问题在于,FM捕获的二阶组合特征是线性组合的(其表达式就是线性组合),无法捕获非线性组合特征。现在深度神经网络可以发现非...

    用户3578099
  • 图解 Python 函数

    ​​函数是 “ 一系列命令的集合”,我们可以通过调用函数来自动执行某一系列命令。虽然经常性地出现于文章中的print()是被录入在Python的标准库中的函数,...

    墨鬓
  • 图解Python 函数

    如果想要定义函数,则需要以“def 函数名():”的格式为开头编写代码。在这之下的一个模块就是一个函数的范围。Python的模块就如前文中提到的,是根据缩进的等...

    用户1260737
  • 开工大吉:几个让你月薪3万+的excel神技能

    来源:运营圈信息流广告 职场中经常会用到哪些函数? IF函数、SUMIF函数、VLOOKUP函数、SUMPRODUCT函数...... 小编总结了8个在工作中常...

    CDA数据分析师
  • Java script中的函数使用方法

    汤清丽
  • 从零开始深度学习(十):激活函数

    文章首发于本人CSDN账号:https://blog.csdn.net/tefuirnever

    我是管小亮
  • 前端基础-JavaScript函数

    *返回值详解: ** 如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined 如果函数使用 return语句,那么跟再ret...

    cwl_java
  • 都应该了解的Python函数式编程

    “ 函数式编程(Functional Programming)或者函数程序设计,是一种编程范型。”

    周萝卜

扫码关注云+社区

领取腾讯云代金券