Microbit无法显示数字问题:原因排查及修复方案
问题原因与修复方案
问题原因
核心错误在于字符串substr方法的参数使用不正确:
- Microbit Python中,字符串的
substr(start, length)方法第二个参数是要截取的字符长度,而非结束索引。 - 你的代码中
substr(i, i)会导致:- 当
i=0时,截取长度为0,返回空字符串,屏幕直接显示空白; - 当
i≥1时,起始位置i加上长度i会超出原字符串的范围,同样无法正确截取到目标数字,最终还是显示空白。
- 当
修复方案
只需要将截取长度固定为1,每次从索引i的位置取1个字符即可。有两种写法:
写法一:直接使用字符串索引(更符合Python习惯)
for i in range(len(str(score))): basic.show_string(str(score)[i]) basic.pause(500)
写法二:修正substr的参数
for i in range(len(str(score))): basic.show_string(str(score).substr(i, 1)) basic.pause(500)
额外说明
确保score是有效的整数类型(正整数、0或负整数均可),如果score是负数,代码会先显示负号,再依次显示每一位数字。
内容的提问来源于stack exchange,提问作者Jellyv20
相关产品推荐
相关产品推荐

