Как я могу сопоставить ввод пользователя с индексом словаря? - PullRequest
0 голосов
/ 13 апреля 2020

Я хочу определить, из какой валюты пользователь хочет вывести деньги:

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

вывод:

1.USD

2.HKD

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 для выбора валюты, это всегда go к сообщению об ошибке. Как я могу сопоставить ввод пользователя int с номером валюты?

1 Ответ

0 голосов
/ 13 апреля 2020

Это из-за того, что вы используете словарь! Если вы хотите использовать словарь и определять желаемую пользователем валюту, вам понадобится функция, которая называется Сюръективная функция в математике (Вы можете прочитать о различных типах математических функций здесь ) , В этой функции вы должны соответствовать различным состояниям ввода одной из ваших валют. Что-то вроде этого было бы неплохо, я думаю:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...