业界动态
Python笔记——python函数详解(超详细)_python函数大全及详解
2024-12-30 02:22

       首先零基础是能学python的,很多编程大神入门之前都选择先学习Python,所以想学就大胆去学吧,没学之前谁不是零基础,就算是现在才下定决心学也不怕,学习Python什么时候都不算晚。

       零基础如何学好python,作为一个学了python两三年的过来人,我当初也是从0开始一路摸索过来的,这里给想学python的小白们分享一点我的学习心得。

       

目录

一.重新认识函数

二.开始创建函数

 三.需要注意的是

四.传递参数与参数类型

五.设计自己的函数

一.重新认识函数

 

 注:计算的结果类型是int,不能与字符串“下”相合并,所以需要先用str()函数进行转换

      输入完以上代码后,函数定义完成,那么我们开始使用它。我们把使用函数这种行为叫做“调用”(call),你可以简单地理解成你请求 Python 给你帮忙去做一件事情,就像是我们之前学习到的函数 len()一样:“请帮我测量这个(对象)的长度,并将结果打印出来。 

 

 
       就像我们使用len()函数一样,下面这段代码意味着一-“请使用摄氏度转换器将35摄氏度转换成华氏度,将结果储存在名为C2F的变量并打印出来。”这样我们就完成了函数的调用同时打印了结果。
 

 
 
 

       怎么样?看上去很相似吧?没错,我们仅仅就是把最后一行的return换成了 print 函数,一个很小的改动,而且似乎IDE 也并没有对语法进行报错预警,那么我们来试一下调用函数会是什么情况吧!

     运行起来的结果是这样的:

 

      为什么会这样?
      其实,得到这样的结果是因为print 是一个函数,并非关键字(如果你的print不是函数那说明你的版本还停留在2.x系列,现在就赶紧安装3.0以上的版本!)。如果你足够细心的话可以发现,在我的IDE中,虽说print与retum它们都是蓝色,但实际是有区分的:一个是正常体,一个是斜体。return作为关键字在函数中起到了返回值的作用,而,print 顾名思义,只是在函数中展示给我们打印的结果是为人类设计的函数。因此上面的 95.0F实际上是调用函数后产生的数值,而下面的None正是此时变量C2F 中所被返回到的数值-什么都没有,就因为没有关键字retum 。这就好比你对着一个人喊了一声他的名字(call),他只是“哎”地回应你一声,这是因为你并没有告诉他该做什么(return)
       没有 return 也没关系,不代表没有用,在Python中return 是可选的(optional),这意味着你可以不用写return 也可以顺利地定义一个函数并使用,只不过返回值是’None罢了。在后面我们还能见到不同使用方式的函数,这里只需要记住函数的基本设定即可。
       在前面我们提到过,定义一个函数使用def(defne),同时我们还能在各种教材不同版本的翻译中看到声明(declare)这个词,我们不难推测,从表达的目的上来说他们是一样的,而对于有其他语言基础的人来说这两个词意味着两种不同的行为。其实没关系,在 Python 中 definition 和 declaration 是一体的,在这里说明仅仅是为了解答有此困惑的人,深究则无意。

四.传递参数与参数类型

      前面大刀阔斧地说了关于函数定义和使用,在这一节我们谈论一些细节但是重要的问题–参数。对于在一开始就设定了必要参数的函数来说,我们打出函数的名称并向括号中传递参数实现对函数的调用(call),只要把参数放进函数的括号中即可,就像是这样:

 

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

   位置参数    (positional argument)    

   关键词参数 (keyword argument)
     现在从似乎被我们遗忘的梯形的数学公式开始入手,首先还是创建函数。
     我们把函数的名称定为trapezoid_area,也就是梯形面积,设定参数为 base_up(上底),base_down(下底),height(高)每一个都用英文输入法的逗号隔开。梯形的面积需要知道这三个值才能求得,因此对于构造梯形面积函数来说,这三个参数缺一不可。

 

      接下来我们开始调用函数。

 

 不难看出,填入的参数1,2,3分别对应着参数base_up,base_down和height这种传入参数的方式被称作为位置参数。

