"2,3"是一个字符串,将其传递给函数不会使其表现为由,分隔的两个不同参数(如您所料)。在>>> def func(arg):
... print arg
...
>>> func('a, b')
a, b # arg is a variable that stores the passed string
您应该首先将该字符串转换为两个数字,方法是先用逗号将其拆分,然后对每个字符串应用int()如果它是item。在
^{2}$
首先使用str.split将字符串拆分到',':>>> '2,3'.split(',')
['2', '3'] #str.split returns a list
现在我们需要整数,所以对每个值应用int():>>> map(int, '2,3'.split(',')) #apply int() to each item of the list ['2', '3']
[2, 3]
现在,pow需要两个参数,所以您可以使用*符号来解压这个列表并传递
要math.pow的项。在>>> math.pow(*[2 , 3])
8.0
更简单的方法是使用序列解包:>>> a, b = [2, 3]
>>> math.pow(a, b)
8.0
python库中还有一个工具可以将字符串中逗号分隔的项转换为元组:>>> from ast import literal_eval
>>> literal_eval('1, 2')
(1, 2)
>>> a,b = literal_eval('1, 2')
>>> a
1
>>> b
2