4—python函数知识小结

那些最好的程序员不是为了得到更高的薪水或者得到公众的仰慕而编程,他们只是觉得这是一件有趣的事情!

hello!大家好,我是小y同学,这一期,小y将为大家介绍一些简单的python函数知识!


一、认识函数

  • 编程从某些方面来说与数学有着及其的相似性,但是他们又有着或多或少的区别,说到函数,作为编程小白的我们首先想到的肯定是数学上面的函数(这里小y可以说一大堆呢:二次函数、指数函数、幂函数…);重点来了:编程中的函数可以理解为一段预处理好的程序,能完成行特定的功能。

  • 为了方便大家理解,我们先简单举几个例子:
    在这里插入图片描述

    上面几个例子都是我们之前用过的很常见的几个函数,看了这些例子想必你对函数有了一定的感觉了吧,通过观察我们不难发现,python中所谓的函数,无非就是把你要处理的对象放到一个名字后面的括号里就OK,对的,这就是函数的调用

  • 在我们安装python的时候,就已经安装了有很多内建函数(说白了:自带的函数),常见的内建函数还有:
    在这里插入图片描述

    小y第一次看见这个表也是很头疼,但是在后来的学习过程中发现,我们只需要了解一些常用的函数就OK了,而且许多函数命名的都很直观,很好理解,这里小y要提醒大家的是:注意之前我们所学的变量命名,我们在给变量命名时一定要注意避开上面的函数名称,虽然python单词对大小写敏感(单词大写小写是不同的单词),但是小y不建议我们在取名时将一些关键字、函数名首字母大写来命名。

  • 附上 python官网中介绍各个函数的链接(“函数词典”):内置函数 — Python 3.10.7 文档


二、开始创建函数

  • 经过一番学习,我们已经对函数有了大概的概念:可以执行某个功能的程序,然而,python自带的函数是有限的,我们要学会自己创建函数,即:定义函数。

  • python函数的定义十分简单,之前说过,python读起来多少有点像英语,所以在定义函数之前,我们先浅学几个英文单词:

    • def(即define) 定义的意思
    • arg(即argument) 英文上我们只知道是争吵的意思,在这里有参数的含义,还有另外一种写法parameter,也是参数的意思,但是稍有不同,这里不读阐述。
    • return 返回的意思
    • function 函数的意思

    我们再试着理解一句英文:define a function named ‘function’ which has two arguments :arg1 and arg2,return the result-‘Something’.
    接下来,敲重点了,函数定义的方法:

    def function (arg1, arg2):

    缩进 语句

    缩进 return ‘something’

    需要注意的是:

    • 定义中必须要存在的字符小y已经高亮显示

    • function是函数名(可以自己命名),arg1,arg2是两个输入参数(后面会说),注意定义语句末尾的英文冒号不要弄丢了,something是结果

    • def 和 return都是关键字,python就是靠这些关键字来明白用户的意图的。

    • 缩进是python识别语句之间关系的显著特征之一,一定不能丢下!!!

  • 实践是检验真理的唯一标准,话不多说,小y这里给大家举个栗子:

    • 不知道大家知不知道摄氏度与华氏度的转换关系式,不知道也没事,小y在这里给大家准备好了:
      F = 9 5 C + 32 F={9\over5}C+32 F=59C+32,其中F代表华氏度,C代表摄氏度。

    • 接下来我们先简单整理一下思路:设计一个这一的函数,输入摄氏度C,中间编辑一个数学表达式给我们计算,返回给我们华氏度F。

    • 上代码:

      def c_to_f(c_input):
          f_print = c_input * 9 / 5 + 32  # 数学计算表达式
          return str(f_print) + '°F'  # 这里小y给输出结果加上单位
      

      小y英语也不是很好,所以就给函数随便取名为c_to_f,给输入的参数取名为c_input,中间计算的结果变量f_print,最后返回值,因为f_print是数值型嘛,所以我们使用了str()函数帮我们转化成了字符串类型,这样才方便为我们后面与单位这个字符串进行合并

    • 调用函数:(接着函数后面写)

      f = c_to_f(35)  # 直接函数名后面括号往里面塞入摄氏度的值
      print(f)  # 打印结果
      

    在这里插入图片描述

    • 不相信的小伙伴可以自己手动算一下或者找个转换的计算器也是OK哒!
  • 为了咱在深入使用函数的时候不会产生困惑和挣扎,这里小y尝试给上面代码的return语句删掉,增加一个print()语句

    • 这里小y给大家截图,以示IDE并没有发出报错预警
      在这里插入图片描述

    • 调用一下

      f = c_to_f(35)  # 直接函数名后面括号往里面塞入摄氏度的值
      print(f)  # 打印结果
      

      小y直接CV大法,咱们看一下结果
      在这里插入图片描述

      两行语句分别是函数里面的print函数和调用时返回的语句。

    • why?为什么会这样?
      这是因为print是一个函数,不是关键字,return作为关键字在函数中起到了返回值的作用,print仅仅是人类设计的函数,没有返回值的作用,小y给上面的函数返回值语句给删掉了,这就导致上面的函数经过调用后没有返回数值,所以f_print没有被赋值,打印出None空值。

    • 你在仔细观察小y前面介绍函数定义的方法高亮的字符串中,没有高亮return,因为return在定义函数是可有可无的,只不过没有的时候返回值是空值(None)罢了

  • 我们在其他的地方有看到函数定义的时候使用关键字declare而不是def,对于有其他语言基础的人而言这是两个不同的行为,但是python中的def和declare是一体的,小y喜欢def