接着是第二种传入方式
     

 

      更直观地,在调用函数的时候,我们将每个参数名称后面赋予一个我们想要传入的值。这种以名称作为一一对应的参数传入方式被称作是关键词参数。
      想一想去餐厅预约与就餐的流程,找到你预约的座位一般是用你留下的姓名,你就是一个参数,你会被按照姓名的方式传入你预定的座位,这个就是关键词参数传入;接下来是上菜,菜品按照你的座位号的方式来传入你的桌子,而这就相当于是位置传入参数。
      也许你现在想不太明白这种传入的方式有何作用,没有关系,在后面我们会和其他知识再一并进行讲解的,到那时你就会对参数的传入方式有更高层次的认识。
      避免混乱的最好方法就是先制造混乱,我们试着解决一个更复杂的问题,按照下面几种方式调用函数并打印结果 : 

 

  ??第一行的函数参数按照反序传入,因为是关键词参数,所以并不影响函数正常运作;
  ??第二行的函数参数反序传入,但是到了第三个却变成了位置参数,遗憾的是这种方式是错误的语法,因为如果按照位置来传入,最后一个应该是参数height的位置。但是前面height已经按照名称传入了值3,所以是冲突的。
  ??第三行的函数参数正序传入,前两个是以关键词的方式传入,最后一个以位置参数传入,这个函数是可以正常运行的;
  ??第四行的函数参数正序传入,前两个是以位置的方式传入,最后一个以关键词参数传入,这个函数是可以正常运行的。

注:正确运行的结果应该是4.5,也就是这个梯形的面积。

       我们现在给一组变量赋值

 

       然后再调用函数:   然而这次函数调用的结果应该是2.5,为什么?
       如果你有这样的困惑,说明你已经被参数的命名和变量的命名搞晕,我们来把这两者区分清晰。首先,我们在定义函数的时候会定义参数的名称,其主要作用就是方便我们在使用函数时指导我们将传入什么参数,它们从哪里来,是什么类型等,提供与使用函数使用相关的上下文。下面这段代码也许能够帮助你理解函数来自参数名称的困扰:

 

我们定义一个叫做手电筒(flashlight)的函数,它需要两个参数battery1 和 battery2 意为电池。这时候你去商店买电池,买回了两节600毫安时的南孚电池,于是:

 
 
 

       给一个参数设定默认值非常简单,我们只需要在定义参数的时候给参数赋值即可。这个也许跟传入参数的方式有点像,但是千万别记混了!这可是在定义的时候做。的事情!这样一来,我们只需要传入两个参数就可以正常进行了:
 

 

        你肯定会疑惑,如果设定默认值的话,那么所有梯形的高岂不是都固定成3了啊?然而并没有,默认值的理念就是让使用函数尽可能的简单、省力。正如同我们安装软件都会有默认目录,但是如果你又想安装在其他地方,你可以选择自定义修改。之前看到的print函数的小把戏也正是如此,print的可选参数sep(意为每个打印的结果以…分开)的默认值为’’空格,但是我们将其重新传入’n也就是换行的意思,一句话说,也就是将每个打印的数以换行符号进行分割。下面我们来调用自己的参数:

 

 
       只需要传入我们想要的值就可以了,就是这么简单。
       默认值并非是你掌握参数使用的必要知识,却是能帮助我们节省时间的小技巧。在实际项目中也经常会看见这样:

 

注:这个是在请求网站时header,可填可不填

 

 注:这是在给图片加水印的时候默认的水印质量是100  设计自己的函数

