• python函数-第四天


    苍井空名言:我脱光衣服躺在镜头前,是为了生存,而你衣冠楚楚的站在镜头前,却只是为了私欲和欺骗

    1.函数
    函数的声明:
    def 方法名(参数1,参数2):
    '函数文档'
    #注释
    print()
    return [expression]

    调用函数:
    方法名()

    打印函数文档:
    1.参数名.__doc__
    注:两个下划线

    2.help(参数名)


    2.参数
    参数分为形参(parameter)和实参(argument)

    3.关键字参数
    >>> def saySome(name,words):
    print(name + '->' + words)


    >>> saySome(words='让编程改变世界',name='小甲鱼')
    小甲鱼->让编程改变世界

    4.默认参数
    >>> def saySome(name = '小甲鱼',words = '让编程改变世界'):
    print(name + '->' + words)

    >>> saySome('苍井空','我脱光衣服躺在镜头前,是为了生存,而你衣冠楚楚的站在镜头前,却只是为了私欲和欺骗')
    苍井空->我脱光衣服躺在镜头前,是为了生存,而你衣冠楚楚的站在镜头前,却只是为了私欲和欺骗

    5.收集参数
    >>> def test(*params,exp):
    print('参数的长度:',len(params),exp)
    print('第二个参数是:',params[1])

    >>> test(1,'小甲鱼',3.14,5,6,7,8,exp = 8)
    参数的长度: 7 8
    第二个参数是: 小甲鱼

    >>> def test(*params,exp = 8):
    print('参数长度:',len(params),exp)
    print('第二个参数:',params[1])


    >>> test(1,'小甲鱼',3.14,5,6,7,8)
    参数长度: 7 8
    第二个参数: 小甲鱼

    6.函数(function):有返回值
    过程(procedure):是简单、特殊并且没有返回值的

    python可以返回多个值
    >>> def back():
    return 1,'小甲鱼',3.14

    >>> back()
    (1, '小甲鱼', 3.14)

    7.局部变量(Local Variable)
    全局变量(Global Variable)

    自己的话:在函数里边定义的参数以及变量,它们都成为局部变量,出了这个函数就是无效的
    原理:python在调用函数时候,它是利用栈进行存储,把函数所需的代码、变量都扔到栈里,
    当执行完该函数时,函数会被自动删除,栈的数据会自动清空,所以函数外无法访问到局部变量

    8.global 和 nonlocal关键字
    当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了。

    exa:
    num = 1
    def fun1():
      global num # 需要使用 global 关键字声明
      print(num)
      num = 123
      print(num)
    fun1()
    print(num)

    以上实例输出结果:
    1
    123
    123

    如果要修改嵌套作用域(enclosing 作用域,外层非全局作用域)中的变量则需要 nonlocal 关键字了,如下实例:
    def outer():
      num = 10
      def inner():
        nonlocal num # nonlocal关键字声明
        num = 100
        print(num)
      inner()
      print(num)
    outer()

    以上实例输出结果:
    100
    100


    9.闭包(Closure)
    一个函数定义中引用了函数外定义的变量,并且该函数可以在其定义环境外被执行。这样的一个函数我们称之为闭包。

    闭包的理解
    我们可以将闭包理解为一种特殊的函数,这种函数由两个函数的嵌套组成,
    且称之为外函数和内函数,外函数返回值是内函数的引用,此时就构成了闭包

  • 相关阅读:
    虚拟机环境
    R语言里一些画图程序不能在循环里正常保存的解决办法
    python 图片处理(更新)
    服务器跑代码小tips
    [论文笔记] :Temporal Graph Networks for Deep Learning on Dynamic Graphs
    [论文笔记] Detecting early-warning signals for sudden deterioration of complex diseases by dynamical network biomarkers
    堆和优先队列的写法
    [论文笔记] :Detection for disease tipping points by landscape dynamic network biomarkers
    Computational Physics
    WCSPH实现方法
  • 原文地址:https://www.cnblogs.com/LEPENGYANG/p/14111794.html
Copyright © 2020-2023  润新知