默认参数


对于参数有时候我们希望他是可选的,前面介绍了函数柯里化,当然还有其他的解决方案。如果不想给某些参数提供值的话,就让这写参数使用默认值。在函数定义的时候给参数赋值使用(参数,参数=值......),从而给形参指定默认值。

注意默认参数的值是一个不可变的参数(也就是说默认参数是一个确定的值)。

#默认参数值
#对于参数 我们希望参数值是可选的智能的,如果使用者没有提供参数值的时候,程序会使用默认的参数。使用的方法就是在函数定义形参的时候写上(形参=默认值)即可
#注意默认值的参数不可变
def say(message,times = 1):print(message*times)say('Hello')
say('World',5)
#注意默认值参数只能是末尾的形参

运行结果

重要
只有在形参表末尾的那些参数可以有默认参数值,即你不能在声明函数形参的时候,先声明有默认值的形参而后声明没有默认值的形参。
这是因为赋给形参的值是根据位置而赋值的。例如,def func(a, b=5)是有效的,但是def func(a=5, b)是 无效 的

关键参数


对于多参数的函数,我只想指定某个或某几个参数的值,这时就可以使用命名给参数赋值,这样被复制的参数时关键参数。我们是使用关键字(参数名)而不是参数的位置来给函数指定实参。

优势

1.不用担心参数的顺序,使使用函数变得简单。

2.假设其他的参数都有默认值,我们可以只给我们想要的参数赋值。

print('========关键参数=========')
#如果你的某个函数有许多参数,而你只想指定其中的一部分,那么你可以通过命名来为这些参数赋值——这被称作 关键参数 ——我们使用名字(关键字)而不是位置(我们前面所一直使用的方法)来给函数指定实参。
def func(a,b = 5,c = 10):print('a is',a,'and b is',b,'and c is',c)func(3,7)
func(25,c = 24)
func(c = 50,a = 100)

运行结果

转载于:https://www.cnblogs.com/liuhappy/p/10612691.html

从0开始的Python学习009参数相关推荐

  1. 参数匹配模型——Python学习之参数(二)

    参数匹配模型--Python学习之参数(二) 文章目录 参数匹配模型--Python学习之参数(二) 位置参数:从左至右进行匹配 关键字参数:通过参数名进行匹配 默认参数:为没有传入值的参数定义参数值 ...

  2. Python学习之参数(一)

    Python学习之参数(一) 文章目录 Python学习之参数(一) 参数的传递 避免可变参数的修改 参考资料 参数的传递 所有的参数实际上都是通过指针进行传递的.作为参数被传递的对象从来不自动拷贝. ...

  3. 参数匹配顺序——Python学习之参数(三)

    参数匹配顺序--Python学习之参数(三) 文章目录 参数匹配顺序--Python学习之参数(三) 函数参数匹配表 参数匹配顺序 keyword-only 参数的位置 参考资料 这篇博文是对上一篇博 ...

  4. 从0开始的python学习:编译原理实验4:语法分析器1--预测分析器构造

    这里刚开始试用python的函数功能,可能把局部变量和全局变量给写乱了,后期交之前还想再优化的时候发现越改越乱,太真实的hhh 实验四:语法分析器1–预测分析器构造 实验目的: 通过编写一个预测分析器 ...

  5. 从零开始学习python编程-从0开始的Python学习014面向对象编程(推荐)

    简介 到目前为止,我们的编程都是根据数据的函数和语句块来设计的,面向过程的编程.还有一种我们将数据和功能结合起来使用对象的形式,使用它里面的数据和方法这种方法叫做面向对象的编程. 类和对象是面向对象编 ...

  6. 从0开始的Python学习001快速上手手册

    假设大家已经安装好python的环境了. Windows检查是否可以运行python脚本 Ctrl+R 输入 cmd 在命令行中输入python 如果出现下面结果,我们就可以开始python的学习了. ...

  7. 从0开始的Python学习006流程控制

    流程控制语句 Python中有三种控制流程语句: if.for.和while. if语句 使用if语句来校验一个条件,如果条件为真(True),运行if-块,如果为假(False),运行else-块. ...

  8. python学习——非参数密度估计

    代码:非参数密度估计的三种python实现 (直方图,核密度估计,K近邻) https://blog.csdn.net/weixin_42388833/article/details/11763228 ...

  9. Re:从0开始的Python学习生活(Ⅱ)——string相关

    Python的string还是比较友善的. # some python's function of srting# + and * # what's more, we can find that bo ...

最新文章

  1. 2022-2028年中国丁基橡胶行业市场深度分析及投资前景展望报告
  2. 【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 线性规划求解示例 )
  3. 说实话,这个发布会绝了!
  4. 解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)错误
  5. gulp.js 自动化构建工具学习入门
  6. Android开发学习总结(三)——appcompat_v7项目说明
  7. Spring包的依赖关系以及提供下载
  8. 学习小感之浅谈学习兴趣之路
  9. ORACLE中Like与Instr模糊查询性能大比拼
  10. android 文件mimetype_android文件关联之mime type
  11. c语言指数怎么表示_Assembly 浮点表示法
  12. 使用软件测试路由器性能报告,路由器软件测试报告
  13. 车辆有效信息的识别 车牌车型车颜色 车标识别,基于mallab算法
  14. unity3d UI粒子特效裁剪
  15. java opencv 纠偏_一种基于OpenCV的高拍仪拍摄文档物体纠偏方法与流程
  16. 全面解析Kmeans聚类算法(Python)
  17. Flutter Text控件在不同手机上不居中的问题
  18. python 视频清晰度_python识别视频黑屏或者低清晰度
  19. 微软账户登录 win10 共享
  20. 百万亚瑟王无法连接服务器请在信号良好的地方重试,叛逆性百万亚瑟王

热门文章

  1. 搞怪的html代码,这个恶搞网页代码是肿么写出来的?
  2. vscode怎么引用css_今天来安装一个骚气的 VS Code 主题
  3. python如何读取数据保存为新格式_Python Numpy中数据的常用保存与读取方法
  4. java char指针数组_sizeof与strlen使用,字符串指针数组
  5. vuetify electron (开发环境及打包)
  6. linux 安装 Django14
  7. RISC-V评估系列
  8. SAP HANA企业级培训系列课程第一部分
  9. 【转】用户十秒离开你网站的25个原因
  10. Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明