美文网首页
Python语法 - 函数篇

Python语法 - 函数篇

作者: 蒋征 | 来源:发表于2020-10-16 14:47 被阅读0次

    函数是函数式编程语言的魅力所在。这一章节,我们就来了解下Python的函数

    什么是函数

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

    函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。


    函数定义规则

    你可以定义一个由自己想要功能的函数,以下是简单的规则:

    • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
    • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
    • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    • 函数内容以冒号起始,并且缩进。
    • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
      函数定义形如:


      image.png

    下面我们先来看一个简单的函数定义:

    def helloworld():
        # 可以写一些注释
        print('this is a function');
    

    这是最简单的函数定义了,没有参数和返回值,只是打印了一句话。
    注意:python是一个对缩进很敏感的语言,一定要注意缩进


    如何调用函数

    函数的调用其实我们一直都会,之前一直在用的print()其实就是一个内置的函数,可以让我们直接使用的,下面我们来演示一个例子

    image.png

    函数的参数

    形参和实参

    image.png

    函数参数分类

    函数参数按照类型可以分为四类:

    • 必备参数
    • 关键字参数
    • 默认参数
    • 不定长参数

    必备参数

    必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。


    image.png
    def paramTest01(name,age):
        # 测试必备参数
        print('你的名字:',name,', 年龄:  ', age)
    
    # 调用必备参数案例
    paramTest01('Allen',18)
    print('='*20)
    paramTest01(18,'Allen')
    

    结果为:

    你的名字: Allen , 年龄:   18
    ====================
    你的名字: 18 , 年龄:   Allen
    
    以上结果告诉我们,参数只认顺序,不管类型
    

    关键字参数

    关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
    使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。


    image.png
    def paramTest02(name,age):
        # 测试关键字参数
        print('你的名字:',name,', 年龄:  ', age)
    
    # 调用关键字参数案例
    paramTest02(name='Allen',age=18)
    print('='*20)
    paramTest02(age=18,name='Allen')
    

    运行结果:

    你的名字: Allen , 年龄:   18
    ====================
    你的名字: Allen , 年龄:   18
    
    关键字参数,无论顺序如何,都是按名称进行匹配的
    

    默认参数

    调用函数时,默认参数的值如果没有传入,则被认为是默认值


    image.png
    def paramTest03(name,age=18):
        # 测试默认值参数
        print('你的名字:',name,', 年龄:  ', age)
    
    paramTest03('Allen')
    

    运行结果:

    你的名字: Allen , 年龄:   18
    
    1、有默认值得参数,可以不传实参
    2、有默认值得参数必须排在无默认值参数得后面
    

    不定长参数

    你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。


    image.png

    函数的返回值

    1、return

    image.png image.png image.png image.png

    2、yield

    image.png image.png
    def gen(num):
        i=0
        while i< num:
            temp = yield(i)
            print(temp)
            i += 1
    
    a=gen(5)
    print(next(a))
    print(next(a))
    print(a.send('this is a'))
    

    可以通过send方法,将参数传入yield中

    生成器和迭代器

    1、生成器

    image.png
    image.png
    image.png

    2、迭代器

    image.png image.png

    相关文章

      网友评论

          本文标题:Python语法 - 函数篇

          本文链接:https://www.haomeiwen.com/subject/bsvzpktx.html