Python - 使用创建的列表作为参数
Python - Using a created list as a parameter
当我 运行 我的代码时,它告诉我:类型错误:不可排序的类型:str() < float()。我不明白为什么它不允许我比较这两个数字。我正在使用的列表已定义,其中的数字已被重新定义为浮点数,所以我不确定还能做什么。有什么建议吗?
def countGasGuzzlers(list1, list2):
total = 0
CCount = 0
HCount = 0
for line in list1:
if num < 22.0:
total = total + 1
CCount = CCount + 1
for line in list2:
if num < 27.0:
total = total + 1
Hcount = Hcount = 1
print('City Gas Guzzlers: ',CCount)
print('Highway Gas Guzzlers: ',HCount)
print('Total Gas Guzzlers: ',total)
这是我的列表定义。我很确定它没问题,但也许这里也有一些错误?
CityFile = open('F://SSC/Spring 2015/CSC 110/PythonCode/Chapter 8/HW 4/carModelData_city','r')
for line in CityFile:
CityData = CityFile.readlines()
for num in CityData:
numCityData = float(num)
CityList = numCityData
HwyFile = open('F://SSC/Spring 2015/CSC 110/PythonCode/Chapter 8/HW 4/carModelData_hwy','r')
for line in HwyFile:
HwyData = HwyFile.readlines()
for num in HwyData:
numHwyData = float(num)
HwyList = numHwyData
我认为您错误地引用了 num
而不是 line
,后者是 for
循环中的计数器变量,您需要使用 num
作为计数器变量,或在 if
条件中使用 line
。
def countGasGuzzlers(list1, list2):
total = 0
CCount = 0
HCount = 0
for line in list1:
if float(line) < 22.0:
total = total + 1
CCount = CCount + 1
for line in list2:
if float(line) < 27.0:
total = total + 1
Hcount = Hcount = 1
print('City Gas Guzzlers: ',CCount)
print('Highway Gas Guzzlers: ',HCount)
print('Total Gas Guzzlers: ',total)
我看到的另一个问题是您创建列表的方式。问题是您将文件中的每个 num 转换为浮点数,然后将其直接存储在列表变量中,这会导致列表变量实际存储浮点值而不是列表,您需要将每个值附加到列表中,而不是执行 list = num
代码看起来像 -
CityFile = open('F://SSC/Spring 2015/CSC 110/PythonCode/Chapter 8/HW 4/carModelData_city','r')
for line in CityFile:
CityData = CityFile.readlines()
for num in CityData:
numCityData = float(num)
CityList.append(numCityData)
HwyFile = open('F://SSC/Spring 2015/CSC 110/PythonCode/Chapter 8/HW 4/carModelData_hwy','r')
for line in HwyFile:
HwyData = HwyFile.readlines()
for num in HwyData:
numHwyData = float(num)
HwyList.append(numHwyData)
还请确保在这段代码之前将 CityList 和 HwyList 初始化为列表。像下面-
CityList = []
HwyList = []
当我 运行 我的代码时,它告诉我:类型错误:不可排序的类型:str() < float()。我不明白为什么它不允许我比较这两个数字。我正在使用的列表已定义,其中的数字已被重新定义为浮点数,所以我不确定还能做什么。有什么建议吗?
def countGasGuzzlers(list1, list2):
total = 0
CCount = 0
HCount = 0
for line in list1:
if num < 22.0:
total = total + 1
CCount = CCount + 1
for line in list2:
if num < 27.0:
total = total + 1
Hcount = Hcount = 1
print('City Gas Guzzlers: ',CCount)
print('Highway Gas Guzzlers: ',HCount)
print('Total Gas Guzzlers: ',total)
这是我的列表定义。我很确定它没问题,但也许这里也有一些错误?
CityFile = open('F://SSC/Spring 2015/CSC 110/PythonCode/Chapter 8/HW 4/carModelData_city','r')
for line in CityFile:
CityData = CityFile.readlines()
for num in CityData:
numCityData = float(num)
CityList = numCityData
HwyFile = open('F://SSC/Spring 2015/CSC 110/PythonCode/Chapter 8/HW 4/carModelData_hwy','r')
for line in HwyFile:
HwyData = HwyFile.readlines()
for num in HwyData:
numHwyData = float(num)
HwyList = numHwyData
我认为您错误地引用了 num
而不是 line
,后者是 for
循环中的计数器变量,您需要使用 num
作为计数器变量,或在 if
条件中使用 line
。
def countGasGuzzlers(list1, list2):
total = 0
CCount = 0
HCount = 0
for line in list1:
if float(line) < 22.0:
total = total + 1
CCount = CCount + 1
for line in list2:
if float(line) < 27.0:
total = total + 1
Hcount = Hcount = 1
print('City Gas Guzzlers: ',CCount)
print('Highway Gas Guzzlers: ',HCount)
print('Total Gas Guzzlers: ',total)
我看到的另一个问题是您创建列表的方式。问题是您将文件中的每个 num 转换为浮点数,然后将其直接存储在列表变量中,这会导致列表变量实际存储浮点值而不是列表,您需要将每个值附加到列表中,而不是执行 list = num
代码看起来像 -
CityFile = open('F://SSC/Spring 2015/CSC 110/PythonCode/Chapter 8/HW 4/carModelData_city','r')
for line in CityFile:
CityData = CityFile.readlines()
for num in CityData:
numCityData = float(num)
CityList.append(numCityData)
HwyFile = open('F://SSC/Spring 2015/CSC 110/PythonCode/Chapter 8/HW 4/carModelData_hwy','r')
for line in HwyFile:
HwyData = HwyFile.readlines()
for num in HwyData:
numHwyData = float(num)
HwyList.append(numHwyData)
还请确保在这段代码之前将 CityList 和 HwyList 初始化为列表。像下面-
CityList = []
HwyList = []