「python」函数返回多个值、缺省参数、不定长参数、引用参数
来源:互联网 发布:第二磨牙长歪了 知乎 编辑:程序博客网 时间:2024/06/08 20:02
在python中我们可不可以返回多个值?
>>> def divid(a, b):... shang = a//b... yushu = a%b ... return shang, yushu...>>> sh, yu = divid(5, 2)>>> sh5>>> yu1
本质是利用了元组
缺省参数
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。下例会打印默认的age,如果age没有被传入:
def printinfo( name, age = 35 ): # 打印任何传入的字符串 print "Name: ", name print "Age ", age# 调用printinfo函数printinfo(name="miki" )printinfo( age=9,name="miki" )
以上实例输出结果:
Name: mikiAge 35Name: mikiAge 9
注意:带有默认值的参数一定要位于参数列表的最后面。
>>> def printinfo(name, age=35, sex):... print name... File "<stdin>", line 1SyntaxError: non-default argument follows default argument
不定长参数
有时可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,声明时不会命名。
基本语法如下:
def functionname([formal_args,] *args, **kwargs): "函数_文档字符串" function_suite return [expression]
加了星号(*)的变量args会存放所有未命名的变量参数,args为元组;而加**的变量kwargs会存放命名参数,即形如key=value的参数, kwargs为字典。
>>> def fun(a, b, *args, **kwargs):... """可变参数演示示例"""... print "a =", a... print "b =", b... print "args =", args... print "kwargs: "... for key, value in kwargs.items():... print key, "=", value...>>> fun(1, 2, 3, 4, 5, m=6, n=7, p=8) # 注意传递的参数对应a = 1b = 2args = (3, 4, 5)kwargs: p = 8m = 6n = 7>>>>>>>>>>>> c = (3, 4, 5)>>> d = {"m":6, "n":7, "p":8}>>> fun(1, 2, *c, **d) # 注意元组与字典的传参方式a = 1b = 2args = (3, 4, 5)kwargs: p = 8m = 6n = 7>>>>>>>>>>>> fun(1, 2, c, d) # 注意不加星号与上面的区别a = 1b = 2args = ((3, 4, 5), {'p': 8, 'm': 6, 'n': 7})kwargs:>>>>>>
3. 引用传参
- 可变类型与不可变类型的变量分别作为函数参数时,会有什么不同吗?
- Python有没有类似C语言中的指针传参呢?
>>> def selfAdd(a):... """自增"""... a += a...>>> a_int = 1>>> a_int1>>> selfAdd(a_int)>>> a_int1>>> a_list = [1, 2]>>> a_list[1, 2]>>> selfAdd(a_list)>>> a_list[1, 2, 1, 2]
Python中函数参数是引用传递(注意不是值传递)。对于不可变类型,因变量不能修改,所以运算不会影响到变量自身;而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量。
想一想为什么
>>> def selfAdd(a):... """自增"""... a = a + a # 我们更改了函数体的这句话...>>> a_int = 1>>> a_int1>>> selfAdd(a_int)>>> a_int1>>> a_list = [1, 2]>>> a_list[1, 2]>>> selfAdd(a_list)>>> a_list[1, 2] # 想一想为什么没有变呢?
阅读全文
0 0
- 「python」函数返回多个值、缺省参数、不定长参数、引用参数
- Python函数的不定长参数
- Python函数的不定长参数
- Python7--局部变量、全局变量、缺省参数、不定长参数、递归
- Python的不定长参数
- Python 不定长函数 (函数可变参数个数)
- python-地址值判断、可变不可变类型、+=含义、global使用、缺省、不定长参数
- python缺省参数与多个函数返回值
- 不定长参数测试
- 不定长参数
- java不定长参数
- Java不定长参数
- 不定长参数
- Java不定长参数
- Python不定参数自定义函数
- Python的不定长参数研究
- python学习记录---不定长参数
- 1.一个不定长参数函数
- 机器学习模型和算法学习随记
- POJ
- js经典小案例之倒计时
- 深海探险 51Nod
- 几种Boost算法的比较(Discrete AdaBoost, Real AdaBoost, LogitBoost, Gentle Adaboost)
- 「python」函数返回多个值、缺省参数、不定长参数、引用参数
- mybatis常用sql拼写
- 静态化Freemarker的标签
- Java NIO使用及原理分析 (四)
- 51nod 1287 加农炮
- 初学Unity3D Shader之Cube纹理坐标探索
- leetcode 643. Maximum Average Subarray I
- ECMAScript的一些学习网站
- Office2013出现”停止工作“问题的解决