Codio中Pylint报turtle程序缩进错误 其他IDE正常改后代码失效
你给出的代码本身存在缩进逻辑错误,同时存在缩进格式不统一的问题:
triangle函数中,for循环下属的两行代码和for语句处于同一缩进层级,没有按要求缩进一层,属于逻辑错误。- 两个函数的循环语句缩进不统一,
triangle的for前是4空格,rectangle的for前是2空格,属于格式不规范问题。
本地IDE可运行的原因
大部分本地IDE对缩进的校验规则比较宽松,会自动兼容混合使用空格和Tab、缩进空格数不一致的情况,甚至部分IDE会在运行前自动修正不规范的缩进,所以你本地运行无异常。但Codio的自动评分器严格遵循Python PEP8编码规范,强制要求所有缩进统一为4个空格,且不允许Tab和空格混用,所以会触发报错。
按提示调整后无法运行的原因
评分器提示的是循环体内部的代码需要多缩进一个层级,不是让你把整个函数的代码都多缩进一层。整体缩进会导致函数定义处于其他代码块的内部,成为无法被全局调用的内部函数,自然无法正常运行。
修正后的规范代码如下:
def triangle(size): for _i in range(3): bby.forward(size) bby.rt(120) def rectangle(size): for _i in range(2): bby.forward(size*2) bby.rt(90) bby.forward(size) bby.rt(90)
后续校验建议
- 把编辑器的Tab键功能设置为输出4个空格,避免混用Tab和空格
- 全局排查所有代码的缩进,确保每个代码块(函数体、循环、条件判断)的内容比上一级语句多4个空格
内容的提问来源于stack exchange,提问作者edenpage11
相关产品推荐
相关产品推荐