五.设计自己的函数

       到了这里,我们应该可以十分有自信地设计一个符合自己项目需求的函数了,我们将上面各种所有知识进行整合,来设计一个简易的敏感词过滤器,不过在这之前先来认识一个新的函数–open。
       这个函数使用起来很简单,只需要传入两个参数就可以正常运转了:文件的完整路径和名称,打开的方式。
       先在桌面上创建一个名为texttxt的文件。WIndows用户在桌面点击右键唤出菜单创建即可,Mac 用户则打开 Pages 创建文件后点击导出格式选择 txt 格式即可。现在我们使用open函数打开它:

 

 如果是Windows 用户,应该像这样写你的路径:

 

       如果你照着代码敲入的话其实这时候文件应该已经是打开的了,但是,貌似我们看不出来,所以,我们再认识一个新的方法–write。在第一章我们已经提到过如何使用方法(如果你现在困惑函数和方法到底是什么关系的话,为了顺利地往后进行,我可以告诉你方法就是函数的一种,只不过在不同的位置而已,使用原理和函数非常相似),在这里我们就照抄第三章的 replace 用法来学着使用 write 方法:

 
 
 

    我们来逐行解释这段代码。
    第一行:定义函数的名称和参数;
    第二行:我们在最开始知道,open函数要打开一个完整的路径,所以首先是桌面路径;
    第三行:我们给文件起什么名字,就是要传入的参数加上桌面路径再加上后缀就是完整的文件路径了
    第四行:打开文件'w参数代表作为写入模式,意思是:如身没有就在该路径创建一个有该名称文本,有则追加覆盖文本内容;
    第五行:写入传入的参数 msg,即内容;

    第六行:关闭文本。
    这样一来敏感词过滤器的第一部分我们就完成了。顺带一提,这个函数就是我们在前面提及到的并不需要 return 也能发挥作用的函数,最后的print 仅仅是为了表明上面的所有语句均已执行,一个提示而已。接下来我们实现第二部分,敏感词过滤,需求是这样的:定义一个为函数text_filter的函数,传入参数 word,cencored_word和changed_word实现过滤,敏感词cencored_word默认为’lame’,替换词 changed_word默认为’Awesome’。现在继续:

 

       这个函数就简单的多了,第一行我们按照设定默认参数的万工米定义凼数
行直接返回使用replace处理后的结果。现在两个函数均已完成,本着低风险的原则,你可以尝试调用一下函数看看返回结果。

    以上就是本篇文章【Python笔记——python函数详解(超详细)_python函数大全及详解】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/news/12959.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 https://sicmodule.kub2b.com/mobile/ , 查看更多   
最新文章
发改委:推进户用光伏发展,助力农民拓宽增收新路径
中国产品流通经纪人协会供销合作行业标准《农产品食品供应商信用评价规范》参编单位征集函中国农产品流通经纪人协会供销合作行业
泉州百度爱采购运营介绍
百度爱采购入驻条件有哪些:商家需持有工商行政管理局颁发的营业执照,并且执照在6个月有效期内;厂家商品真实在营且符合国家相
抖音feed是什么 feed广告投放流程
feed是什么?feed流(又称信息流)它是穿插在App内容中的广告,具有原生沉浸式体验,支持多种展现形式。feed可以进行线索收集,
抖音投流怎么投?找到最合适的优化路线,实现精准引流与高效转化!
在如今竞争激烈的市场中,抖音广告已经成为商家吸引流量、增加曝光和转化的重要工具。很多企业都在问:“抖音投流怎么投,才能真
提升脸书播放/浏览量:Facebook Workplace的策略
以下介绍:提升脸书播放/浏览量:Facebook Workplace的策略关于提升脸书播放/浏览量:Facebook Workplace的策略所提到的问题请大
想换07年左右的老车,值得吗?
百车全说别人研究车,而我研究你!问:想买一辆2007年左右,绿色(丨), 3.0。主要是喜欢这种雪茄车身,想留着自己偶尔开一下,家
年度盘点丨西安:2024年度十大交通精细化治理案例
​​2024年,西安公安交警深入践行以人民为中心的发展思想,聚焦群众反映强烈的交通问题,坚持缓堵保畅、全域治理,坚持小切口入
怎样才能很好的提高百度SEO的排名呢
怎样使自己的网站在百度等搜索引擎排名靠前  提高用户体验确保网站加载速度快,移动设备友好,并提供良好的用户互动体验。利用
《人工智能:未来世界的“智慧引擎”》
在当今这个科技飞速发展的时代,人工智能(Artificial Intelligence,简称AI)正以前所未有的速度重塑
未来直播技术的创新与发展方向
随着信息技术的快速发展和移动互联网的广泛普及,直播已经成为当今互联网领域的重要应用之一。从最初的娱乐直播到现在的教育直播