我正在做一个大的计划,做帝国和公制测量转换。我从英里和公里开始,遇到了第一个要问的问题。我收到了一个重复的第一个选定问题的请求,我有一个帝国和米制问题的第二个问题的请求要问。我应该只问英里或公里,而不是两个
结束重复问题的唯一方法是删除我在问题中选择的索引号周围的引号,如def processing function中所示,如果choice==“1”:,则相应的问题重复
def main():
distance_intro()
choice = question_m_i()
processing(choice)
distM = metric()
distK = imperial()
miles_to_Imperial(distM)
miles_to_Metric(distM)
kilometer_to_Metric(distK)
kilometer_to_Imperial(distK)
specials(distK, distM)
def distance_intro():
print()
print()
dist = 0
print("This program will convert metric into \
imperial or the inverse.\n" \
"Please do not use a comma")
print()
def question_m_i():
while True:
choice = ()
print("Please choose a function:")
print(" 1, for Metrics;")
print(" 2, for Imperial;")
choice = input("--> ", )
if choice[0] >= "1" and choice[0] <= "2" and len(choice) == 1:
break
print("Choice must be, between 1-2, not ", choice + ".")
print("Try again.")
print()
return choice
def processing(choice):
for garbage in choice:
if choice[0] == "1":
metric()
else:
if choice[0] == "2":
imperial()
def metric():
distM = input("Please enter a distance for Miles: ")
print()
distM = float(distM)
return distM
def imperial():
distK = input("Please enter a kilometre distance for its conversion: ")
print()
distK = float(distK)
return distK
我尝试过使用许多不同的方法来编写这个程序,这样我只会收到英里或公里的请求。我的结果仍然是这样的,第一个问题被重复,然后第二个问题的其他测量也被问。根据所选功能,程序应只要求输入英里或公里
下面是我收到的打印件。我想知道我的错误在哪里,所以要改正它
此程序将公制转换为英制或英制 请不要用逗号
请选择以下测量值之一
1表示公制,或 帝国2 --&燃气轮机;1个
请输入英里距离:1
请输入英里距离:1
请为其转换输入公里距离:2
你们有谁知道怎么解决这个问题吗
我注意到question\m\u I()函数中的eval(list\u of\u measurements[int(choice\m\u I)-1])。这没有任何意义,它没有分配给变量或打印。当第一次调用metric()时,它在main()中赋值
相关问题 更多 >
编程相关推荐