python中的多项式函数
我对编写Python代码非常陌生。我必须这样表示多项式python中的多项式函数,python,polynomials,Python,Polynomials,我对编写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) 但我的回答是不正确的。我需要这方面的帮助。您的
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)
但我的回答是不正确的。我需要这方面的帮助。您的问题在打印报表中。以书面形式:
print("%s x^%s + "%(P[i], i))
实际上,您正在打印整个元组。例如,P[0]
等于整个列表[4512]
。因此,在直接打印P[i]
时,您只需打印整个子列表
print("%s x^%s" % (P[i][0], P[i][1]))
相反,您希望打印子列表中的每个元素
print("%s x^%s" % (P[i][0], P[i][1]))
此外,您的解决方案将在单独的行上打印答案的每个部分。要解决这个问题,您有几个选项,但这里有一个选项不依赖于您的python版本。基本上,您可以创建一个表示结果的字符串,并在循环过程中继续构建它。然后在函数的最后,打印该字符串
result = '' # initialize an empty string before your loop
然后在循环内部,将打印调用替换为:
result = "%s + %s x^%s" % (result, P[i][0], P[i][1]
在函数的最后,您可以打印字符串
print (result)
我(希望)用一些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)
打印出来
4 x^230 +
7 x^96 +
还有5分钟。。。给你
testP = [(4, 230), (7, 96), (1, 0)]
def printPoly2(polynom):
parts = []
for i, e in polynom:
parts.append(_format_polynome(i,e))
print " + ".join(parts)
def _format_polynome(i, e):
if e == 0:
return "{}".format(i)
else:
return "{} x^{}".format(i, e)
printPoly2(testP)
这就是我将如何用一种我认为更像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)
请注意,返回字符串表示比直接从函数打印更灵活 我并不是在你的开始示例多项式和你的列表表示之间建立联系。testP不应该是:[[4230],[7,96],[1,0]?我想应该是。但是在你的方法中P是一个列表列表。因此P[i]返回一个列表,您可以将其与!=0这毫无意义。按如下方式解压缩列表应该会得到结果我认为OP正在寻找2个更改,第一个if子句可能是:if len(P[I])!=第二,下面的print语句为print(“%s x^%s+”%(P[i][0],P[i][1])),对不起,testP应该是这样的,testP=[4512],[7256],[1,0]]请将我的答案标记为正在解决(如果是)。TY你仍然需要打印常量项而不使用
x^0
@chepner我也这么认为,但这是原始的post^^tani,你也许应该添加一个其他案例,然后打印出“I”