![](/img/trans.png)
[英]RaspberryPi Python TypeError: unsupported operand type(s) for *: 'NoneType' and 'float'
[英]Python error: unsupported operand type(s) for -: 'float' and 'NoneType'
我的代碼應該互相讀取和減去兩個數據列表。 為什么會收到此錯誤,我該如何解決?
這是完整的錯誤:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "spectra.py", line 32, in SpectraTest
subt = map(sub, flux, flux1)
TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
這是代碼:
import csv
def SpectraTest():
wave_num = []
flux = []
wave_num1=[]
flux1 = []
with open ("H20_Glass.CSV", "rb") as csvfile:
datareader= csv.reader(csvfile, delimiter = ",")
for row in datareader:
tempdata = row
wn = tempdata[0]
f1 = tempdata [1]
wn = eval(wn)
f1 = eval(f1)
wave_num.append(wn)
flux.append(f1)
with open ("blankGlass.CSV", "rb") as csvfile:
datareader= csv.reader(csvfile, delimiter = ",")
for row in datareader:
tempdata1 = row
wn1 = tempdata1[0]
f2 = tempdata1[1]
wn1 = eval(wn1)
f2 = eval(f2)
wave_num1.append(wn1)
flux1.append(f2)
map(float, flux1)
map(float, flux)
from operator import sub
subt = map(sub, flux, flux1)
wave_num1.reverse()
wave_num.reverse()
print("Number of wave numbers " + str(len(wave_num1)))
print("Number of flux numbers = "+ str(len(flux1)))
print("Number of wave numbers " + str(len(wave_num)))
print("Number of flux numbers = "+ str(len(flux)))
print subt
csvfile.close()
從Python文檔中:
map(函數,可迭代,...)
...如果一個可迭代項短於另一個可迭代項,則假定它擴展為None。
我猜您的列表長度不一樣,因此它試圖從浮點數中減去None。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.