我正在试图找出如何在我的程序中处理这个类型错误。我在这个函数中得到一个TypeError
# Function will get the distances between current location and next package's delivery address.
def find_distance(current_address, package_address):
if find_address(package_address) > find_address(current_address):
current_distance = distance_data[find_address(package_address)][
find_address(current_address)]
else:
current_distance = distance_data[find_address(current_address)][
find_address(package_address)]
return current_distance
该函数调用另一个函数find_address()
def find_address(address):
i = 0
while i < len(address_data):
if address == address_data[i][1]:
return i
else:
i = i + 1
Traceback (most recent call last):
File "C:\Users\DeNyus Keys\PycharmProjects\C950\main.py", line 21, in <module>
start_trucks(timedelta(hours=-0))
File "C:\Users\DeNyus Keys\PycharmProjects\C950\trucks.py", line 32, in start_trucks
run_routes(truck1, time)
File "C:\Users\DeNyus Keys\PycharmProjects\C950\trucks.py", line 48, in run_routes
new_distance = find_distance(current_location, package_address) # Calls find_distance() function
File "C:\Users\DeNyus Keys\PycharmProjects\C950\trucks.py", line 77, in find_distance
if find_address(package_address) > find_address(current_address):
TypeError: '>' not supported between instances of 'NoneType' and 'int'
函数的find_address()返回一个int,它是包的ID号,所以我不知道'Nonetype'来自哪里。有什么想法吗?非常感谢你们的帮助。我希望我输入了足够的代码来理解这个问题
失败的原因是您的
address_data
没有传递的package_address
的条目,因此如果address_data
返回中缺少任何地址,您可以做的是表示无法计算距离在稍微学习使用调试器之后,我发现正在使用的包地址是
"2010 West 500 S"
,而它所引用的CSV加载程序中的地址是"2010 West 500 South"
。一旦我将其重命名为完全匹配,程序就会运行相关问题 更多 >
编程相关推荐