在特定点评估功能

时间:2019-06-18 11:12:34

标签: python function

我正在尝试编写一个称为term_output的Python函数,该函数可以评估x值下单个项的含义。

例如,当x=2时,术语3x^2 = 3*2^2=12。 有人告诉我在代码中将3x^2表示为(3,2),并且: term_output((3, 2), 2)应该返回12

我正在尝试仅使用函数(以及函数的功能)

def term(x,y):
    return x**y

def term_output(term,z):
    return term*z

我的最终结果是(3, 2, 3, 2)

但是我尝试了很多选择,我希望输出返回12

2 个答案:

答案 0 :(得分:1)

term是一对,而不是数字,并且将任何元组相乘都会复制它。

>>> (1,2) * 3
(1, 2, 1, 2, 1, 2)
>>> (1,2) * 4
(1, 2, 1, 2, 1, 2, 1, 2)

您需要拆开一对。
我认为同时分配很方便(并且比索引更好地记录了意图):

>>> a = (3,2)
>>> a
(3, 2)
>>> x,y = a
>>> x
3
>>> y
2

将其放入函数中

def term_output(term,z):
    coefficent, exponent = term
    return coefficient * z ** exponent

答案 1 :(得分:0)

简单地为:

x = 2
y = 2
z = 3
xy = [x,y]

def term(xy):
    return xy[0]**xy[1]

def term_output(xy,z):
    return term(xy)*z