关于python:BBC Micro Bit 挂在代码上 | 珊瑚贝

BBC Micro Bit Hanging on code


我正在尝试在 BBC 微型位上读取包含 micropython 中的海turtle机器人指令的文件,但是当我刷新我的代码并添加正确的文件时,它只是挂起并且似乎没有做任何事情。它在我机器上的 python 中运行良好。 micropython 是否遗漏了我正在做但没有告诉我的事情?

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
def processInstFile(fileName):
    writeBuffer = []
    writeBuffer.append(“myturtle = turtle()\
)
    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:]+“)\
)
            if line.find(“mb”) !=1:
                writeBuffer.append(“myTurtle.moveBackward(“+line[3:]+“)\
)
            if line.find(“t”) !=1:
                writeBuffer.append(“myTurtle.turnAngle(“+line[2:]+“)\
)
            if line.find(“pu”) !=1:
                writeBuffer.append(“myTurtle.penUp()\
)
            if line.find(“pd”) !=1:
                writeBuffer.append(“myTurtle.penDown()\
)
    with open(“turtleScript.py”,‘w’) as instOutput:
        for line in writeBuffer:
            instOutput.write(line)
    return

processInstFile(“turtleinstr.py.p8l”)
display.show(Image.HEART)

  • 正如问题中目前显示的那样,您似乎遇到了一些缩进问题。 with 块中的所有内容都需要比 with 多缩进一级,并且您的第二个 with 没有缩进,因此您的函数定义当前到此结束。一旦你解决了这个问题,你是否尝试过在代码中添加某种诊断来检查它有多远?比如说,闪烁灯或向主机打印一些调试输出 – 我不熟悉你可以在 microbit 上做什么。
  • 它似乎没有运行任何代码,就好像我设置的第一件事是显示它没有的 LED。


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
def processInstFile(fileName):
    writeBuffer = []
    writeBuffer.append(“myturtle = turtle()\
)
    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:]+“)\
)
                if line.find(“mb”) !=1:
                    writeBuffer.append(“myTurtle.moveBackward(“+line[3:]+“)\
)
                if line.find(“t”) !=1:
                    writeBuffer.append(“myTurtle.turnAngle(“+line[2:]+“)\
)
                if line.find(“pu”) !=1:
                    writeBuffer.append(“myTurtle.penUp()\
)
                if line.find(“pd”) !=1:
                    writeBuffer.append(“myTurtle.penDown()\
)
    with open(“turtleScript.py”,‘w’) as instOutput:
        for line in writeBuffer:
            instOutput.write(line)
    return

  • 抱歉回复晚了,我只在堆栈溢出时弄乱了最后一位的格式,所以这不是问题抱歉。


来源:https://www.codenong.com/43188863/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9317.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?