IndentationError:unindent does not match any other indentation level



     虽然众所周知,Python里面的条件结构if与循环结构for是没有括号的{},对于是否在结构体的内的语句识别,主要利用句子前的递进关系,判断语句是否在结构体内,如果一旦出现递进不一致的问题,Python就会出现indentationerror的递进报错,这属于非程序范畴的,主要是没有好好排版的问题,但是,一些就算排好版的程序,也会出现这样情况,主要是递进的字符看起来一致,实质不一致,一个Python程序利用多个编辑器所编辑所造成的。常见的情况,就是这个Python程序原本是用Eclipse中的Pydev来编写,然而因为发现某个地方没写好,用notepad++改了一下,结果就出现报错了。用一个例子来说明这个问题。
如下图的程序,看起来绝对不会有问题,就是把i从0-9输出,而且for结构体里面的语句递进也是刚好对齐的,很明显是for结构体里面的语句共同递进一个tab
但是,在命令行输入如下命令却出现如下的indentationerror,递进错误。
这是由于Notapad++中对tab的处理与Eclipse对tab的不同所导致。之前的第1行与第3行是用Eclipse中的Pydev程序写的,我第2行的print "i:",是后来为了输出美观才用Notepad++添加上去的。如下图,通过Notepad中的,【视图】->【显示符号】->【显示空格与制表符】,可以很清楚地看到Notepad++对Tab的处理,与Eclipse中的Pydev有着根本性的不同。纯Notepad++产生的Tab,处理为\t,是可以运行的,纯Eclipse中的Pydev产生的Tab,处理为4个空格也是可以运行的,但是两者混合起来却是不可以的。
这个不是说,原本用Eclipse中的Pydev写的Python,用Notapad++程序修改每次递进都要敲4个空格。
可以通过如下的方式来解决。
通过:【设置】->【首选项】->【制表符设置】,一些旧版本的Notepad++,则是【设置】->【首选项】->【语言】。
将“转换为空格”勾上,以后在Notepad++按Tab就自动产生4个空格,而不是\t,这就可以与Eclipse中的Pydev产生的空格相一致。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值