python 可变参数
在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。
我们以数学题为例子,给定一组数字a,b,c……,请计算a2+b2+c2+……。
1defcalc(*numbers):
2sum=0
3forninnumbers:
4sum=sum+n*n
5returnsum
6
7#测试
8#调用该函数时,可以传入任意个参数,包括0个参数
9>>>calc(1,2)
105
11>>>calc()
120
13
14#Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去;*nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见
15>>>nums=[1,2,3]
16>>>calc(*nums)
1714
成员运算符:notin、in(判断某个单词里是不是有某个字母)
成员运算符用来判断一个元素是否是另一个元素的成员。比如说我们可以判断“hello”中是否有“h”,得到的结果也是True或者False。
1>>>"h"in"hello"#这里的意思是“h”在“Hello”中,判断后结果为True
2True
3>>>"h"notin"hello"#这里的意思是“h”不在“Hello”中,判断后结果为False
4False
身份运算符:is、isnot(讲数据类型时讲解,一般用来判断变量的数据类型)
用来判断身份。
1>>>a=123456
2>>>b=a
3>>>bisa#判断a和b是不是同一个123456
4True
5>>>c=123456
6>>>cisa#判断c和a是不是同一个123456
7False
8>>>cisnota#判断c和a是不是不是同一个123456
9True
这里我们首先将123456赋值给a,后有将a赋值给b,这样其实是a和b的值都是123456,但是后面c的值也是123456,为什么第一次aisb的结果为True,c和a的结果为False呢?
原因是这样的:我们知道程序是运行在内存里的,第一次我们将123456赋值给a的时候,其实是在内存里开辟了一块空间,将123456放在这块空间里,为了找到这里的123456,会有一个指向这块空间的地址,这个地址叫做内存地址,是123456存储在内存中的地址。a其实指向的就是存储123456的内存空间的地址。执行了b=a,就是让b指向的地址和a一样。之后我们执行了c=123456,这里就会再开辟一块内存空间,并将指向该空间的内存地址赋值给c,这样的话,a和b指向的是同一个123456,c指向的是另外一个123456。
以上内容为大家介绍了python可变参数,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。
猜你喜欢LIKE
相关推荐HOT
python gensim库是什么?
pythongensim库是什么?gensim库在文本监控里,首先在稳定上,坚如磐石,不用担心稳定性问题,其次,时效性很强,执行能力很快,经常在最重要的...详情>>
2023-11-06 21:48:19python中getattr()是什么?
python中getattr()是什么?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、getattr()用来获取对象中的属性值;获取对象object的属...详情>>
2023-11-06 21:41:07python标识符如何使用?
python标识符如何使用?为了给编程中函数、类等进行区分,会赋予它们不同的名称。我们把这种命名叫做标识符,也可以理解为符号的标记。当然这种...详情>>
2023-11-06 21:33:55Python IDE之Thonny的介绍
pythonIDE之Thonny的介绍今天要介绍的IDE,可能没用过,甚至可能没听说过。叫Thonny,是塔尔图大学开发的,适合程序员新手。它的界面很容易使用...详情>>
2023-11-06 20:54:19热门推荐
如何使用python中的help函数?
沸如何使用python的callable函数?
热python gensim库是什么?
热python中xluntils库是什么?
新python中getattr()是什么?
python中的win32com库是什么?
python标识符如何使用?
如何使用python中schedule模块?
python中ruamel.yaml模块是什么?
defaultdict在python中计算键值的和
python sleep和wait对比分析
python中字符串转成数字的几种方法
python中SocketServer是什么?
python中如何使用@contextmanage?