• python函数的定义和使用


    函数的定义

    Python语言通过def关键字定义函数。
    语法格式:
    def 函数名 (参数列表):
    函数体
    return 返回值列表

    函数名可以是任何有效的Python标识符,参数列表是调用该函数时传递给它的值,可以有零个、一个或多个,当传递多个参数时各参数由逗号分隔,当没有参数时也要保留圆括号。参数列表中参数是形式参数,简称为“形参”,相当于实际参数的一种符号表示或符号点位符。函数体是函数每次被调用时执行的代码,由一行或多行语句组成。如果需要返回值,使用保留字return和返回值列表。函数可以没有return语句,函数体结束后会将控制权返回给调用者。

    def func(n):
    	s = 1
    	for i in range(1,n+1):
    		s*=i
    	return s
    
    • 1
    • 2
    • 3
    • 4
    • 5

    函数的使用

    函数的定义也叫函数“声明”,定义后的函数不能直接运行,需要经过“调用”才能得到运行。

    语法格式:
    函数名(实际赋值参数列表)

    每次使用函数可以提供不同参数作为输入,以实现对不同数据的处理;函数执行后,可以反馈相应的处理结果。函数的执行与黑盒类似,使用者不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。

    具体来说,函数的使用一共分为4个步骤:

    1)函数定义
    使用def保留字将一段代码定义为函数,需要确定函数名、参数名、参数的个数,使用参数名称作形式参数(占位符)编写函数内部的功能代码。
    (2)函数调用
    通过函数名调用函数功能,对函数的各个参数赋予实际值,实际值可以是实际数据,也可以是在调用函数前已经定义过的变量。
    (3)函数执行
    函数被调用后,使用实际参数(赋予形式参数的实际值)参与函数内部代码的运行,如果有结果则进行输出。
    (4)函数返回
    函数执行结束后,根据return保留字的指示决定是否返回结果,如果返回结果,则结果将被放置到函数被调用的位置,函数使用完毕,程序继续运行。
    编程中大量使用函数已经成为一种编程范式,叫作函数式编程。函数式编程的主要思想是把程序过程尽量写成一系列函数调用,这能够使代码编写更简洁、更易于理解,是中小规模软件项目中最常用的编程方式。
    在Python中,函数也是有类型的,可以通过type()获得函数的类型。函数采用其定义的名字表达,具体为function类型,这是一种Python的内置类型。然而,如果调用函数,则类型为返回值的类型。

    Python语言最小函数可以不表达任何功能,比如说:

    def f():
    pass

    其中,保留字pass表示不进行任何操作,起到占位符的作用,因为函数体内部总要编写一行代码,对f()的调用不实现任何功能。

    可选参数传递

    函数的参数在定义时可以指定默认值,当函数被调用时,如果没人传入对应的参数时,则使用函数定义时的默认值替代。
    语法格式

    def 函数名(非可选参数列表,可选参数列表=默认值):
    函数体
    return 返回值列表

    需要注意,可选参数一般都放置在非可选参数的后面,即定义函数时,先给出所有非可选参数,然后再分别列出每个可选参数及对应的默认值。

    采用参数名传递方式不需要保持参数传递的顺序,参数之间的顺序可以任意调整,只需要对每个必要参数赋予实际值即可,这种方式会显著增强程序的可读性。

    def fun(a=1,b=1):
    print(a,b)
    fun() # 1 1
    fun(b = 3, a= 9) # 9 3

    函数的返回值

    return语句用来结束函数并将程序返回到函数调用的位置继续执行。return语句可以出现在函数中的任何部分,同时可以将0个、1个或多个函数运算的结果返回给函数被调用处的变量。

    注意:多个返回值问题
    当return返回多个值时,这些值形成了一个元组数据类型,由小括号和逗号分隔,例如(a,b,c)。函数可以没有return,此时函数并不返回值。

    当函数使用return返回多个值时,可以使用一个变量或多个变量保存结果。

    def func(a,b):
    return a,b
    x = func(1,2)
    x # (1, 2)
    x,y = func(1,2)
    x,y # (1, 2)
    x # 1
    y # 2

  • 相关阅读:
    无痛卸载流氓杀毒软件Avast
    C++静态成员变量必须在类的定义之外进行声明 (error LNK2001: unresolved external symbol)
    C++——基于多态的职工管理系统
    【个人简历】如何让人眼前一亮?简约大方(附模板)
    场景之分页查询设计
    [附源码]计算机毕业设计JAVA化妆品销售管理系统
    【Android 逆向】ART 函数抽取加壳 ③ ( 禁用 dex2oat 操作 HOOK 点介绍 | 集成 InLineHook )
    基于Java+SpringBoot+vue+elementui社区疫情防控系统详细设计实现
    文件操作File类的用法和输入流和输出流的用法
    推动城市运动发展,WML打造飞盘超级周末
  • 原文地址:https://blog.csdn.net/m0_73765519/article/details/132721705