如何将用户输入和字典索引相匹配



我想确定用户要从哪个货币中提取:

account = {"USD": 10, "HKD": 10000}
for index,key in account.keys():
print(index,".",key)

输出:

1.美元

2.香港特别行政区

currency_selected = int(input("Please select currency: ")
if currency_selected == index:
input("How much do you want to withdraw?")
else:
print("Error! Please try again")

当我输入1/2来选择货币时,它总是转到错误消息。如何将int用户输入与货币编号相匹配?

这是因为你使用字典!如果你想使用字典并检测用户想要的货币,你需要一个在数学中被称为Surjective function的函数(你可以在这里阅读不同类型的数学函数(。在这个函数中,您应该将不同的输入状态对应到您的一种货币。像这样的东西会很好,我认为:

currencies = {"1.USD" : "your value", "2.HKD" : "your value"}
usercurrency = input("Enter the currency that you want to use: ")
usercurrencyedited = usercurrency.lower()
for curr in currencies:
if usercurrencyedited in currencies[curr]:
print("You preference is " + curr)

在这段代码中,我们检查了数字和字符串。注意,我使用了usercurrencyedited = usercurrency.lower(),因为用户可能不会输入大写的货币。

好运:D

新编辑:如果你只想检查字典中的索引,而不使用字典关键字中的任何数字,你可以使用以下代码:

currencies = {"USD" : "your value", "HKD" : "your value"}
userinput = input("Enter your preferred currency.")
currentindex = 1
for curr in currencies:
if currentindex == int(userinput):
print("Your preference is " + curr)
break
currentindex += 1

最新更新