python中可变长度参数列表_Python:具有可变长度参数列表的函数

在尝试从Excel表格中根据不同材料绘制数据时,遇到了TypeError: “NoneType”对象不可读取的错误。代码中定义了一个名为transmittance的函数,该函数接受可变长度的参数列表。问题出在检查单元格值是否等于glass参数时。函数涉及打开工作簿,读取特定行的数据,然后进行数据转换和绘图。最后,它显示了如何调用函数来获取特定材料的透射率数据。
摘要由CSDN通过智能技术生成

我试图从Excel表格中绘制一些数据(在同一个图上),我想要一个可变长度的字符串列表作为输入,对应不同的材料。我得到以下错误:

TypeError:“NoneType”对象不可读取

我真的不明白为什么。代码如下: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值