local variable 'nheigth' referenced before assignment on python
我正在运行以下python函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | def imageprepare(argv): im = Image.open(argv).convert('L') width = float(im.size[0]) height = float(im.size[1]) newImage = Image.new('L', (28, 28), (255)) if width > height: nheight = int(round((20.0/width*height),0)) if (nheigth == 0): nheigth = 1 img = im.resize((20,nheight), Image.ANTIALIAS).filter(ImageFilter.SHARPEN) wtop = int(round(((28 - nheight)/2),0)) newImage.paste(img, (4, wtop)) else: nwidth = int(round((20.0/height*width),0)) # if (nwidth == 0): nwidth = 1 img = im.resize((nwidth,20), Image.ANTIALIAS).filter(ImageFilter.SHARPEN) wleft = int(round(((28 - nwidth)/2),0)) newImage.paste(img, (wleft, 4)) tv = list(newImage.getdata()) tva = [ (255-x)*1.0/255.0 for x in tv] return tva |
它给出了错误:
UnboundLocalError: local variable 'nheigth' referenced before assignment.
我在Conda环境中运行它并使用python 3.6。
请帮我一下。我是Python的新手。
正如@falko已经发现的那样,您在声明为
Python是一种没有强制变量声明的动态语言,如果没有适当的工具,这种错误在运行时之前是不容易发现的。
我建议您使用适当的python ide,如pycharm,它将在您键入时发现这些错误。
有一个错误: