zoukankan      html  css  js  c++  java
  • python中函数的定义与调用

    在前面的学习中,其实我们已经接触到了一些函数,比如:

    type() 函数能返回数据的类型

    len() 函数能返回数据的长度

    print() 函数能在控制台将内容输出出来

    range() 函数能生成整数数列

    这些函数都是python的内置函数,我们可以直接调用,后面我们将会接触到更多的python的内置函数。通过观察,我们不难发现,函数有以下两个特点:

    • 可以具体完成某个功能
    • 可以重复使用

    一、python中函数的定义

    除了python 内置函数外,我们还可以根据需求自定义函数,函数的定义有以下规则:

    • 使用关键字def 来向python发出信号,标识你要定义一个函数;
    • def 后跟具体的函数名称,注意,自定义函数的名称最好不要跟内置函数名称发生冲突;
    • 函数名称后跟一对圆括号,圆括号内存放调用该函数时需要传入的参数;
    • 在函数体内,我们可以使用 一对 三引号 来定义文档字符串,这就相当于是给函数加了一段注释,说明该函数的具体作用;
    • 函数一般以return 结束,用来返回值方便调用,如果没有return语句,则默认返回None;
    • 函数遇到return就会终止,即return后面的代码将不会被执行。

    1、函数的语法:

     举一个比较简单的例子:

     2、函数的调用

    二、函数中的参数

    1、形式参数和实际参数

    • 形式参数:函数定义时候的参数
    • 实际参数:函数调用时候的参数

    2、函数的位置参数

    • 位置参数:形式参数和实际参数要一一按照顺序对应,不多不少,位置一样。

     关于函数的参数传递,我们需要注意如下几点:

    • 调用函数传递的参数个数一定要和函数定义的参数个数一致,否则会报错;
    • 注意函数体里面参数的类型,要输入正确的参数类型,否则会报错。

    3、函数的默认参数

    • 在函数定义的时候,给形式参数一个默认值,即为默认参数;
    • 在函数定义时,如果有默认值,在调用时如果传入了实际参数,那么默认参数不会生效,如果没有传入实际参数,默认参数会生效。

     4、位置参数与默认参数

    一个函数有的时候不仅有位置参数,还会有默认参数,如果这两种参数同时存在的时候,就一定要把默认参数放在位置参数的后面,否则会报错!!

     5、关键字参数

    • 作用:是相对于位置参数讲的,可以提高函数调用时候的可读性,更加容易理解实际参数的意义;
    • 关键字的名字===形式参数;
    • 关键字参数区别位置参数,可以不按照顺序进行调用,可以交换顺序;
    • 关键字参数也要放到位置参数的后面。

    6、不定长参数

    不定长参数包括位置不定长参数和关键字不定长参数:

    • *args:位置不定长参数;
    • *kwargs:关键字不定长参数

     (1)位置不定长参数:*args

    • *args:在函数内部的表现形式:names是一个元组
    • *args:可以接收从函数调用的时候多余的位置参数
    • *args:加在其他位置参数的后面

    (2)关键字不定长参数:*kwargs

    上面我们讲了不定长位置参数,这一节我们来掌握下带有关键字的不定长参数。它与普通的不定长参数的区别就是带有关键字,且必须指定关键字,否则识别不了。

     三、局部变量和全局变量

    1、定义

    • 局部变量是在函数内部声明的变量,只能在该函数调用它,如果试图在超出范围的地方调用,程序就会报错;
    • 全局变量是在整个整个py文件中定义的变量,全局范围内都可以访问。

    2、局部变量和全局变量需要注意的几个点

    • 全局作用域能获取局部变量吗??? 不能!!!
    • 全局作用域能修改局部变量吗??不能!!!
    • 局部作用域能获取全局变量吗??能!!!  
    • 局部变量能修改全局变量吗??不能!!!

     3、局部作用域修改全局变量的方法

    • global 关键字是声明全局变量的关键字

     返回的结果是:27

  • 相关阅读:
    HDU 1584 蜘蛛牌(DFS)
    HDU 1800 Flying to the Mars(贪心)
    zsh: command not found: java (xxx)
    Deepin20安装Mysql8
    Deepin全局菜单
    Ubuntu PPA 解读
    Node安装与配置
    Windows安装配置Maven
    idea 安装 Vue 插件没有Vue component选项
    Linux桌面系统创建应用程序快捷方式
  • 原文地址:https://www.cnblogs.com/Cactus-xiaot/p/12790179.html
Copyright © 2011-2022 走看看