У меня проблемы со словарями в python - PullRequest
0 голосов
/ 20 июня 2020

Я пишу код с Python. Я определил много словарей и функцию. Использую словарь в функции. Имя словаря - это параметр в функции. Я хочу, чтобы пользователь ввел, какой словарь использовать, но я не знаю, как это сделать. Я попытался получить имя словаря с именем в строке кода ниже, но не

name=input()
bank("name") 
error is:
Traceback (most recent call last):
  File "............", line 47, in <module>
    banka("hesap")
  File "...................", line 18, in banka
    print("merhaba",hesap['ad'])
TypeError: string indices must be integers

Ответы [ 3 ]

1 голос
/ 20 июня 2020

Это часть вашего кода:

hesap['ad']

Согласно ошибке, hasep - это строка, а не словарь. Таким образом, вы можете помещать только целые числа в квадратные скобки.

0 голосов
/ 20 июня 2020

Может быть, попробуйте сделать это:

dict1={...}
dict2={...}

def bank(x):
     if x=="dict1":
         usedict=dict1
     elif x=="dict2":
         usedict=dict2
     else:
         print("No dictionary found with input given")
     ## write your program using usedict
x=input("enter which dictionary to use")
bank(x)

Помните, если вы хотите использовать словарь usedict и вне функции, используйте global usedict внутри функции

0 голосов
/ 20 июня 2020

Возможно, вы могли бы сделать что-то вроде этого

dictionary1 = {}
dictionary2 = {}
user_input = input("Enter 'dictionary1' for dictionary 1 or enter 'dictionary2' for dictionary 2")
if user_input ==  "dictionary1":
    bank(user_input)

elif user_input == "dictionary2":
    bank(user_input)
else:
    print("unknown command")

Также для вашего кода, когда вы используете функцию банка, вы помещаете переменную 'name' в речевые знаки. Если вы хотите ввести имя переменной в банк функций, не добавляйте речевые знаки. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...