语法错误看不见Python 3.4.4

时间:2016-05-17 16:26:33

标签: python python-3.x syntax-error

我收到了一个手工制作的代码,并试图将其合并到我正在编写的新代码中以试图节省时间。代码本身是用Python 2.7.10编写的,但我将它移植到3.4.4。代码的当前问题是在以下行显示的语法错误:

lx = [15,18,2,36,12,78,5,6,9]

但我没有看到太多问题。完整的代码是:

def obtain_rgb(image):
x1=600                                                  #black/white scale x coordinate
x2=1100                                                 #color scale x coordinate
y1=2300                                                 #black/white scale y starting coordinate
y2=250                                                  #black/white scale y ending coordinate
y3=900                                                  #color scale y ending coordinate
s1=(y1-y2)/13                                           #black/white scale step
s2=(y1-y3)/6                                            #color scale step 
pix=image.load()
ref1=pix[x1,y1]                                         #read ref1
ref2=pix[x1,y1-2*s1]                                    #read ref2
ref3=pix[x1,y1-3*s1]                                    #read ref3
ref4=pix[x1,y1-4*s1]                                    #read ref4
ref5=pix[x1,y1-5*s1]                                    #read ref5
ref6=pix[x1,y1-6*s1]                                    
ref7=pix[x1,y1-7*s1]                                    
ref8=pix[x1,y1-8*s1]                                    
ref9=pix[x1,y1-9*s1]                                    
ref10=pix[x1,y1-10*s1]                                      
ref11=pix[x1,y1-11*s1]                                  
ref12=pix[x1,y1-12*s1]                                  
ref13=pix[x1,y2]                                      
ref14=pix[x1,y1-s2]                                 
ref15=pix[x1,y1-2*s2]                                   
ref16=pix[x1,y1-3*s2]                                   
ref17=pix[x1,y1-4*s2]                                   
ref18=pix[x1,y1-5*s2]                                   
ref19=pix[x1,y1-6*s2]                                   
ref20=pix[x1,y3]                                      
try:
    with open('Informationen.csv', 'wb') as myfile:
            writer = csv.writer(myfile, dialect='excel')
            writer.writerow(ref1)                               #write ref1 to file
            writer.writerow(ref2)
            writer.writerow(ref3)
            writer.writerow(ref4)
            writer.writerow(ref5)
            writer.writerow(ref6)
            writer.writerow(ref7)
            writer.writerow(ref8)
            writer.writerow(ref9)
            writer.writerow(ref10)
            writer.writerow(ref11)
            writer.writerow(ref12)
            writer.writerow(ref13)
            writer.writerow(ref14)
            writer.writerow(ref15)
            writer.writerow(ref16)
            writer.writerow(ref17)
            writer.writerow(ref18)
            writer.writerow(ref19)
            writer.writerow(ref20)
lx = [15,18,2,36,12,78,5,6,9]   
print sum(lx)/len(lx)               #average r/g/b value from sample
except IOError as ioe:
        print('Error: ' + str(ioe))
s=(ref1,ref2)
s.split(",")
s.split(",")[1]

非常感谢任何帮助。 感谢。

2 个答案:

答案 0 :(得分:1)

如果您使用的是python 3,则应在print语句周围使用括号:

print (sum(lx)/len(lx))

此外,在每行以"结尾后,您需要正确缩进代码:"你需要一个缩进块来跟随。

答案 1 :(得分:0)

  • 行:

    lx = [15,18,2,36,12,78,5,6,9]   
    print sum(lx)/len(lx)               #average r/g/b value from sample
    

    在try ... except块之内,所以需要缩进。

  • 函数内的所有代码(' def'行后面的所有内容)都应缩进。

  • 要在Python3中工作,请打印'声明将需要添加,例如:

    print(sum(lx)/len(lx))
    
  • 这不是语法错误,但是:代码使用' /'划分,如:

    s1=(y1-y2)/13
    s2=(y1-y3)/6
    

    会将s1和s2设置为Python2中的向下舍入整数,而Python3会根据需要将结果提升为浮点数,并给出' exact'分裂的浮点表示,没有四舍五入。