zoukankan      html  css  js  c++  java
  • Python学习笔记(11)-局部变量、全局变量、返回值补充、参数补充、递归函数、匿名函数

    局部变量

    定义在函数中的变量叫做局部变量

    作用范围:只能在函数中使用,函数外无法使用,如下两图:

    图1:在函数内打印变量name,可以成功输出xiaoming

    图2:在函数外打印变量name,提示变量name未定义

    图1

    图2

    注意:形参也是局部变量

    全局变量

    定义在函数外的变量叫做全局变量

    作用范围:在任何一个函数中均可以使用,但不可以修改值,如需修改需要在函数中声明变量(global 变量名),如下三图:

    图1:在函数test1和test2分别打印变量name,均可成功输出xiaoming

    图2:在函数test1中将变量name值更改为xiaohong,在函数test2中打印变量name,结果仍输出为xiaoming,全局变量name值未被修改

    图3:在函数test1中加入声明变量global name,扔将变量name值更改为xiaohong,在函数test2中打印变量name,结果输出为xiaohong,全局变量name值被修改

    图1

    图2

    图3

    函数返回值补充

    函数的返回值除了可以是数值和字符串外还可以是列表、元组、字典

    如下三图:

    图1:返回值是列表

    图2:返回值是元组

    图3:返回值是字典

    图1

    图2

    图3

    函数参数补充

    缺省参数

    带有默认值的参数叫做缺省参数

    作用范围:缺省参数位置如果有值传入,使用所传入的值,如果没有值传入,则使用默认值,如下两图:

    注意:缺省参数要写在参数列表的最后面

    图1:缺省参数c位置没有值传入,则输出默认值100

    图2:缺省参数c位置有值传入,则输出传入的值3

    图1

    图2

    默认情况下传入的实参与形参顺序是一一对应的(第一个实参传给第一个形参),如果存在多个缺省参数,需要给指定的缺省参数传值,则在实参处指定缺省参数名字和传入的值,如图:

    不定长参数

    默认情况下传入实参的个数的与形参是一直的,如果想要不限制传入参数的个数,则使用不定长参数

    表现形式:*args  **kwargs

    说明:变量非必须使用args、kwargs,但是习惯是以这两个命名

    *args

    加上*的变量表示可以以元组的形式存放多个传入参数,如图:

    **kwargs

    加上**的变量表示可以以字典的方式存放多个命名参数(key=value),如图:

    递归函数

    函数在执行的时候调用函数自身,就叫做递归函数

    如图:

    应用场景:

    计算1到100的阶乘(1*2*3*4.......*100)

     思路:1到100的阶乘可以看做100乘以1到99的阶乘的返回结果,1到99的阶乘可以看做99乘以1到98的阶乘返回结果,依次类推

    注意:0乘以任何数都等于0,所以需要加上判断

    匿名函数

    如果一个函数的功能简单,可以省略def创建的标准步骤,使用匿名函数代替

    表现形式:

    定义:变量 = lambda   变量,变量(可以写无限多个变量):表达式

    调用:变量(和表达式前变量个数相等的值,值与值之间用逗号隔开)

    如图:

    应用场景:将匿名函数当做函数的参数传递

    说明:可以根据传入的匿名函数来计算任意两个数的加减乘除等

  • 相关阅读:
    设计模式之适配器模式(Adapter)
    数组中的趣味题(二)
    VSTS 2008 自定义签入代码审查策略
    自定义 Vista 系统下程序运行级别
    全国省份,城市,地区全数据(SQL版与XML版)包括各城市邮编
    LINQ 从数据库读数据生成 XML
    IE 8 Beta 2 初体验 隐藏了的"IE7模式"
    利用宏帮助快速录入代码
    你现在的生活是你n年前决定的
    控制参数个数的几种方式
  • 原文地址:https://www.cnblogs.com/lidongaistudy/p/9554558.html
Copyright © 2011-2022 走看看