• Python 中函数(function)的用法


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

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

    一:定义函数

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

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

    语法:

    def functionname( parameters ):
       """comments"""
       function_suite
       return [expression]

    实例:

    def func(parameter):
        """打印传入的字符到显示设备上"""
        print(parameter)
        return parameter


    二:函数调用

    定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。

    这个函数的基本结构完成以后,可以通过另一个函数调用执行,也可以直接从Python提示符执行。

    实例:

    # coding: utf-8
    # Team : Quality Management Center
    # Author:Carson
    # Date :2019/6/25 9:07
    # Tool :PyCharm
    
    # 定义函数
    def func(parameter):
        """打印传入的字符到显示设备上"""
        print(parameter)
        return parameter
    
    # 调用函数
    func('五星红旗迎风飘扬')
    func('再次调用func()函数')

    以上实例输出结果:

    五星红旗迎风飘扬
    再次调用func()函数

    三:参数传递

     在 python 中,类型属于对象,变量是没有类型的:

    a = [1,2,3]
    a = 'China'

    以上代码中,[1,2,3] 是 List 类型,"Runoob" 是 String 类型,而变量 a 是没有类型,她仅仅是一个对象的引用(一个指针),可以是 List 类型对象,也可以指向 String 类型对象。

    可更改(mutable)与不可更改(immutable)对象

    在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。

    参数

    以下是调用函数时可使用的正式参数类型:

    • 必备参数(位置参数)
    • 关键字参数
    • 默认参数
    • 不定长参数

    必备参数

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

    调用函数时,你必须传入一个参数,不然会出现语法错误

    定义一个函数rt(a),调用函数时没有传入实参:

    def rt(a):
        print(a)
    
    rt()

    报错:

        rt()
    TypeError: rt() missing 1 required positional argument: 'a'

    正确传入必备参数:

    def rt(a):
        print(a)
    
    rt(123)
    rt('ASggh')

    输出:

    123
    ASggh

    关键字参数

    关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。

    使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

    # 可写函数说明
    def printinfo(name, age):
        """打印任何传入的字符串"""
        print("Name: ", name)
        print("Age ", age)
        return
    
    # 调用printinfo函数
    printinfo(age=50, name="miki")

    输出结果:

    Name:  miki
    Age  50

    默认参数

    调用函数时,默认参数的值如果没有传入,则被认为是默认值。下例会打印默认的age,如果age没有被传入:

    # 可写函数说明
    def printinfo(name, age = 28):
        """打印任何传入的字符串"""
        print("Name: ", name)
        print("Age ", age)
        return
    
    # 调用printinfo函数
    printinfo(name='Carson')
    printinfo(age=50, name="miki")

    输出结果:

    Name:  Carson
    Age  28
    Name:  miki
    Age  50

    不定长参数

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

    四:匿名函数

    python 使用 lambda 来创建匿名函数。

    • lambda只是一个表达式,函数体比def简单很多。
    • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
    • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
    • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

    语法:

    lambda函数的语法只包含一个语句,如下:

    lambda [arg1 [,arg2,.....argn]]:expression

    实例:

    num = lambda x, y: x*y
    print(num(3, 9))
    print(num(7, 8))

    输出:

    27
    56

    五:return语句

     https://www.cnblogs.com/xioawu-blog/p/11064629.html


     

  • 相关阅读:
    Error no matching function for call to 'std::exception::exception(const char [15])'
    Difference between 'SAME' and 'VALID' padding
    使用 RamMap 清理内存 How to Use RamMap to Empty System Working Set
    Ubuntu中网络配置interfaces与界面网络配置NetworkManager
    ifup / ifdown eth0 / eno1 reports unknown interface when it exists!
    Tab Key not working when using Xfce remote desktop
    Batch Norm、Layer Norm、Weight Norm与SELU
    IIS 域名 带参数 设置重定向
    C# 切换到二级域名,使用Cookie
    web服务器 双网卡 路由 设置
  • 原文地址:https://www.cnblogs.com/xioawu-blog/p/11081294.html
Copyright © 2020-2023  润新知