BBC Micro Bit висит на коде
Я пытаюсь прочитать файл, содержащий инструкции для робота-черепахи в микропифоне, на микробите BBC, но когда я прошиваю свой код и добавляю правильные файлы, он просто зависает и, похоже, ничего не делает. Он отлично работает в Python на моей машине. Микропифон пропускает то, что я делаю, но не говорю мне?
Вот соответствующий код. Класс определен ниже этой функции, но я не включил этот код, поскольку он не имеет отношения к этому биту.
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)
1 ответ
Похоже, вам нужно сделать отступ от первого оператора for до оператора 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