zoukankan      html  css  js  c++  java
  • Python基础(九)--函数

    函数的作用

    • 减少重复代码
    • 程序易于维护
    • 程序易于扩展

    函数的定义

    >>> def calculate(x,y):    #定义函数名为calculate,参数为x和y
        result = x+y
        return result             #返回结果
    
    >>> a = calculate(x=3,y=4)       #调用,关键参数x=3,y=4
    >>> print(a)
    7

    函数参数

    形参,实参:形参类似与数学函数中的变量,实参是则是运算时变量实际的值

    位置参数:调用函数时,可以按照函数定义时的位置顺序给定参数

    关键参数:调用函数时,可以不按顺序给行形参,但须指明对应

    默认参数:函数定义时,可以给某个形参定义好初始值,调用时可不给定其实参;默认参数必须写在最后

    >>> def calculate(x,y,z=3):       #默认参数为z=3
        res = x+y+z
        return res
    
    >>> a = calculate(3,4)        #位置参数对应,z可以不给定
    >>> print(a)
    10

    非固定参数:可接受额外参数

    • *args接收的是元组,实参以位置参数实现
    • *kwargs接收的是字典,实参以关键参数实现
    • 由于位置参数需要写在最左,*args要能接收值的话,前面的参数都必须以位置参数实现
    >>> def register(name,age,cn=00,*args,**kwargs):
        print(name)
        print(age)
        print(cn)
        print(args)
        print(kwargs)
    
        
    >>> register('xing','55kg','yang','666',height=170)
    xing
    55kg
    yang
    ('666',)
    {'height': 170}

    函数的返回值

     返回使用return关键词

    • 如果未指定return,则返回None
    • 函数执行过程中遇到return语句便会停止执行并返回值
    >>> def test():
        return 1,2,4,4
    
    >>> test()                #返回多个值会将变成元组
    (1, 2, 4, 4)

    函数的作用域

    • 局部变量和全局变量存在不同的内存空间,不会冲突
    • 就近原则:函数内部未定义变量时,会去全局变量里调用
    • 函数内部可定义全局变量,使用global 声明
    • globals(),locals() 可查看全局变量和局部变量
    • 函数内不可以修改全局变量
    >>> name = 'xing'        #全局变量
    >>> def test():
        name = 'lala'        #局部变量
        print(name)
    
        
    >>> test()
    lala
    >>> print(name)
    xing
  • 相关阅读:
    机器学习(深度学习)
    机器学习(六)
    机器学习一-三
    Leetcode 90. 子集 II dfs
    Leetcode 83. 删除排序链表中的重复元素 链表操作
    《算法竞赛进阶指南》 第二章 Acwing 139. 回文子串的最大长度
    LeetCode 80. 删除有序数组中的重复项 II 双指针
    LeetCode 86 分割链表
    《算法竞赛进阶指南》 第二章 Acwing 138. 兔子与兔子 哈希
    《算法竞赛进阶指南》 第二章 Acwing 137. 雪花雪花雪花 哈希
  • 原文地址:https://www.cnblogs.com/lalaxing/p/11321673.html
Copyright © 2011-2022 走看看