我试图从Excel工作表中绘制出一些数据(在同一图上),并且我想将不同材质对应的可变长度字符串列表作为输入。我得到以下错误: TypeError:'NoneType'对象不可迭代 我真的不明白为什么。下面是代码:Python:具有可变长度参数列表的函数
import xlrd
import matplotlib.pyplot as plt
from numpy import *
def transmittance(*glass):
wb=xlrd.open_workbook('schott_optical_glass_catalogue_excel_december_2012.xls')
sheet1=wb.sheet_by_index(0)
transm_index=[] #lista vuota
plt.figure(1)
plt.xlabel('wavelength $\lambda$[nm]')
plt.ylabel('transmittance')
for item in glass:
for i in range(sheet1.nrows):
if sheet1.cell_value(i,0)==glass:
reversed_transmission=sheet1.row_values(i,37,67)
transm_index=reversed_transmission[::-1]
new_transm_index=[float(ni) for ni in transm_index ]
wavel_range=sheet1.row_values(3,37,67)
temp_wavel= [k.split('/')[1] for k in wavel_range]
wRange=map(int,temp_wavel[::-1])
plt.plot(wRange,new_transm_index, 'r-')
plt.grid(True, which="both")
plt.show()
return new_transm_index, wRange
if __name__=='__main__':
new_transm_index=transmittance('N-BASF64','N-BK7')
print 'get tuple length and glass name: ' ,new_transm_index
如果您为该语言添加标签,则可能会得到更多答复。 –
我编辑了空格,使它至少在语法上是正确的,但我不确定这正是你想要的,@ Ivranovi - 你可以检查它吗? –
另外,你能告诉我们你如何称之为“透光度”,错误的全文是什么? –