Python 通过迭代执行If语句,错误:';浮动';对象不能解释为整数
您好,我正在尝试通过excel单元格的迭代来使用该函数。但是我得到的错误是“float”(w_s)对象不能解释为整数。我试图通过“w_s”中的值搜索10-11范围内的所有值。有人能建议我修改代码吗Python 通过迭代执行If语句,错误:';浮动';对象不能解释为整数,python,python-3.x,openpyxl,Python,Python 3.x,Openpyxl,您好,我正在尝试通过excel单元格的迭代来使用该函数。但是我得到的错误是“float”(w_s)对象不能解释为整数。我试图通过“w_s”中的值搜索10-11范围内的所有值。有人能建议我修改代码吗 import openpyxl import numpy import os os.system('cd c:\Code') wb = openpyxl.load_workbook('SPLtest.xlsx') turbine_data = wb.get_sheet_by_name('Turbi
import openpyxl
import numpy
import os
os.system('cd c:\Code')
wb = openpyxl.load_workbook('SPLtest.xlsx')
turbine_data = wb.get_sheet_by_name('Turbinedata')
windspeed = wb.get_sheet_by_name('SPLvalues')
for row in range(2, windspeed.max_row+1):
w_s = windspeed['A' + str(row)].value
for value in range(w_s):
if value in numpy.arange(10.00,11.00,0.01) :
print('107')
else:
print('no')
问题是,当您从excel工作表中提取数据时,它们会变成浮动。range函数只接受整数,因为非整数索引没有意义。说点什么
for value in range(int(w_s)):
问题是,当您从excel工作表中提取数据时,它们会变成浮动。range函数只接受整数,因为非整数索引没有意义。说点什么
for value in range(int(w_s)):
您的脚本有很多问题,但您需要的一个更改是
np.linspace
而不是np.arange
,假设您希望迭代类似于[10.00,10.01,10.02,…,10.98,10.99,11.00]
所以你想做:
if value in numpy.linspace(start=10,stop=11,num=101) :
print('107')
else:
print('no')
np.linspace
将为您提供num
介于start
和stop
(包括)之间的线性间隔值。您的脚本有很多问题,但您需要的一个更改是np.linspace
而不是np.arange
,假设您希望迭代类似[10.00、10.01、10.02、…、10.98、10.99、11.00]
所以你想做:
if value in numpy.linspace(start=10,stop=11,num=101) :
print('107')
else:
print('no')
np.linspace
将为您提供num
在start
和stop
之间的线性间隔值(包括)。range(w_s)
range(int(w_s))
这将修复错误,但我认为这不是您想要实现的目标。system('cd c:\code'))没有任何问题,但是没有你的数据,就无法真正解决你的问题。range(w_'s)
=>range(int(w_'s))
这将修复错误,但我认为这不是你想要实现的。因此,操作系统('cd c:\code')没有任何问题,但是没有你的数据,就无法真正解决你的问题。