2017-04-03 44 views
2

我想读一个文件包含一个乌龟机器人在micropython在BBC微位上的说明,但是当我刷我的代码并添加正确的文件它只是挂起,似乎并没有做任何事情。它在我的机器上运行得很好。 micropython是否缺少我正在做的事但不告诉我?英国广播公司微位挂在代码

这里是相关的代码。在这个函数下定义了一个类,但是我没有包含那个代码,因为它与这个位无关。

def processInstFile(fileName): 
    writeBuffer = [] 
    writeBuffer.append("myturtle = turtle()\n") 
    with open(fileName,'r') as instFile: 
    for line in instFile: 
     line=line.strip() 
     if line[0] == "#": 
      pass 
     else:    
      if line.find("mf") != -1: 
       writeBuffer.append("myTurtle.moveForward("+line[3:]+")\n") 
      if line.find("mb") != -1: 
       writeBuffer.append("myTurtle.moveBackward("+line[3:]+")\n") 
      if line.find("t") != -1: 
       writeBuffer.append("myTurtle.turnAngle("+line[2:]+")\n") 
      if line.find("pu") != -1: 
       writeBuffer.append("myTurtle.penUp()\n") 
      if line.find("pd") != -1: 
       writeBuffer.append("myTurtle.penDown()\n") 
    with open("turtleScript.py",'w') as instOutput: 
     for line in writeBuffer: 
      instOutput.write(line) 
    return 

processInstFile("turtleinstr.py.p8l") 
display.show(Image.HEART) 
+0

正如问题中显示的那样,它看起来好像有一些缩进问题。 “with”块中的所有内容都需要比'with'缩进一级,而第二个'with'没有缩进,所以你的函数定义现在就结束了。一旦你解决了这个问题,你是否尝试在代码中添加某种诊断来检查它到底有多远?比如,闪烁灯光或者向主机打印一些调试输出 - 我不太清楚你可以在微处理器上做什么。 – nekomatic

+0

它似乎没有运行任何代码,就好像我设置的第一件事情是显示LED没有。 – CapnMarcy

回答

1

它看起来像你需要缩进从第一个语句到return语句的所有内容。

def processInstFile(fileName): 
    writeBuffer = [] 
    writeBuffer.append("myturtle = turtle()\n") 
    with open(fileName,'r') as instFile: 
     for line in instFile: 
      line=line.strip() 
      if line[0] == "#": 
       pass 
      else:    
       if line.find("mf") != -1: 
        writeBuffer.append("myTurtle.moveForward("+line[3:]+")\n") 
       if line.find("mb") != -1: 
        writeBuffer.append("myTurtle.moveBackward("+line[3:]+")\n") 
       if line.find("t") != -1: 
        writeBuffer.append("myTurtle.turnAngle("+line[2:]+")\n") 
       if line.find("pu") != -1: 
        writeBuffer.append("myTurtle.penUp()\n") 
       if line.find("pd") != -1: 
        writeBuffer.append("myTurtle.penDown()\n") 
    with open("turtleScript.py",'w') as instOutput: 
     for line in writeBuffer: 
      instOutput.write(line) 
    return 
+0

对不起,对于最近的回复,我只在堆栈溢出时弄乱了最后一位的格式,所以这不是问题。 – CapnMarcy