【发布时间】:2022-01-11 08:03:03
【问题描述】:
编辑;感谢大家!它现在可以工作了!
我正在尝试制作一个读取 csv 文件并使用该数据进行计算的程序。我的csv_reader 函数和average_temperature 函数独立工作,但我不明白如何在run() 函数中调用它们。
我理解错误的含义,但我完全不知道如何修复它,但这是我得到的最接近的。它以这个错误结束,然后下面是代码:
Traceback (most recent call last):
File "main.py", line 100, in <module>
run()
File "main.py", line 82, in run
avgfile = average_temperature("Temperatures.csv", input)
File "main.py", line 40, in average_temperature
if filter in row[date_index]:
TypeError: 'in <string>' requires string as left operand, not builtin_function_or_method
代码:
import csv
date_index = 0
temp_index = 2
def csv_reader(file):
lst = []
with open("Temperatures.csv", 'r') as weather_file:
weather_reader = csv.reader(weather_file)
first_row = True
for row in weather_reader:
if first_row:
first_row = False
continue
lst.append(row)
return lst
def average_temperature(weather, filter):
thefile = csv_reader("Temperatures.csv")
sum = 0
len = 0
for row in thefile:
if filter in row[date_index]:
sum += float(row[temp_index])
len += 1
avg = sum / len
return avg
def run():
thefile = csv_reader("Temperatures.csv")
avgfile = average_temperature("Temperatures.csv", input)
print("{}".format(avgfile))
return
if __name__ == '__main__':
run()
【问题讨论】:
-
avgfile = average_temperature("Temperatures.csv", input)输入是内置函数。