python中的多项式函数

2024-10-01 04:57:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我对编写Python代码非常陌生。我必须像这样表示多项式

4x^230+7x^96+1

testP = [[4,512],[7,256],[1,0]]

def printPoly2(P):
    for i in range(len(P)):
        if P[i] != 0:
            print("%s x^%s + "%(P[i], i)),
            print

printPoly2(testP)

但我的回答不正确。我需要帮助。在


Tags: 代码inforlenifdefrangeprint
3条回答

我(希望)用一些Python魔法改进了你的代码。现在它是一个元组列表,并使用自动元组展开。在

testP = [(4, 230), (7, 96), (1, 0)]

def printPoly2(P):
    for i, e in P:
        if e != 0:
            print("{} x^{} + ".format(i, e))

printPoly2(testP)

打印出来

^{pr2}$

你的问题出在打印声明中。通过写作:

print("%s x^%s + "%(P[i], i))

实际上,您正在打印整个元组。例如,P[0]等于整个列表[4, 512]。所以在直接打印P[i]时,您只需打印整个子列表。在

相反,您需要打印子列表中的每个元素。在

^{pr2}$


另外,你的解决方案将把答案的每一部分打印在单独的一行上。要解决这个问题,您有两个选项,但是这里有一个选项不依赖于您的python版本。基本上,创建一个表示结果的字符串,并在循环过程中继续构建它。然后在函数的最后,打印这个字符串。在

result = '' # initialize an empty string before your loop

然后在循环内部,将print调用替换为:

result = "%s + %s x^%s" % (result, P[i][0], P[i][1]

在函数的最后,你可以打印字符串。在

print (result)

这就是我如何用我认为更像Python的方式编写代码:

def poly2(P):
    result = []
    for item in P:
        n, e = item
        if e == 0:
            result.append("1")
        else:
            result.append("{}x^{}".format(n, e))
    return " + ".join(result)

# 4x^230 + 7x^96 + 1
testP = [(4,230), (7,96), (1,0)]
print poly2(testP)

请注意,返回字符串表示比直接从函数打印它更灵活。在

相关问题 更多 >