我收到了一个手工制作的代码,并试图将其合并到我正在编写的新代码中以试图节省时间。代码本身是用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]
非常感谢任何帮助。 感谢。
答案 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'分裂的浮点表示,没有四舍五入。