如何将用户输入作为函数中的参数传递



我正试图编写一个程序来查找两个状态之间的距离(以英里为单位(。它应该提示用户从预定列表中选择一个状态。然后,它应该识别状态及其相应的坐标。然后程序应输入坐标作为函数"0"的参数;distance _ calc";并生成以英里为单位的距离。我很难找到一种方法来连接用户输入、我创建的元组以及函数";distance _ calc";。我是python的新手,所以任何帮助都将不胜感激。

#assign coordinates to location variable
washington_dc = (38.9072, 77.0369)
north_carolina = (35.7596, 79.0193)
florida = (27.6648, 81.5158)
hawaii = (19.8968, 155.5828)
california = (36.7783, 119.4179)
utah = (39.3210, 111.0937)
print('This Program Calculates The Distance Between States In Miles')
def distance_calc(p1, p2):
long_1 = p1[1] * math.pi/180
lat_1 = p1[0] * math.pi/180
long_2 = p2[1] * math.pi/180
lat_2 = p2[0] * math.pi/180
dlong = long_1 - long_2
dlat = lat_1 - lat_2
a = math.sin(dlat / 2) ** 2 + math.cos(lat_1) * math.cos(lat_2) * (math.sin(dlong / 2) ** 2)
c = 2 * 3950 * math.asin(math.sqrt(a))
result = round(c)
print(result,"miles")
return result

使用字典将状态名称映射到坐标

states = {
"washington_dc": (38.9072, 77.0369),
"north_carolina": (35.7596, 79.0193),
"florida": (27.6648, 81.5158),
"hawaii": (19.8968, 155.5828),
"california": (36.7783, 119.4179),
"utah": (39.3210, 111.0937)
}
while True:
state1 = input("First state: ")
if state1 in states:
break;
else:
print("I don't know that state, try again")
while True:
state2 = input("Second state: ")
if state2 in states:
break;
else:
print("I don't know that state, try again")
distance_calc(states[state1], states[state2])

您可以使用dict进行用户输入

state_dict={1:washington_dc,2:north_carolina,3:florida,4:hawaii,5:california,6:utah}
states = ['forwashington_dc','north_carolina','florida','hawaii','california','utah']
a = [ print("Choose id {} for {}".format(states.index(st)+1,st)) for st in states]
p1 = int(input("Choose Desired States id at Start :"))
p2 = int(input("Choose Desired States id at Start :"))
print("You Have Choosen Starting Point :",states[p1])
print("You Have Choosen End Point :",states[p2])
distance_calc(state_dict[p1], state_dict[p2])
states = {
"washington_dc": (38.9072, 77.0369),
"north_carolina": (35.7596, 79.0193),
"florida": (27.6648, 81.5158),
"hawaii": (19.8968, 155.5828),
"california": (36.7783, 119.4179),
"utah": (39.3210, 111.0937)
}
while True:
state1 = input("First state: ")
if state1 in states:
break;
else:
print("I don't know that state, try again")
while True:
state2 = input("Second state: ")
if state2 in states:
break;
else:
print("I don't know that state, try again")
distance_calc(states[state1], states[state2])

相关内容

  • 没有找到相关文章

最新更新