为什么这个函数返回3125

时间:2018-05-25 13:00:55

标签: python expression pow

今天我在python教科书中看到了一个函数,代码如下:

def power(x,y):
    return pow(x,y)

当我向下面的power提供参数时:

>>>params=(5,)*2
>>>power(*params)  
3125

这个函数给了我一个3125.我知道3125可能来自(5 * 5)*(5 * 5)* 5,但我不明白代码中的params是如何工作的。表达式(5,)*2的含义是什么?

3 个答案:

答案 0 :(得分:2)

这是一个元组的连接。

>>>(5,)*2
(5,5)
>>>(5,)*5
(5,5,5,5,5)

答案 1 :(得分:1)

请注意,(5,)*2扩展为(5, 5),又称​​元组。请参阅tuples上的文档。

重新pow():根据docspow(x,y) x返回给权力

在您的脚本中,您使用power(*params)中的*将params元组中的两个项目作为单个参数插入到函数中。您可以通过键入power(5,5)来实现相同目的。

因此,5 ^ 5,等于3125。

关于元组的直观教程是here

答案 2 :(得分:1)

如果您检查params的值,您可以看到它是如何工作的:

>>> params=(5,)*2
>>> params
(5, 5)
>>> power(*params)
3125
应用于序列的

*n会返回附加到自身n次(see documentation)的序列。