所以基本上,对于这项任务,我们获得了2个文本文件,其中包含来自许多汽车的MPG列表,一个文件用于城市中的MPG,另一个文件用于高速公路上的MPG。除了" if"之后的语句,我的所有代码都是正确的。声明。 Python一直这么说:
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
GasGuzzlers("carModelData_city", "carModelData_hwy")
File "<pyshell#2>", line 7, in GasGuzzlers
num+=1
TypeError: must be str, not int
这是我的代码:
def GasGuzzlers(list1, list2):
num = 0
num2 = 0
with open(list1, "r") as list1:
for num in list1.readlines():
if (float(num) < 22.0):
num+=1
with open(list2, "r") as list2:
for num2 in list2.readlines():
if (float(num2) < 27.0):
num2+=1
print(count1, count2)
这是我教授的指示:
&#34;编写一个计算测试车型中耗油量的数量的功能 - 对于此程序,将“耗油量大”定义为车辆低于22 mpg城市或低于27 mpg高速公路&#34;
请帮忙!我非常接近它,我试图以不同的方式将float(num)转换为字符串,但它似乎不起作用。
提前致谢!
答案 0 :(得分:0)
num = 0
被
覆盖for num in list1.readlines():
和
num2+=1
被
覆盖for num2 in list2.readlines():
read / readlines将返回一个字符串/列表。在你的情况下,我猜这些变量被意外覆盖 - 在循环结构中选择不同的变量名称,程序应该可以正常工作。