首页 > 解决方案 > 查找文本文件中大于某个数字的数字数量

问题描述

所以基本上对于这个任务,我们得到了 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)

这是我教授的指示:

“编写一个函数来计算所测试车辆模型中耗油量大的数量——对于这个程序,将‘耗油量’定义为城市油耗低于 22 mpg 或高速公路油耗低于 27 mpg 的汽车。”

请帮忙!我非常接近它,我尝试以多种不同的方式将 float(num) 转换为字符串,但它似乎不起作用。

提前致谢!

标签: pythonstringtext

解决方案


num = 0

被覆盖

for num in list1.readlines(): 

num2+=1

被覆盖

for num2 in list2.readlines(): 

read/readlines 将返回一个字符串/列表。在你的情况下,我猜这些变量被意外覆盖了——在循环结构中选择不同的变量名,程序应该可以正常工作。


推荐阅读