Python学习之函数参数
上一节,我们学习了Python中是如何定义和调用函数且如何得到返回值的。在调用函数时,有的函数需要参数来启动函数,有的则无需参数。这一节我们来介绍Python中有哪些参数类型。
| 位置参数 | 在调用函数时,必须按照参数定义的顺序依次赋给参数 |
| 默认参数 | 只需赋给常变参数,不常变参数将作为默认值传递给函数。如果需要替换不常变参数的默认值,只需在调用函数时向该参数传入想要的值即可。定义默认值参数时,要将常变参数定义在前,默认值参数定义在后。 |
| 可变参数 | 由于有些函数的参数个数是不确定的,Python提供可变参数*args,将args作为一个元祖传递0个或者多个参数给函数 |
| 关键字参数 | 可变参数在调用时将自动组装成一个元祖,而关键字参数允许传入0个或者多个含有参数名的参数,这些关键字参数在函数调用时会自动封装成一个字典 |
| 命名关键字参数 | 关键字参数可以接受0个或者多个任意不受限制的关键字参数,而命名关键字参数通过*,kw1,kw2 规定只允许接受哪些关键字参数 |
| 组合参数 | python中定义函数时,可以使用必选参数、默认参数、可变参数、关键字参数、命名关键字参数五种参数规则的组合一起使用。顺序是 必选参数>默认参数>可变参数>命名关键字参数>关键字参数 |
位置参数:
def my_def(name,age):
print( name,age)
a=my_def('zhangsan',18)
执行结果:
zhangsan 18
若调用参数位置
def my_def(name,age):
print( name,age)
a=my_def(18,'zhangsan')
执行结果
18 zhangsan
默认值参数
def my_def(name,age,city='beijing',job='python'):
print( name,age,city,job)
a=my_def('zhangsan',18)
执行结果:
zhangsan 18 beijing python
若参数的默认值与实际的不符,在调用函数时,将对应的参数传入新值即可:
def my_def(name,age,city='beijing',job='python'):
print( name,age,city,job)
a=my_def('zhangsan',18,city='henan')
执行结果:
zhangsan 18 henan python
可变参数:
def my_def(*args):
sums=0
for n in args:
sums+=n*n
print(sums)
a=my_def(1,2,3)
执行结果:
14
关键字参数:
def my_def(name,age,**kwargs):
print(name,age,kwargs['city'],kwargs['job'])
a=my_def('zhangsan',18,city='beijing',job='python')
执行结果:
zhangsan 18 beijing python
命名关键字参数:
def my_def(name,age,*,city,job):
print( name,age,city,job)
a=my_def('zhangsan',18,city= 'beijing',job='python')
执行结果
zhangsan 18 beijing python
组合参数:
def my_def(shool,classes,*args,**kwargs):
print(shool,classes,args,kwargs)
a=my_def('old boy',23,'zhangsan',18,city='beijing',job='python')
执行结果:
old boy 23 ('zhangsan', 18) {'city': 'beijing', 'job': 'python'}
Python学习之函数参数的更多相关文章
- Python学习笔记 - 函数参数
>>> def power(x): ... return x * x ... >>> power(5) 25 >>> def power(x, n ...
- python学习day10 函数Ⅱ(参数&作用域)
函数Ⅱ(参数&作用域) 知识小结: py2与py3的区别 逻辑运算()>not>and>or 字符串翻转切片翻转 is与==区别 git相关 数据类型判断 操作系统:cent ...
- python学习 04 函数参数
1.参数可以传递元组,但是要加* 2.参数可以传递字典,但是要加**
- python学习7—函数定义、参数、递归、作用域、匿名函数以及函数式编程
python学习7—函数定义.参数.递归.作用域.匿名函数以及函数式编程 1. 函数定义 def test(x) # discription y = 2 * x return y 返回一个值,则返回原 ...
- python学习8—函数之高阶函数与内置函数
python学习8—函数之高阶函数与内置函数 1. 高阶函数 a. map()函数 对第二个输入的参数进行第一个输入的参数指定的操作.map()函数的返回值是一个迭代器,只可以迭代一次,迭代过后会被释 ...
- Python进阶(二)----函数参数,作用域
Python进阶(二)----函数参数,作用域 一丶形参角度:*args,动态位置传参,**kwargs,动态关键字传参 *args: 动态位置参数. 在函数定义时, * 将实参角度的位置参数聚合 ...
- 04 python学习笔记-函数、函数参数和返回值(四)
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print(),我们也可以自己创建函数,这叫做用户自定 ...
- python学习Day11 函数的参数列表
复习 什么是函数? 具体特定功能的代码块 - 特定功能代码作为一个整体,并给该整体命名,就是函数 函数的优点 : 1.减少代码的冗余,2.结构清晰,可读性强 3.具有复用性,开发效率高,维护成本高 如 ...
- 从0开始的Python学习007函数&函数柯里化
简介 函数是可以重用的程序段.首先这段代码有一个名字,然后你可以在你的程序的任何地方使用这个名称来调用这个程序段.这个就是函数调用,在之前的学习中我们已经使用了很多的内置函数像type().range ...
随机推荐
- struts2分页实现
1.定义一个page类,里面包括每一个的数量,当前页码,总记录数,等 2.将page对象传入dao中,dao输出分页查询好的数据.返回到action中,action放到request中,jsp从req ...
- yield关键字的使用
yield的中文是什么意思呢? 在金山词霸上面的翻译是: vt.屈服,投降: 生产: 获利: 不再反对 vi.放弃,屈服: 生利: 退让,退位 n.产量,产额: 投资的收益: 屈服,击穿: 产品 个人 ...
- pure-ftp 修改用户信息
1.修改用户test的密码 [root@localhost bin]# ./pure-pw passwd test #修改密码 Password: Enter it again: [root@loca ...
- 如何让.NET Core应用的配置与源文件保持同步?
配置的同步涉及到两个方面:第一,对原始的配置文件实施监控并在其发生变化之后从新加载配置;第二,配置重新加载之后及时通知应用程序进而使后者能够使用最新的配置.接下来我们利用一个简单的.NET Core控 ...
- May 04th 2017 Week 18th Thursday
No matter how far you may fly, never forget where you come from. 无论你能飞多远,都别忘了你来自何方. I never forget w ...
- 【js基础修炼之路】- 手把手教你实现bind
手写bind前我们先回顾一下bind有哪些特性,以便更好的理解bind和实现bind. bind的特性 var obj = { a: 100, say(one, two) { console.log( ...
- Android(java)学习笔记67:Android Studio新建工程中的build.gradle、settings.gradle
随着信息化的快速发展,IT项目变得越来越复杂,通常都是由多个子系统共同协作完成.对于这种多系统.多项目的情况,很多构建工具都已经提供了不错的支持,像maven.ant.Gradle除了借鉴了ant或者 ...
- 空间最短路径,BFS(POJ3278)
题目链接:http://poj.org/problem?id=3278 #include <cstdio> #include <queue> #include <stri ...
- BZOJ 2824: [AHOI2012]铁盘整理
BZOJ 2824: [AHOI2012]铁盘整理 标签(空格分隔): OI-BZOJ OI-搜索 Time Limit: 10 Sec Memory Limit: 128 MB Descriptio ...
- 设有三个进程A、B、C,其中A与B构成一对生产者与消费者(A为生产者,B为消费者),共享一个由n个缓冲块组成的缓冲池;B与C也构成一对生产者与消费者(此时B为生产者,C为消费者)共享另一个由m个缓冲块组成的缓冲池。用P、V操作描述它们之间的同步关系。
生产者消费者问题 设信号量mutex1, mutex2, full1, full2, empty1, empty2分别表示1和2号缓冲区的访问互斥, 是否满, 是否空 semaphore mutex1 ...