首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >geopy距离的格式无效

geopy距离的格式无效
EN

Stack Overflow用户
提问于 2019-10-25 21:09:01
回答 1查看 272关注 0票数 0

我从python开始,我看到我的带有坐标的城市没有被使用,这使我出现了格式错误,因为它没有打印城市的坐标。

代码语言:javascript
复制
from geopy.distance import geodesic


ville1 = input("Entrez la ville de départ : ")
ville2 = input("Entrez la ville d'arrivée : ")


Paris = (48.864716, 2.349014)
Bordeaux = (44.835241, -0.573289)
Marseille = (43.301631, 5.373301)
Lyon = (45.760346, 4.837617)
Toulouse = (43.606225, 1.459017)
Nice = (43.714026, 7.259467)
Nantes = (47.226733, -1.560644)
Montpellier = (43.606620, 3.869740)
Strasbourg = (48.561351, 7.753844)
Rennes = (48.105276, -1.688280)

print(ville1)
print(ville2)
print(geodesic(ville1, ville2).kilometers)

在控制台上

代码语言:javascript
复制
Entrez la ville de départ : Bordeaux
Entrez la ville d'arrivée : Paris
Bordeaux
Traceback (most recent call last):
Paris
  File "D:/Documents/Ynov/Projet_Camion/calcul.py", line 11, in <module>
    print(geodesic(ville1, ville2).kilometers)
  File "C:\Users\me\AppData\Roaming\Python\Python37\site-packages\geopy\distance.py", line 389, in __init__
    super(geodesic, self).__init__(*args, **kwargs)
  File "C:\Users\me\AppData\Roaming\Python\Python37\site-packages\geopy\distance.py", line 164, in __init__
    kilometers += self.measure(a, b)
  File "C:\Users\me\AppData\Roaming\Python\Python37\site-packages\geopy\distance.py", line 410, in measure
    a, b = Point(a), Point(b)
  File "C:\Users\me\AppData\Roaming\Python\Python37\site-packages\geopy\point.py", line 156, in __new__
    return cls.from_string(arg)
  File "C:\Users\me\AppData\Roaming\Python\Python37\site-packages\geopy\point.py", line 391, in from_string
    "Failed to create Point instance from string: unknown format."
ValueError: Failed to create Point instance from string: unknown format.
EN

回答 1

Stack Overflow用户

发布于 2019-10-25 21:14:53

定义ville1ville2的输入被读取为字符串。Python不知道您希望这些字符串引用您定义的变量。

一种更好的方法是将位置放在字典中,并像这样访问它们:

代码语言:javascript
复制
from geopy.distance import geodesic

ville1 = input("Entrez la ville de départ : ")
ville2 = input("Entrez la ville d'arrivée : ")

locations = {
    'Paris': (48.864716, 2.349014),
    'Bordeaux': (44.835241, -0.573289),
    'Marseille': (43.301631, 5.373301),
    'Lyon': (45.760346, 4.837617),
    'Toulouse': (43.606225, 1.459017),
    'Nice': (43.714026, 7.259467),
    'Nantes': (47.226733, -1.560644),
    'Montpellier': (43.606620, 3.869740),
    'Strasbourg': (48.561351, 7.753844),
    'Rennes': (48.105276, -1.688280),
}

print(ville1)
print(ville2)
print(geodesic(locations[ville1], locations[ville2]).kilometers)

上面的一个例子:

代码语言:javascript
复制
Entrez la ville de départ : Paris
Entrez la ville d'arrivée : Nice
Paris
Nice
685.9425720999892
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58559138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档