• python基础学习11----函数


    一.函数的定义

    def 函数名(参数列表):
        函数体
        return语句
    

    return语句不写或后边不加任何对象即为return None

    二.函数的参数

    无参数

    def func1():
        print("没有参数")
    

    一个参数

    def func1(a):
       return a
    

    多个参数

    def func1(a,b,c):
       return a+b+c
    

    必须参数

      必须按照正确顺序和数量传入参数

    def func1(name,age,job):
       print("name:%s age:%d job:%s"%(name,age,job))
    func1("sfencs",20,"IT")
    

    关键字参数

    def func1(name,age,job):
       print("name:%s age:%d job:%s"%(name,age,job))
    func1(age=20,name="sfencs",job="IT")
    

    默认参数

    默认参数必须放在必须参数的后面

    def func1(name,age,job="IT"):
       print("name:%s age:%d job:%s"%(name,age,job))
    func1("sfencs",20)
    func1("Alan",25,"teacher")
    

    不定长参数

    参数带一个星号*

    def func1(*args):
        print(args)
    func1(1,2,3,"sfencs")#(1, 2, 3, 'sfencs')以元组形式保存
    

    参数带两个星号**

    def func1(**kwargs):
        print(args)
    func1(age=20,name="sfencs",job="IT")#{'age': 20, 'name': 'sfencs', 'job': 'IT'}以字典形式保存
    

    定义函数的参数时请以必须参数、默认参数、带一个星号的不定长参数、带两个星号的不定长参数的顺序定义形参

    三.参数传递

    不可变类型

    def func1(a):
        a=5
    b=10
    func1(b)
    print(b)#输出为10
    

    可变类型

    def func1(list1):
        list1.append("sfencs")
    list2=[1,2,3]
    func1(list2)
    print(list2)#[1, 2, 3, 'sfencs']list2会改变
    

    四.变量作用域

    L (Local) 局部作用域
    E (Enclosing) 闭包函数外的函数中
    G (Global) 全局作用域
    B (Built-in) 内建作用域

    按照L-->E-->G-->B的顺序查找

    内部作用域修改外部作用域变量

    global

    count=20
    def function() :
        global count#不加这句话会报错
        print (count)#20
        count=5
        print(count)#5
    function()
    print(count)#5
    

    nonlocal 

    修改嵌套作用域

    def function1() :
        count=20
        def function2():
            nonlocal count
            count=5
            print(count)#5
        function2()
        print(count)#r此时输出为5,若不加nonlocal count则输出为20
    function1()
    

    五.递归函数

    #斐波那契数列为0,1,1,2,3,5,8,13,21,34.......
    def fibon(n):
        if n<=2 :
            return n-1
        return fibon(n-1)+fibon(n-2)
    print(fibon(7))#输出数列中第七个数,为8
    

      

  • 相关阅读:
    js里面的 InttoStr 和 StrtoInt
    预编译知识 (转载记录)
    C语言操作内存
    C语言操作文件
    C语言
    如何调试shell脚本
    设计模式-装饰者模式
    自己动手制作一个模版解析
    设计模式-单例模式
    http中关于缓存的那些header信息
  • 原文地址:https://www.cnblogs.com/sfencs-hcy/p/9610954.html
Copyright © 2020-2023  润新知