我目前停留在第22行,如果我输入15公里不是15英里就不会继续朝这是精神疾病在15公里转换为英里elif
声明。
我曾尝试切换键和值,并一直试图找出代码是如何工作的逻辑。
distance = {}
km_miles = input("Type distasnce and unit (miles or km)\n>>>")
value, key = km_miles.split(" ")
distance[key] = float(value)
if distance[key] == distance['miles']:
print("Printing from miles to kilometers")
print(miles_to_km(distance[key]))
elif distance[key] == distance['km']:
print("Printing from kilometers to miles")
print(km_to_miles(distance[key]))
else:
print("try again")
我很期待它做的是,如果我输入15公里,距离它的意思进入elif distance[key] == distance['km']
不只是失败的线22。
如果我不输入任一英里或公里。然后,我希望它打印出“再试一次”。
你的逻辑流程在这里肯定丢失。要调试您的问题,请尝试打印distance
语句之前if/else
变量,你会看到有什么不妥的地方。
如果您需要检查的单位,只是做
value, unit = km_miles.split(" ")
if unit == 'miles':
...
elif unit == 'km':
...
你并不需要的东西的空间只有split()
复杂化,获得的价值和他们键入即单位(公里或英里):
def km_to_miles(x):
print("{} km to miles method".format(x))
def miles_to_km(x):
print("{} miles to km method".format(x))
distance = {}
km_miles = input("Type distasnce and unit (miles or km)\n>>>")
value, key = km_miles.split(" ")
if key == 'km' or key == 'miles':
if key == 'miles':
print("Printing from miles to kilometers")
print(miles_to_km(value))
elif key == 'km':
print("Printing from kilometers to miles")
print(km_to_miles(value))
else:
print("try again")
else:
print("Error: Invalid unit, Please try again")
注:我还添加了检查,以确保单位是无论是在
km
或miles
OUTPUT:
Type distasnce and unit (miles or km)
>>>15 km
Printing from kilometers to miles
15 km to miles method
None