Python 查找文本文件中大于某个数字的数字量
因此,基本上对于这项任务,我们得到了两个文本文件,其中包含许多汽车的MPG列表,一个文件用于城市的MPG,另一个是高速公路上的MPG。除了“if”语句后面的语句外,我对所有代码都有权利。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"
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的原始值)