Python中(5,)*2表达式含义及power函数返回3125的原因咨询
搞懂Python里的
(5,)*2和函数参数传递 嘿,我来给你拆解清楚这个问题:
首先,(5,)*2是Python的元组重复操作:
(5,)是一个只有单个元素5的元组(千万别忘了那个逗号!如果写成(5),那就是普通的整数5,不是元组)- 后面的
*2表示把这个元组复制2次并拼接起来,所以最终得到的是(5, 5)这个新元组
再结合你的代码看整个流程:
- 你写的
def power(x,y): return pow(x,y)其实就是个包装函数,调用了Python内置的pow(),这个函数的作用是计算第一个参数的第二个参数次方(也就是x^y) - 当你执行
params=(5,)*2后,params变量就存了(5,5)这个元组 - 然后
power(*params)里的*是参数解包运算符,它会把元组里的每个元素依次拿出来,作为位置参数传给power函数——这就等价于你直接写power(5,5) - 那
pow(5,5)就是5的5次方:5×5×5×5×5=3125,这就是你看到的返回值啦
额外提个小细节:这种重复操作也能用在列表上,比如[5]*2会得到[5,5],不过如果元素是列表这种可变对象的时候要小心(会导致所有元素指向同一个对象),但这里是整数(不可变类型),所以完全不用担心问题。
内容的提问来源于stack exchange,提问作者zijie geng
相关产品推荐
相关产品推荐

