Python 查找文本文件中大于某个数字的数字量

Python 查找文本文件中大于某个数字的数字量,python,string,text,Python,String,Text,因此,基本上对于这项任务,我们得到了两个文本文件,其中包含许多汽车的MPG列表,一个文件用于城市的MPG,另一个是高速公路上的MPG。除了“if”语句后面的语句外,我对所有代码都有权利。Python一直这么说: Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> GasGuzzlers("carModelData_city", "carModelData_hwy"

因此,基本上对于这项任务,我们得到了两个文本文件,其中包含许多汽车的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 
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
汽油车(“卡莫代尔达塔城市”、“卡莫代尔达塔公路”)
文件“”,第7行,在汽油喷嘴中
num+=1
TypeError:必须是str,而不是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)
def汽油喷嘴(列表1、列表2): num=0 num2=0 以open(list1,“r”)作为list1: 对于list1.readlines()中的num: 如果(浮动(数值)<22.0): num+=1 将open(list2,“r”)作为list2: 对于list2.readlines()中的num2: 如果(浮动(num2)<27.0): num2+=1 打印(计数1,计数2) 这是我教授的指示:

“编写一个函数,用于计算测试车型中耗油量大的车辆的数量–对于本程序,将“耗油量大的车辆”定义为城市或公路的耗油量小于22英里/加仑或小于27英里/加仑的车辆。”

请帮忙!我很快就要得到它了,我试着用许多不同的方法将float(num)转换成字符串,但似乎都不起作用

提前谢谢

num = 0

for num in list1.readlines(): 
for num2 in list2.readlines(): 

for num in list1.readlines(): 
for num2 in list2.readlines(): 

read/readlines将返回一个字符串/列表。在您的情况下,我猜变量被意外重写了-在循环构造中选择不同的变量名,程序应该可以正常运行。

尝试在
if(float(num)<22.0):
上面添加
num=float(num)
,并将该行更改为
if(num<22.0):
(在这两个for循环中)。在if条件中将字符串“本地”转换为浮点,但它不会持续到下一行,在该行中,您尝试向string.def GasGuzzlers(list1,list2):num=0 num2=0,open(list1,r)为list1:for list1中的num10:if(float(num10)我把它改成了这个,但是print返回了非常大的数字,我知道这是不对的,因为包含数字的文件甚至没有那么多。它返回了“199678709”print(count1,count2)我想这应该是:print(num,num2)还有,有很多变量重叠-,open(list1,r)作为list1:“-”作为list1”“as fd1”(这样就不会丢失表示文件名的list1的原始值)