首页 > 解决方案 > 在特定点评估函数

问题描述

我正在尝试编写一个名为 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

标签: pythonfunction

解决方案


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

推荐阅读