今天我在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
的含义是什么?
答案 0 :(得分:2)
这是一个元组的连接。
>>>(5,)*2
(5,5)
>>>(5,)*5
(5,5,5,5,5)
答案 1 :(得分:1)
请注意,(5,)*2
扩展为(5, 5)
,又称元组。请参阅tuples上的文档。
重新pow()
:根据docs,pow(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)的序列。