设为首页 收藏本站
查看: 996|回复: 0

[经验分享] Python_函数

[复制链接]

尚未签到

发表于 2018-8-4 07:03:55 | 显示全部楼层 |阅读模式
函数是带名字的代码块,可以完成指定的功能。如果需要在程序中重复多次执行某个任务,可以直接调用函数即可。这样就可以避免程序代码的冗余,减少代码量,方便维护。  

  一、  定义函数的格式:
  def    function_name(参数1,参数2,参数3......):
  代码块
  二、函数的形参和实参:函数定义时的参数为形参,在函数调用时赋予的参数为实参; 例如:
DSC0000.jpg

  三、函数传参讲解
  1.位置参数
  场景说明:当实参较少,函数在调用时易于知道函数中参数的位置及定义,可以使用该方式。一般用的较多。
  说明:位置参数就是函数调用时传入的实参要与函数定义时的形参位置(先后顺序)上一 一对应;例如上面的函数调用时,分别用下面两种方式来进行,1.def get_info(‘陈晨’,'湖北'),2.def get_info('湖北',‘陈晨’)。1表示陈晨来自湖北,2则表示湖北来自陈晨,完全不同,如下图所示:
DSC0001.jpg

  另外,该种方式除了要求形参和实参的位置(先后顺序)一 一对应外,还要求实参和形参的数量完全相同,否则将会报错;
  2.关键字参数
  场景说明:当函数中的参数较多,且在每次调用时,参数的顺序较多,不方便记忆,此时建议使用关键字参数的方式进行传参。
  说明:关键字参数是指在函数调用时使用键值对的方式来进行制定参数的值,例如:1.get_info(name='陈晨',address ='湖北'),2.get_info(address ='湖北',name='陈晨');两种方式结果完成相同。
DSC0002.jpg

  即:关键字参数是通过参数名来定义参数值的,与位置无关。
  3.默认参数
  场景说明:当函数在调用时,大多情况下,某些参数的值不变,此时为了方便,不用每次对这些值进行传值,可以默认为固定的值,有且当需要更改时才进行传值,这些固定的值即为默认参数。
  说明:默认参数是位置参数和关键字参数的结合形式,默认参数必须放在最后,其他参数按照位置参数的规则进行传参。现在对上面的例子进行改进(增加一个用户的年龄),如下图所示:
DSC0003.jpg

  如果在实际使用中发现,百分之七十以上的用户都来自湖北,此时就可以使用默认值,函数定义如下图所示:
DSC0004.jpg

  这样,以后在调用时,如果该用户是来自湖北,就可以对address不进行传参;如果该用户不是来自湖北,在进行传参,分别如下图所示:
DSC0005.jpg

DSC0006.jpg

  4.任意多参数
  场景说明:在某些复杂的项目中,某些函数的参数数量不能事先确定,此时就可以定义成任意多的参数形式,该种模式是参考了位置参数和关键字参数而进一步得到的。我们通过元组来存放事先未知的类似位置参数的参数,通过字典来存放事先未知的键值对(关键字参数),格式如下所示:
DSC0007.jpg

  注意:如果要让函数接受不同类型的参数,必须在函数中定义任意数量实参的形参放在最后。Python将会先匹配位置实参和关键字参数,再将余下的位置实参收集到元组中,将关键字参数收集到字典中。即:此时的参数顺序:位置参数,关键字参数,元组,键值对,其中某种类型的参数可以不存在(不存在就忽略),但整体的顺序不能变。
DSC0008.jpg

  四、函数返回值
  说明:函数在调用时,绝大数情况下需要得到某个结果返回给调用的对象,此时将需要使用函数返回值了,函数返回值需要使用return关键字。注意:一旦使用了return,函数后面的部分将不再执行;若在函数中没有使用return,返回的将是一个None对象。
  函数返回的值可以是任意形式的类型,包括:数字,字符串,列表、元组、字典等。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-546133-1-1.html 上篇帖子: python的装饰器decorator 下篇帖子: Python之sys模块小探
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表