三、传递参数与参数类型

  • 巴拉巴拉说了这么多函数定义,这里要给大家说一下argument(输入参数),也就是我们放到括号里面的对象。

  • 我们可以仔细详细,如果我们写的函数,有一个要输入的参数,直接放就行,假如有4个5个或者更多的参数,怎么放置成了问题:怎么才能让参数和我放的值一一对应起来?

  • 事实上,传递参数的方式有两种:

    • 位置参数
    • 关键词参数

    位置参数很好理解,我们输入的值只要位置和函数定义的位置一样就OK,关键字参数也不难理解,我们给输入 的参数绑定到函数定义时的参数名即可。

  • 下面还是给大家举个例子,就拿我们熟悉的梯形面积公式来说吧,我们定义一个可以计算体型面积的函数,很明显,要想计算梯形的面积,我们要知道上底、下底和高这三个参数

    • 首先定义函数

      def trapezoid_area(base_up, base_down, height):
          return 0.5 * (base_up + base_down) * height
      
    • 调用

      • 位置参数调用

        trapezoid_area(1, 2, 3)
        

        不难看出,填入参数1,2,3分别对应着base_up, base_down, height的位置。这就是位置参数调用。

      • 关键词参数调用

        trapezoid_area(height=3, base_down=2, base_up=1)
        

        很直观,调用参数的时候我们将每个参数名称后面赋予一个我们想要传入的数值,这就是关键词参数调用。

    • 在小y调用参数的时候,更喜欢使用关键词调用,因为那样程序可读性更强一些。

  • 神奇的默认参数

    • 我们在定义函数的时候,只需要在定义参数的时候给参数赋值即可设置所赋的值为默认值。

    • 例如:

      def trapezoid_area(base_up, base_down, height=3):
          return 1 / 2 * (base_up + base_down) * height
      

      这样我们就设置默认的高(height)是3了,设置我默认参数的方式有点像关键词传入参数的方式,小y这里提醒大家不要弄混哦!

    • 默认参数在我们传入参数的时候是可以更改的,只需要我们在传入参数的时候只需要将对应的参数进行修改即可。

      s = trapezoid_area(base_up=2, base_down=4, height=6)
      print(s)
      

      这样我们就修改了默认参数height为6了,看一下结果吧:
      在这里插入图片描述

    • 我们在调用函数传入参数的时候如果没有设置默认参数的值,就会使用默认参数的默认值,因此,从某个角度来说,调用函数时默认参数说可有可无的。

    • 感兴趣的友友们可以在pycharm中输入print,按住Ctrl键鼠标左击print单词,可以进入print函数的源码:
      在这里插入图片描述

      虽然这里是英文的注释,但是我们可以看到参数end的大概意思就是在最后一个值之后附加的字符串,默认为换行符。我们可以修改这个默认值:

      print("小y不会python!", end='*yes,yes')
      print("小y不会python!", end='*yes,yes')
      print("小y不会python!", end='*yes,yes')
      

在这里插入图片描述

大家可以看一下输出结果,是不是没有换行!

至此,小y已经向你介绍了简单的python字符串与变量知识啦!

不足之处,希望友友们可以留言多多指教!另外,码字不易,希望友友们可以给个点赞、收藏+关注,给小y更多的创作动力!😜😜😜

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小 y 同 学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值