生成不同二进制的Python

2024-06-25 07:26:11 发布

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

我是Python的新程序员。这是我的代码,它给了我错误。我真的不知道怎么修理它。在

二叉树类:

 class BinaryTree:
      def __init__(self, data):
          self.data=data
          self.right=None
          self.left=None
      def inOrderTraversal(self, root):
          if root == None:
             pass
          else:
             self.inOrderTraversal(root.left)
             print root.data,
             self.inOrderTraversal(root.right)
      def printOrder(self):
          self.inOrderTraversal(self)

生成完全不同的树

^{pr2}$

我也试过用这种方法,用appending

^{3}$

主要功能

  if __name__ == '__main__':
      preOrderData=[]
      scan = raw_input("Enter Number:")
      for i in range(0,int(scan)):
          preOrderData=preOrderData + [i+1]
      results = []
      results.append(generateAllDistinctTrees(preOrderData,0,len(preOrderData)-1))
      for eachObject in results[0]:
          eachObject.printOrder()

我使用了这个代码的Java版本。而且没有任何错误。但在python中,它会给出以下错误:

对于第一版if generatealldincttrees:

  Traceback (most recent call last):
      File "<stdin>", line 7, in <module>
      File "<stdin>", line 10, in generateAllDistinctTrees
      File "<stdin>", line 11, in generateAllDistinctTrees
  TypeError: 'NoneType' object is not iterable

对于generateAllDistinctTrees的第二个版本:(使用追加一个)

  Traceback (most recent call last):
      File "<stdin>", line 7, in <module>
      File "<stdin>", line 9, in generateAllDistinctTrees
  NameError: global name 'leftResult' is not defined

提前谢谢!!!在

我把我的截图贴在这里!!在

{1美元^


Tags: inselfnonedataifdef错误stdin
1条回答
网友
1楼 · 发布于 2024-06-25 07:26:11
class BinaryTree:
      left, right, data = None, None, 0

这是错误的。它将创建属于类的变量,而不是属于实例的变量(这意味着几个树不会有多个副本)。 正确的方法是在构造函数中使用自变量=值。在

我看到了一个缩进问题,其中“pass”与应该包含它的“def”处于同一级别。一般来说你的缩进不是很一致,你应该总是使用4个空格,返回的应该是函数内部。在

修正那些容易犯的错误,这样就更容易看逻辑错误了。在

相关问题 更多 >