美文网首页
Python学习26:函数的复习及综合运用

Python学习26:函数的复习及综合运用

作者: 简洁的书写 | 来源:发表于2024-09-05 08:17 被阅读0次

       前面学习了函数的一些知识。从参数上来看,函数可以有参数,也可以没有参数;从功能上来看,函数有输出型的,也有返回型的;从名称上来看,函数可以有名称,也可以没有名称。

      函数可以分为内置函数和自定义函数。内置函数是可以直接使用的,如下展示了两个常用的内置函数。

len函数,用于获取对象的长度或元素个数。
n = ["love",1,2,6,9]
print(len(n))

type函数,用于查询对象的数据类型。
print (type(1,2,6))
print(type("love")

    除了内置函数以外,还学习过自定义函数。定义的函数如果没有设置参数,就是无参函数;如果设置了参数,就是有参函数。

无参函数

       自定义函数在使用时需要先定义,再调用。定义函数使用关键字def,调用格式为:函数名()
示例中,定义和调用函数时,括号内没有传入参数,这就是无参函数。

形参和实参

     有参函数定义时,需要在括号设置参数,调用时也需要设置参数。定义函数时的参数叫形参,用于接收实参传递的数据。调用函数时的参数叫实参,用于给形参传递数据。

示例中,实参"7.8折"会传递给形参discount。

默认值形参

形参的特殊之处,就是可以设置默认值。示例中,radius是非默认的形参,pi是默认值形参,并且默认值为3.14。再次提醒,在定义函数时,必须先写非默认的形参,后写默认值形参。

       在定义函数时,给形参pi设置了默认值3.14。所以在调用函数中给默认值形参提供了实参值时,Python将优先使用实参值;否则,将使用形参的默认值。

    在形参中,有默认值参数这种特殊的用法。而在实参中,也有一些特殊的用法,再来回顾一下。

      关键字实参与位置实参。对于实参,经常会用到位置实参,同时也要了解关键字实参。示例中的第5行使用了关键字实参,即在括号内直接给形参赋值的方式传递数据。示例中的第6行使用了位置实参,即在括号内传入具体的实参数据,按照位置顺序依次传递给形参。

缺少实参

       还有一个易错点需要记住。使用位置实参时,形参会按照位置顺序依次接收实参处的数据。所以,在调用函数时,缺少位置参数会导致程序报错。

defpetMsg(name,pet):

    print(f"{name}有一只{pet}")

petMsg(name="小明", pet="狗")

关键字参数是在调用函数时,使用 形参=实参 的方式传递数据,并且形参名需要和定义时一致。

# 定义一个函数sayWelcome,依次传入形参name和language

def sayWelcome(name, language):

    if language == "ZH":

        print(f"欢迎你,{name}")

    elif language == "EN":

        print(f"{name},welcome")

# TODO 通过关键字实参的方式调用函数sayWelcome,传递参数"Gary"和"ZH";

sayWelcome(name = "Gary",language = "ZH")

# TODO 通过位置实参的方式调用函数sayWelcome,传递参数"Jack"与"EN"

sayWelcome("Jack","EN")

print和return的区别

      简单来说,函数中使用print,是为了显示信息,将结果直接输出。使用return,是为了返回结果。返回值可以用变量接走,继续使用该返回值做其它事。

print
      当调用该函数时,程序执行函数的代码块,直接输出了结果。而这类函数有一个比较大的问题,就是没办法把结果拿去干其他事情。

       如图,调用函数能输出结果,但是调用函数的结果却不能用来比较大小。这是因为数据在函数内被直接输出,没有传到函数外。如果要将函数的运行结果,传递到函数外使用。那么就需要用return关键字来将结果返回出来。

return

如图,定义函数的代码块中使用了return。当我们调用该函数时,程序执行函数的代码块,会将结果返回给调用函数处。此时调用函数的代码等同于一个变量,可以用它来给其他变量赋值、与其他数据比大小等操作。(这里我还有些不懂,多写写和运行代码)

      这里注意,对于使用return的函数,如果我们只是调用该函数,不会有输出结果。如图可以像使用print()输出变量一样,将调用函数的结果输出。

匿名函数

        对于匿名函数和递归的相关知识,能够理解并简单运用即可。匿名函数无需定义函数名,以 关键字 lambda 开头。包含return的简单函数,一般就可以使用匿名函数来进行改写。

递归实现阶乘

       当然,递归能实现一些经典问题,比如阶乘问题,斐波那契数列等等。一个正整数的阶乘是所有小于及等于该数的正整数的积,写作n!。例如5!=5×4×3×2×1。因为0的阶乘为1,所以,示例中设置终止条件为n等于0或1时,返回1。又因为阶乘是累乘,所以,递归的前进条件设置为:n * factorial(n-1)。

相关文章

  • Python学习总结【连载】(八)

    Python学习总结【连载】(八) 2018.06.22 Juttachen 概述 + 26 函数补充 函数的返回...

  • Python学习笔记-第13天:函数编程和正则表达式

    第十三天 函数编程和正则表达式 今天计划学习Python的高阶函数及函数编程,学习项目及练习源码地址:GitHub...

  • 函数复习-python学习17

    函数复习 不管碰到什么样的任务,我们不要着急写代码,应该先梳理清楚任务的需求是什么;需要什么具体的功能,然后分解目...

  • 杜文琪 2018年2月10日

    学习 生物:必修一细胞分裂分化的复习。 物理:平抛运动的复习。 数学:必修一函数的复习,一套综合试卷立体几何证明。...

  • python循环综合运用

    循环很重要,计算机很蠢,唯一的优势就是按照指令不停的执行,所以决定在说一下。 break语句,用在循环体中,迫使循...

  • python循环综合运用

    循环很重要,计算机很蠢,唯一的优势就是按照指令不停的执行,所以决定在说一下。 break语句,用在循环体中,迫使循...

  • python 内置函数Built-in Functions

    python 内置函数文档链接 尝试将python的内置函数进行解释及分类

  • Python函数复习

    本章重点: 掌握函数参数传递 变量的作用域 lambda函数 函数定义: 一、变量的作用域 作用域顾名思义是指变量...

  • Python学习笔记-第4天: 函数和面向对象

    第四天 函数和面向对象 学习项目及练习源码地址:GitHub源码 函数 Python中的函数必须先定义才能调用。 ...

  • day10

      今天主要学习了函数作为变量及生成器的相关知识。   一、函数作为变量   在python中,函数就是一种特殊的...

网友评论

      本文标题:Python学习26:函数的复习及综合运用

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