zoukankan      html  css  js  c++  java
  • Python学习第11天_参数

    1、位置参数

    例子:

    # 声明函数,需要传入三个参数
    In [1]: def func(name, age, gender):
       ...:     print('名字:', name)
       ...:     print('年龄:', age)
       ...:     print('性别:', gender)
       ...:
    # 调用函数
    In [2]: func('张三', '20', '男')
    名字: 张三
    年龄: 20
    性别: 男
    

    含义:调用函数时传入三个参数,根据参数的顺序依次传入:name--'张三'、age--'20'、gender--'男'

    参数位置混乱例子:

    # 声明函数,需要传入三个参数
    In [1]: def func(name, age, gender):
       ...:     print('名字:', name)
       ...:     print('年龄:', age)
       ...:     print('性别:', gender)
       ...:
    # 调用函数
    In [2]: func('20', '男', '张三')
    名字: 20
    年龄: 男
    性别: 张三
    

    可以看到,位置传参时必须对应好参数的位置,否则就会出错

    2、关键字参数

    语法:func(参数1='值1', 参数2='值2')

    例子:

    # 声明函数,需要传入三个参数
    In [1]: def func(name, age, gender):
       ...:     print('名字:', name)
       ...:     print('年龄:', age)
       ...:     print('性别:', gender)
       ...:
    # 调用函数
    In [2]: func(age='20', gender='男', name='张三')
    名字: 张三
    年龄: 20
    性别: 男
    

    含义:为每个参数指定传入的值,不用去管参数的位置

    3、默认参数

    调用函数时未按要求传入参数程序会报错:

    # 声明函数,需要传入三个参数
    In [1]: def func(name, age, gender):
       ...:     print('名字:', name)
       ...:     print('年龄:', age)
       ...:     print('性别:', gender)
       ...:
    # 调用函数
    In [2]: func(name='张三', age='20')
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    <ipython-input-6-d26d9c8520b8> in <module>
    ----> 1 func(name='张三', age='20')
    
    TypeError: func() missing 1 required positional argument: 'gender'
    

    报错翻译为:TypeError: 缺少1个必需的位置参数:'gender'

    设置默认参数语法:

    def func(name, age, gender='男'):
    	代码块
    

    这里为gender设置了默认参数'男',在调用函数时不传入gender参数时默认就为'男'

    例子:

    # 声明函数,需要传入三个参数
    In [1]: def func(name, age, gender='男'):
       ...:     print('名字:', name)
       ...:     print('年龄:', age)
       ...:     print('性别:', gender)
       ...:
    # 调用函数
    In [2]: func(name='张三', age='20')
    名字: 张三
    年龄: 20
    性别: 男
    

    当一个参数不是必须穿入时,就可以使用默认参数给定默认值

    4、变量作用域

    在函数内部声明的变量为局部变量,函数外部不可进行调用,否则会报错

    例子:

    In [1]: def func():
       ...:     num1 = 10
       ...:     print(num1)
       ...:
    
    In [2]: func()
    10
    
    In [3]: num1
    ---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)
    <ipython-input-11-d05396c398c6> in <module>
    ----> 1 num1
    
    NameError: name 'num1' is not defined
    

    错误信息:NameError:没有定义名称“num1”

    将局部变量变为全局变量有两种方式:global关键字,return语句

    global关键字例子:

    In [1]: def func():
        ...:     global num1
        ...:     num1 = 10
        ...:     print(num1)
        ...:
    
    In [2]: func()
    10
    
    In [3]: num1
    Out[3]: 10
    

    含义:global num1定义了一个全局变量num1,所以在函数外部也可以进行使用

    return语句例子:

    In [1]: def func():
        ...:     num1 = 10
        ...:     print(num1)
        ...:     return(num1)
        ...:
    
    In [2]: func()
    10
    Out[2]: 10
    
    In [3]: num1
    Out[3]: 10
    

    含义:return语句返回函数的运行结果,也叫返回值,所以func函数的返回值就是num1,如果一个函数没有return语句,那这个函数的返回值就为None,代表这个函数没有运行结果

  • 相关阅读:
    试试用有限状态机的思路来定义javascript组件
    利用grunt-contrib-connect和grunt-connect-proxy搭建前后端分离的开发环境
    利用bootstrap的modal组件自定义alert,confirm和modal对话框
    利用轮播原理结合hammer.js实现简洁的滑屏功能
    等高分栏布局小结
    圣杯布局小结
    浏览器缓存知识小结及应用
    基于淘宝弹性布局方案lib-flexible的问题研究
    淘宝弹性布局方案lib-flexible实践
    Js位置与大小(1)——正确理解和运用与尺寸大小相关的DOM属性
  • 原文地址:https://www.cnblogs.com/jianwen520/p/13131572.html
Copyright © 2011-2022 走看看