2017-04-03 7 views
2

마이크로 파이썬에있는 거북이 로봇에 대한 지침이 들어있는 파일을 BBC 마이크로 비트로 읽으려고합니다. 그러나 코드를 플래시하고 올바른 파일을 추가하면 코드가 중단되어 보이지 않습니다. 뭐든지해라. 그것은 내 컴퓨터에 파이썬에서 잘 실행됩니다. 마이크로 파이썬은 제가하고있는 일을 놓치고 있습니까?BBC 마이크로 비트 코드에 매달려

다음은 관련 코드입니다. 클래스는이 함수 밑에 정의되어 있지만이 코드와 관련이 없으므로이 코드는 포함하지 않았습니다.

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'보다 한 단계 더 들여 쓰기해야하고 두 번째''''는 들여 쓰기가 없으므로 함수 정의가 현재 거기에서 끝납니다. 일단 그 문제를 해결했으면 코드에 어떤 종류의 진단 정보를 추가하여 얼마나 멀리 도달했는지 확인해 보았습니까? 밝기를 깜박이거나 호스트에 디버그 출력을 인쇄합니다. 마이크로 비트에서 할 수있는 작업을 정확히 알지 못합니다. – 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