python 可变参数

发布时间:2022-05-13 09:45:38 人气:150 作者:多测师

  在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。

  我们以数学题为例子,给定一组数字a,b,c……,请计算a2 + b2 + c2 + ……。

  1 def calc(*numbers):

  2 sum = 0

  3 for n in numbers:

  4 sum = sum + n * n

  5 return sum

  6

  7 #测试

  8 #调用该函数时,可以传入任意个参数,包括0个参数

  9 >>> calc(1, 2)

  10 5

  11 >>> calc()

  12 0

  13

  14 #Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去; *nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见

  15 >>> nums = [1, 2, 3]

  16 >>> calc(*nums)

  17 14

python 可变参数

  成员运算符: not in 、in (判断某个单词里是不是有某个字母)

  成员运算符用来判断一个元素是否是另一个元素的成员。 比如说我们可以判断 “hello” 中是否有 “h”, 得到的结果也是True 或者 False。

  1 >>> "h" in "hello" # 这里的意思是 “h” 在“Hello” 中,判断后结果为True

  2 True

  3 >>> "h" not in "hello" # 这里的意思是 “h” 不在“Hello” 中,判断后结果为False

  4 False

  身份运算符: is、is not(讲数据类型时讲解,一般用来判断变量的数据类型)

  用来判断身份。

  1 >>> a = 123456

  2 >>> b = a

  3 >>> b is a #判断 a 和 b 是不是同一个 123456

  4 True

  5 >>> c = 123456

  6 >>> c is a #判断 c 和 a 是不是同一个 123456

  7 False

  8 >>> c is not a #判断 c 和 a 是不是不是同一个 123456

  9 True

  这里我们首先将123456赋值给a,后有将a赋值给b, 这样其实是 a和b 的值都是123456, 但是后面c的值也是123456,为什么 第一次a is b 的结果为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相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线