python函数参数值_python 函数参数
# 函数的参数分为两种:
# 形参:在定义阶段括号内指定的参数,在定义阶段不暂用内存空间,相当于变量名
# 实参:在调用阶段括号内传入的值,相当于值
# 在调用阶段,实参的值会绑定给形参,在调用结束后解除绑定
def foo(x, y):
print(x, y)
foo(1, 2)
####################################################
# 在python中参数的分类:
# 1、位置参数:按照从左到右的顺序依次定义的参数
# 通常用于经常变化的参数
# 位置形参:定义完之后,必须被传值,多一个少一个都不行
# 位置实参:与形参一一对应传值
def foo1(x, y):
print(x, y)
foo1(1 ,2)
##############################################################################
# 关键字参数:在函数调用时,按照key=value的形式定义的实参
# 特点:指名道姓的给形参传值,不再依赖于位置
# 注意:关键字实参必须在位置实参的后面
# 不能为用一个参数赋值多次
def foo2(x, y):
print(x, y)
foo1(y=1 ,x=2)
############################################################################
# 3、默认参数:在函数定义阶段,就已经为形参赋值了
# 通常用于不变化的情况
# 默认参数必须放到位置形参后面
# 默认参数的值只在定义时被赋值一次,定义之后的修改都不会影响默认参数的值
# 默认参数的值通常应该是不可变类型
def foo3(x, y=1):
print(x,y)
foo3(1, 6) # 输出结果:1 6
foo3(5) # 输出结果:5 1
#############################################################
# 默认参数的值只在定义时被赋值一次,定义之后的修改都不会影响默认参数的值
res = 1
def foo5(x, y=res):
print(x, y)
res = 10
foo5('aaaaa') # 输出结果:aaaaa 1
###############################################################
4、可变长参数:在调用函数时,实参值的个数不固定
# 实参的形式:位置实参、关键字实参
对于实参个数不确定的情况,形参的解决方案:
1)、*(按照位置实参传值的情况)
输出结果中,*部分为元祖类型
def foo6(x, y, *z):
print(x, y, z)
foo6(1, 2, 3, 4, 5, 6)
输出结果:1 2 (3, 4, 5, 6)
def foo6(x, y, *z):
print(x, y, z)
foo6(1, 2, *[3, 4, 5, 6]) 等同于 foo6(1, 2, 3, 4, 5, 6)
输出结果:1 2 (3, 4, 5, 6)
def foo6(x, y, *z):
print(x, y, z)
foo6(*[1, 2, 3, 4, 5, 6]) 等同于 foo6(1, 2, 3, 4, 5, 6)
输出结果:1 2 (3, 4, 5, 6)
def foo6(x, y, *z):
print(x, y, z)
foo6(*{'a':5, 'b':7, 'c':8, 'd':0})
输出结果:a b ('c', 'd')
def foo6(x, y, *z):
print(x, y, z)
foo6(*(1, 2, 3, 4, 5))
输出结果:1 2 (3, 4, 5)
def foo6(name, age):
print(name, age)
foo6(*{'name':'keke', 'age':7})
输出结果:name age
2)、 **(按照关键字实参传值的情况)
**部分,实参类型为字典类型
输出结果中,**部分为字典类型
def foo6(x, y, **z):
print(x, y, z)
foo6(y=1, x=2, a=3, b=4, c=5)
输出结果:2 1 {'a': 3, 'b': 4, 'c': 5}
def foo6(x, y, **z):
print(x, y, z)
foo6(y=1, x=2, **{'a':5, 'b':7, 'c':8})
输出结果:2 1 {'a': 3, 'b': 4, 'c': 5}
def foo6(x, y, **z):
print(x, y, z)
foo6(y=1, **{'a':5, 'b':7, 'c':8})
输出结果:TypeError: foo6() missing 1 required positional argument: 'x'
def foo6(name, age):
print(name, age)
foo6(**{'name':'keke', 'age':7})
输出结果:keke 7
def bar(x, y, z):
print(x, y, z)
def foo6(*args, **kwargs):
bar(*args, **kwargs)
foo6(1, y=2, z=3)
输出结果:1 2 3
############################################################################
命名关键字参数:指的是定义在*后的参数,该参数必须被传值(除非它有默认值),
而且必须按照key=value的形式传值
def bar(x, y, *, m, n):
print(x, y, m, n)
bar(1, 2, m=3, n=5)
输出结果:1 2 3 5
python函数参数值_python 函数参数相关推荐
- python函数调用位置_python函数定义,调用,传参,位置参数及关键字参数,返回值
使用函数是真正开始编程的第一步,函数y=f(x)我们并不陌生,对x进行一顿操作得到一个值y.给不同的x,进行相同的操作,得到相应的y值. 程序层面函数是执行特定任务的一段代码,将一段代码定义成函数并为 ...
- python怎么画参数函数图像_python函数 图
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 例如:myfunc(1,2,3)myfunc(abc,2,def)myfunc( ...
- 用python画竹子_python函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这 ...
- python采用函数式_python -- 函数以及函数式编程
函数以及函数式编程 到目前为止,我们的Python 代码已经实现了小的分块.它们都适合处理微小任务, 但是我们想复用这些代码,所以需要把大型代码织成可管理的代码段.代码复用的第一步是 使用函数,它是命 ...
- python中mod函数用法_Python 函数的介绍和用法
最近要回学校开始做毕设了,准备做个有关算法的,听说python运算好一些,特地来学一学. 先从基础开始啊---------- 函数 可以直接从Python的官方网站查看文档: http://docs. ...
- python中def fun 定义函数列表_python函数
# -*- coding:utf-8 -*- #yys #python 3.7.2 # 1.定义函数.调用函数 # 函数:组织好的.可重复使用的.用户实现单一或者关联功能的代码段. # 函数能够提高应 ...
- python函数结构_Python函数基础
Python中使用def关键字来声明函数,声明函数的格式为: 有3个需要注意的地方:函数名后面必须加冒号 如果函数体和def不在同一行,则必须缩进 return指定函数返回值,用来结束函数但retur ...
- python所有函数用法_python函数用法总结
空函数 如果想定义一个什么事也不做的空函数,可以用pass语句: def nop(): pass pass语句什么都不做,那有什么用?实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码 ...
- python所有函数用法_Python函数使用方法(高级用法)
前面章节,已经介绍了 Python 函数的所有基本用法和使用注意事项.但是,Python 函数的用法还远不止此,Python 函数还支持赋值.作为其他函数的参数以及作为其他函数的返回值. 首先,Pyt ...
最新文章
- 计蒜客 三值排序 (模拟)
- 阅读架构漫谈(三)笔记
- java basic认证_Basic认证
- Markdown中数学公式整理
- ubuntu和linux服务器,Linux服务器系统CentOS和Ubuntu Server如何选择? | 偶乃秋辰
- 【完整版-斯坦福-密码学】全13讲(绪论)【笔记】
- (12)Node.js核心模块fs—实现文件复制和压缩
- 面向对象的设计原则-类设计原则
- 双目标定,匹配的笔记
- 国内的优秀HTML5前端开发框架
- 【Q】CentOS-部署后,只有本机可以访问的问题
- dell服务器分区表修复,完美恢复原产Dell Recovery软件、修复环境(添加教程)
- Boost电路硬件设计实例
- imx6 Android gpu 内存,Use vivante GPU on IMX6 with 4.14 kernel
- [html5游戏开发]数独游戏-完整算法-开源讲座
- ajax跨域数据不完整,Ajax交互,浏览器接收不到服务器的Json数据(跨域问题)
- 在CAD里怎么测量面积?
- 对random.seed()的理解
- 由酷6员工猝死想到的:IT民工 我该拿什么拯救你
- python中如何创建一个txt文件