>>defstudent_grade(name,grade,has_bonus): ifhas_b "> 永昌线路检测,新锦江娱乐开户,博彩导航游戏
400-650-7353

精品课程

您所在的位置:首页 > IT干货资料 > python > 【Python基础知识】Python函数的关键字参数和参数的默认值

【Python基础知识】Python函数的关键字参数和参数的默认值

1、关键字参数

关键字参数是按照名称传递参数的,而与参数的位置无关,它使用类似给变量赋值的方式调用。以student_grade()函数为例,使用关键字参数调用:

  1. >>> def student_grade(name, grade, has_bonus): 
  2. ...     if has_bonus: 
  3. ...         grade += 10 
  4. ...     if grade > 100
  5. ...         grade = 100 
  6. ...     print('{name}的成绩为{grade}'.format(name=name, grade=grade)) 
  7. ...  
  8. >>> student_grade(name='Ming', grade=79, has_bonus=False
  9. Ming的成绩为79 

使用关键字参数调用函数时,参数的位置变得无关紧要,只要参数的名字是正确的,函数就能够正常调用:

  1. >>> student_grade(grade=80, has_bonus=True, name='Ming'
  2. Ming的成绩为90 
  3. >>> student_grade(has_bonus=True, name='Ming', grade=99
  4. Ming的成绩为100 

关键字参数和位置参数还可以混用,下面都是合法的调用方式:

  1. >>> student_grade('Ming', grade=79, has_bonus=False
  2. Ming的成绩为79 
  3. >>> student_grade('Ming'79, has_bonus=False
  4. Ming的成绩为79 

混用关键字参数和位置参数使得调用函数变得更加灵活,但是有一种情况是不合法的,即关键字参数出现在位置参数的前面:

  1. >>> student_grade(name='Ming', bonus=False59
  2.   File "", line 1 
  3. SyntaxError: positional argument follows keyword argument 

Python解释器提示出错了,因为位置参数跟在了关键字参数后面。

说明

无论是位置参数还是关键字参数,都是函数在调用时使用的说法,也就是实参,称它们为位置实参和关键字参数更准确。

2、参数的默认值

在创建自定义函数时,可以给参数提供默认值。如果在调用函数时指定了参数的值,那么使用该值,否则使用默认值。在之前的student_grade()基础上稍作修改,给has_bonus参数提供一个默认值:False,即默认没有10分的奖励分:

  1. >>> def student_grade_v1(name, grade, has_bonus=False): 
  2. ...     if has_bonus: 
  3. ...         grade += 10 
  4. ...     if grade > 100
  5. ...         grade = 100 
  6. ...     print('{name}的成绩为{grade}'.format(name=name, grade=grade)) 
  7. ...  

在调用函数时,可以不指定has_bonus参数的值:

  1. >>> student_grade_v1('Ming'59
  2. Ming的成绩为59 

当然也可以指定has_bonus参数的值,此时has_bonus的值为指定的值,可以使用关键字参数或者位置参数:

  1. >>> student_grade_v1('Ming'59True
  2. Ming的成绩为69 
  3. >>> student_grade_v1('Ming'59, bonus=True
  4. Ming的成绩为69 

下面是一个有更多参数默认值的示例:

  1. >>> def personal_info(name, gender='女', pet='狗', has_glasses=False): 
  2. ...     tag = '他' if gender == '男' else '她'   # 用三目运算符确定性别称呼 
  3. ...     print('{0}是个{1}孩。'.format(name, gender)) 
  4. ...     print('{}最喜欢的宠物是{}。'.format(tag, pet)) 
  5. ...     if has_glasses: 
  6. ...         print('{0}戴眼镜。'.format(tag)) 
  7. ...     else
  8. ...         print('{0}不戴眼镜。'.format(tag)) 
  9. ...  

这个函数比之前的要复杂一些,它会根据用户提供的信息,打印一些个性化的句子。因为此函数有很多参数,所以合法的调用方式有很多,以下是其中的一些:

  1. >>> personal_info('梅梅')   # 一个位置参数,即名字,其他参数使用默认值 
  2. 梅梅是个女孩。 
  3. 她最喜欢的宠物是狗。 
  4. 她不戴眼镜。 
  5. >>> personal_info(name='梅梅')   # 一个关键字参数 
  6. 梅梅是个女孩。 
  7. 她最喜欢的宠物是狗。 
  8. 她不戴眼镜。 
  9. >>> personal_info('梅梅', has_glasses=True)  # 一个关键字参数和一个位置参数 
  10. 梅梅是个女孩。 
  11. 她最喜欢的宠物是狗。 
  12. 她戴眼镜。 
  13. >>> personal_info(name='小明', gender='男')   # 两个关键字参数 
  14. 小明是个男孩。 
  15. 他最喜欢的宠物是狗。 
  16. 他不戴眼镜。 
  17. >>> personal_info(pet='猫', name='梅梅')   # 两个关键字参数 
  18. 梅梅是个女孩。 
  19. 她最喜欢的宠物是猫。 
  20. 她不戴眼镜。 
  21. >>> personal_info('小明''男''猫'True)  # 四个位置参数 
  22. 小明是个男孩。 
  23. 他最喜欢的宠物是猫。 
  24. 他戴眼镜。 

如果对Python开发感兴趣或者想要深入学习的现在可以免费领取学习大礼包哦(点击领取80G课程资料 备注:领资料)。

课程好礼申请领取
您的姓名
您的电话
意向课程
 

中公优就业

官方QQ

扫描上方二维码或点击一键加群,免费领取价值599元网课,加群暗号:599。 一键加群

>>本文地址:
注:本站稿件未经许可不得转载,转载请保留出处及源文件地址。

推荐阅读

优就业:ujiuye

关注中公优就业官方微信

  • 关注微信回复关键词“大礼包”,领80G学习资料
QQ交流群
领取免费网课
(加群备注“网站”)
IT培训交流群 加入群聊 +
软件测试 加入群聊 +
全链路UI/UE设计 加入群聊 +
Python+人工智能 加入群聊 +
互联网营销 加入群聊 +
Java开发 加入群聊 +
PHP开发 加入群聊 +
VR/AR游戏开发 加入群聊 +
大前端 加入群聊 +
大数据 加入群聊 +
Linux云计算 加入群聊 +
优就业官方微信
扫码回复关键词“大礼包”
领取80G学习资料

测一测
你适合学哪门IT技术?

1 您的年龄

2 您的学历

3 您更想做哪个方向的工作?

获取测试结果
 
课程资料、活动优惠 领取通道
 
 
网站地图 快乐彩票平台是否正规 500w彩票网客户端下载 五星彩票网游戏
申博太阳城直营网 澳门网上赌场网址登入 申博手机怎么下载 威尼斯人赌场登入
从彩广东11选5 2013年欧冠杯 同升娱乐网址登入 易博彩票电子
500w彩票网官网 彩29彩票网客户端下载 快乐彩票网游戏 五星彩票网平台登录
cc彩票注册 快乐彩票怎么登陆 快乐彩票平台是否正规 500w彩票网平台登录
844TGP.COM 9TGP.COM 314SUN.COM 4444ib.com S6181.COM
S618F.COM 581tt.com 797psb.com 98csb.com 197sunbet.com
11sbsun.com 8SJZS.COM 8TFS.COM 1112127.COM 286sunbet.com
8HFS.COM 761sj.com 3466111.COM 186ib.com 318XTD.COM