Вы используете Python 2.7 или Python 3?
Если вы используете 2.7, то вам необходимо использовать raw_input()
, поскольку input()
эквивалентно eval(raw_input())
, что вы, вероятно, не хотят:
name = raw_input("enter a name: ")
Если вы используете 3, то print
потребности чтобы быть функцией:
print(dict[name])
...
print("no data")
Однако, общая для обеих версий, некоторые исправления должны применяться.
Прежде всего, вам не нужно использовать has_key()
. Я уверен, что в настоящее время это несуществующей, так что самый вещий способ обойти это сделать:
if name in percentage:
Easy право? Затем вам нужно распечатать значение, и для этого синтаксис: dictionary[key] = value
. У вас, похоже, есть это, но вы забыли ссылаться на свой собственный словарь и вместо этого использовали встроенный тип dict
. Оно должно быть:
print percentage[name]
Таким образом, все вместе (Python 2.7):
percentage = {'a':75.5, 'b':73, 'c':78, 'd':68, 'e':68}
name = raw_input("enter a name: ")
if percentage.has_key(name):
print percentage[name]
else:
print "no data"
Вы действительно используете 'dict [name]' вместо 'percent [name]'? – TigerhawkT3
Какую версию Python вы используете? Посмотрите этот ответ: http://stackoverflow.com/a/21122817/4897175. – antonioduarte
Предполагая, что вы запрашиваете ключ из правильного словаря, вы хотите использовать 'get'. 'df.get (key)' вернет значение из словаря, если оно присутствует, иначе оно вернет None. Вы также можете указать возвращаемое значение, если ключ не найден, например. 'df.get (ключ, 'NA')'. – Alexander