TabError: inconsistent use of tabs and spaces in indentation解决办法

1.错误原因:缩进中的制表符和空格使用不一致

python代码对缩进要求非常严格。有人在缩进时,使用的是制表符Tab,有人用的是空格。两者皆可,但一定注意在同一段代码中不能混用!此处报错,就是属于混用报错。
可以使用Subline text查看空格或制表符使用情况。进一步验证报错原因。

2.先查看代码报错情况。代码为:

import cv2
import numpy as np
from numpy import shape
import random
#随机生成符合正态(高斯)分布的随机数,means,sigma为两个参数
def GaussianNoise(src,means,sigma,percetage):
	NoiseImg=src
	NoiseNum=int(percetage*src.shape[0]*src.shape[1])
	for i in range(NoiseNum):
		randX=random.randint(0,src.shape[0]-1)
		randY=random.randint(0,src.shape[1]-1)
		#此处在原有像素灰度值上加上随机数
		NoiseImg[randX,randY]=NoiseImg[randX,randY]+random.gauss(means,sigma)
		#若灰度值小于0则强制为0,若灰度值大于255则强制为255
		if  NoiseImg[randX, randY]< 0:
			NoiseImg[randX, randY]=0
		elif NoiseImg[randX, randY]>255:
			NoiseImg[randX, randY]=255
        return NoiseImg

错误提示:代码19行 “return NoiseImg” 处出错
TabError: inconsistent use of tabs and spaces in indentation解决办法_第1张图片
3.可以使用Subline text查看空格或制表符使用情况。进一步验证报错原因。

需在Preferences->Setting中进行如下配置:
把下面代码加入到原来的配置中。

"draw_white_space": "all",

TabError: inconsistent use of tabs and spaces in indentation解决办法_第2张图片
然后使用Subline打开代码文件,可以看到如图所示:
在代码return NoiseImg前面显示的是空格“…”,而其它代码前显示的是Tab制表符“————”,所以才会报以上错误!
TabError: inconsistent use of tabs and spaces in indentation解决办法_第3张图片
解决方法:统一格式即可。把前面的制表符复制到return NoiseImg前面。
TabError: inconsistent use of tabs and spaces in indentation解决办法_第4张图片

问题解决!

参考:https://blog.csdn.net/godot06/article/details/80974884

你可能感兴趣的:(python,杂文,python,制表符Tab,缩进格式)