Python编程思想(18):哇!原来Python参数还可以这样用
李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入 160442 开始学习。
《Python编程思想》总目录
在定义 Python函数时可指定形参,为函数指定的参数称为形参,这些形参的值要等到调用时才能确定下来,由函数的调用者负责向形参传入参数值。简单来说,就是谁调用函数,谁负责传入参数值。
1. 关键字( keyword)参数
Python函数的参数名不是无意义的, Python允许在调用函数时通过名字来传入参数值。因此,应该为Python函数的参数名起更有意义的名字。
# 定义一个用于计算矩形面积的函数
def rectangle_area(width,height):print("width: ", width)print("height: ", height)return width * height
# 传统调用函数的方式,根据位置传入参数
print(rectangle_area(3.5, 4.1))
# 根据关键字参数来传入参数
print(rectangle_area(width = 3.3, height = 8.5))
# 使用关键字参数时可交换位置
print(rectangle_area(height = 8.5, width = 3.3))
# 部分使用关键字参数,部分使用位置参数
print(rectangle_area(3.7, height = 4.1))# 位置参数必须放在关键字参数之前,下面代码会出错
#print(rectangle_area(width = 2.5, 4.6))
width: 3.5
height: 4.1
14.349999999999998
width: 3.3
height: 8.5
28.049999999999997
width: 3.3
height: 8.5
28.049999999999997
width: 3.7
height: 4.1
15.17
print(rectangle_area(width = 2.5, 4.6))
SyntaxError: positional argument follows keyword argument
2. 参数默认值
在某些情况下,程序需要在定义函数时为一个或多个形参指定默认值,这样在调用函数时就可以省略为该形参传入参数值,而是直接使用该形参的默认值。
形参名=默认值
从上面的语法格式可以看出,形参的默认值紧跟在形参之后,中间以英文“=”隔开。
例如,如下程序为name、 message形参指定了默认值。
# 为两个参数指定默认值
def print_info(name = "李宁", message = "欢迎来到未来"):print(f"hello {name}")print(f"message:{message}")
# 全部使用默认参数
print_info()
# 只有message参数使用默认值
print_info("超人")
# 两个参数都不使用默认值
print_info("超人", "欢迎来到赛博坦")
# 只有name参数使用默认值
print_info(message = "欢迎来到冰雪世界")
# 如果不指定关键字参数,那么就会按形参顺序指定参数值,所以这里name的值是"欢迎学习Python"
print_info("欢迎来到火星")# print_info(name="神秘博士", "欢迎来到太阳系") # 出错# print_info("欢迎来到地球" , name="神奇女侠") # 为name传递参数值参数歧义(这两个值都被认为是name参数值)print_info("钢铁侠", message="我在哪里?")
print_info(name="绿巨人", message="这是阿斯加德吗?")
hello 李宁
message:欢迎来到未来
hello 超人
message:欢迎来到未来
hello 超人
message:欢迎来到赛博坦
hello 李宁
message:欢迎来到冰雪世界
hello 欢迎来到火星
message:欢迎来到未来
hello 钢铁侠
message:我在哪里?
hello 绿巨人
message:这是阿斯加德吗?
从这段程序可以看出,如果只传入一个位置参数,由于该参数位于第1位,系统会将该参数值传给name参数。因此,我们不能按如下方式调用 print_info函数。
print_info("欢迎来到火星")
上面调用时传入的“欢迎来到火星”字符串将传给name参数,而不是 message参数。
print_info(name="钢铁侠","我在哪里?")
因为 Python规定,关键字参数必须位于位置参数的后面。因此提示错误:positional argument follows keyword argument
print_info("欢迎来到地球", name="雷神")
print_info("雷神", message="欢迎来到地球")
print_info(name="绿巨人", message="我在哪里?")
上面第一行代码先使用位置参数为name参数传入参数值,再使用关键字参数为 message参数。
Python编程思想(18):哇!原来Python参数还可以这样用相关推荐
- Python编程思想(24):类的实例方法
李宁老师已经在「极客起源」 微信公众号推出<Python编程思想>电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法.读者可以在「极客起源」 公众号中输入 160 ...
- Python编程思想【系列文章】
<Python编程思想>专栏 本系列文章持续更新中....... 李宁老师已经在「极客起源」 微信公众号推出<Python编程思想>电子书,囊括了Python的核心技术,以及P ...
- Python编程思想(26):成员变量
李宁老师已经在「极客起源」 微信公众号推出<Python编程思想>电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法.读者可以在「极客起源」 公众号中输入 160 ...
- Python编程思想(8):使用字典
<Python编程思想>总目录 目录 1. 创建字典 2. 字典的基本用法 3. 与字典相关的方法 字典是Python提供的一种常用的数据结构,可以用于保存具有映射关系的数据.比如有成绩单 ...
- Python编程思想(16):压缩与排序列表
李宁老师已经在「极客起源」 微信公众号推出<Python编程思想>电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法.读者可以在「极客起源」 公众号中输入 160 ...
- Python编程思想(4):字符串类型
<Python编程思想>总目录 目录 1. 字符串和转义符 2. 字符串内建函数 3. 字符串高级操作 4. 保持字符串的原汁原味 5. 长字符串 字符串的意思就是"一串字符&q ...
- Python编程思想(9):条件语句(if)
<Python编程思想>总目录 上一篇:Python编程思想(8):使用字典 目录 1. if语句基础 2. 由于缩进错误引发的血案 3. if条件的类型 4. pass语句 if语句用于 ...
- python进阶练习题:馏分类【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
python进阶练习题:馏分类[难度:2级]: 为您提供了类"分数",这两个参数(分子,分母)的骨架. 例: fraction1 =分数(4,5) 分数fraction1 =新分数 ...
- python编程培训多少钱-python编程培训多少钱?[python培训]
python编程培训多少钱?2018年Python的发展可谓是大红大紫,2019年python的热度依然不减.各大公司对python开发工程师的需求都有所增加,因此参加python培训学习python ...
最新文章
- Oracle Exadata 一体机关机过程(虚拟机环境)
- MVDR波束形成MATLAB实现
- java基础----Java中枚举的使用(一)
- restify mysql_[菜鸟试水]关于Nodejs搭建后台API服务(Mysql-Restify)[下]
- C语言 gcc 静态库
- 计算机网络原理第七章,北大计算机网络原理第七章.pdf
- 83.均衡策略:round-robin
- TC SRM 665 DIV2 B LuckyCycle 暴力
- tomcat 开启 https 使用apr
- Opencv+C++之人脸识别
- 达梦8用户和角色管理
- 解决svmtrain已被删除问题
- ARM汇编之kile环境
- Ubuntu安装Node.js(亲测,最新,详细)
- Couldn’t load custom C++ ops.
- 详述如何退出 Vim 编辑器
- QDateTime相关格式
- 【洛咕P3400】仓鼠窝【单调栈】
- 安装skimage报错解决方案
- VCM绕线机的功能参数
热门文章
- java计算机毕业设计广东省梅州市宇恒节能科技有限公司(附源码、数据库)
- 记一次机器内存过高引起的线上故障
- ios 按钮文字下划线_iOS 文字下划线
- excel单元格内容拆分_自学EXCEL小技巧003→单元格内容拆分
- windows执行cygwin慢问题
- 【ADS学习笔记(一)——ADS介绍】
- 2022年下半年软考考科目有这些,快看
- iOS内购(IAP,In App Purchases-在APP内部支付),设置及使用
- Azkaban环境配置-尚硅谷大数据培训
- 解读蔚来Q3财报:亏损额度收窄 蔚来汽车幸运的软着陆?