2016-09-22 81 views
0

让我们考虑具有整数系数的单变量x中的多项式:例如,3x^4 - 17x^2 - 3x + 5。多项式的每项可以表示为一对整数(系数,指数)。多项式本身就是这样的对的列表。不显示输出python,没有显示错误

我们有以下限制,以保证每一个多项式具有独特的表示:

  • 条款降序指数
  • 的订单号码项具有零系数
  • 没有两个术语的排序同指数
  • 指数总是非负

例如,口服lynomial前面介绍过被表示为

[(3,4),( - 17,2),( - 3,1),(5,0)]

零多项式,0,表示为空列表[],因为它没有非零系数的项。

以下操作编写Python功能:

addpoly(P1,P2)?

def addpoly(p1,p2): 
    p1=[] 
    p2=[] 
    for i in range(0,len(p1)): 
     for j in range(0,len(p2)): 
      L=[] 

      if p1[i][1]==p2[j][1]: 
       L=L[p1[i][0]+p2[j][0]][p1[i][1]] 
      elif p1[i][1]!=p2[j][1]: 
       L=L+p1[i][j] 
       L=L+p2[i][j] 
     print("L") 
+2

请缩进代码,因为现在很难看到你想要达到的目的。你最后打印“L”的另一件事是打算打印出列表L还是打印出来? – JKT

+0

您正在将p1和p2重新分配给函数开头处的空列表。 – elethan

回答

0

您正在将p1和p2参数重新分配给函数顶部的空列表。这意味着您将始终检查for i in range(0, 0),这是一个空的范围。换句话说,你的循环中没有任何东西会被执行。这就是为什么你没有看到任何输出。您没有看到任何错误消息,因为您的语法没有任何问题,问题与逻辑有关。

我的数学技能是不存在的,所以我不能评论代码中大多数逻辑的准确性,但肯定需要摆脱函数的前两行(p1 = []p2 = [])或您的函数将无能为力。

此外,确保打印可变L而不是字符串"L"打印列表:

print(L)