我正在尝试在.csv文件中的值之间运行计算。但是,当我尝试执行代码时,它会给出一个错误,即while循环不可iterable。我的代码是:
import csv
import math
counter_chime = 1
chime_cra = 0
chime_cdec = 0
fermi_cra = 0
fermi_cdec = 0
grbfrb_overlap = []
frbcode = ""
grbcode = ""
dis = 0
counter_fermi = 0
class adata():
def __init__(self, filename):
with open(filename, "r") as f_input:
csv_input = csv.reader(f_input)
self.details = list(csv_input)
def get_col_row(self, col, row):
return self.details[row][col]
chimed = adata('chime2.csv')
fermid = adata('fermi.csv')
while counter_chime < 600:
frbcode = chimed.get_col_row(0, counter_chime)
chime_cra = chimed.get_col_row(1, counter_chime)
chime_cdec = chimed.get_col_row(2, counter_chime)
chime_cra = float(chime_cra)
chime_cdec = float(chime_cdec)
sum = sum(chime_cra + chime_cdec)
print (sum)
counter_chime +=1
返回的错误是:
Traceback (most recent call last):
File "C:\Users\kaoet\Desktop\CODING\trial1.py", line 32, in <module>
sum = sum(chime_cra + chime_cdec)
TypeError: 'float' object is not iterable
我不确定是什么问题
由于
chime_cra
和chime_cdec
是float
,因此不需要使用sum
来求和。您可以执行
sum([chime_cra, chime_cdec])
,这是sum
的一个iterable,它不会在第一个循环中抱怨虽然没有必要,但您应该只使用
chime_cra + chime_cdec
此外,这行代码稍后将导致另一个错误,因为当您将
sum
用作变量名时,您正在重新定义它。相反,您应该为求和结果找到一个有意义的名称相关问题 更多 >
编程相关推荐