Colab 中的 Python 脚本不断抛出错误消息:IndentationError: unindent does not match any external indentation level

Ric*_*Man 4 indentation python-3.x google-colaboratory

我目前正在使用 Google Colab 以利用其免费 GPU。我试图修改我从 machinelearningmaster.com 复制和粘贴的代码。但是,每当我尝试添加新的代码行时,例如“print(”some words”),都会出现缩进错误。

我曾尝试在打印调用之前添加制表符或空格,但仍然出现错误。例如:space,space,print("some words") tab, tab ,print("some words")

我还检查了 colab 编辑器设置,目前缩进宽度设置设置为两个空格。

前三行是原代码的一部分,print语句是我的补充。我直接从 colab 编辑器复制并粘贴了它。在 Colab 中,所有四行都是对齐的。正如您在这里看到的,只有前三行对齐。我不知道发生了什么。

                img_path = images_dir + filename
                ann_path = annotations_dir + image_id + '.xml'
                count=count+1
                            print("this is count: ", count)
Run Code Online (Sandbox Code Playgroud)

我希望这会打印 count 的值,但我收到一条错误消息告诉我: IndentationError: unindent does not match any external indentation level

Ric*_*Man 7

好的,经过多次搜索和挫折,我知道出了什么问题,但更好的是,有一个解决方案来解决它。

似乎 Google Collaborator (Colab) 编辑器无法为制表符“\t”与空格(空格键条目)设置它。从单元格上的设置选项卡中,您可以将选项卡的宽度设置为 2 到 4,但这些将被解释为 2 到 4 个空格键条目。通常,这不是问题。但是,如果您像我一样想从 Web 测试代码,或者懒惰而只是从编辑器中复制粘贴,则可能会出现问题。

这是我修复它的方法。在将复制的代码粘贴到 Colab 之前,先将其放入 notepad++。转到“查看”>“显示符号”>“显示所有字符”,单击此按钮,您现在应该可以看到代码中的所有字符。找到一个选项卡,它看起来像一个指向右边的箭头-->,右键单击并复制它。打开搜索>查找,打开替换选项卡。根据您的记事本 ++ 版本,您复制的选项卡将自动输入,并且替换已设置为四个空格。点击“全部替换”。这将自动用等效空格替换所有制表符。将记事本++中的代码复制回 Colab。现在不会再有冲突了。

  • 我真的希望 google colab 能解决这个问题。真是痛苦极了。 (2认同)