Информатика, вопрос задал saigulr , 1 год назад

Можете пожалуйста, ответить в чем у меня ошибка в Python


saigulr: dict = {k:(input("введите к:")),
x:(input("введите к:")),
b:(input("введите к:"))

}
y = (int(k) * int(x) + int(b))
print(y)

Ответы на вопрос

Ответил KnowsUser1
1

Ответ:

Ключами словаря не могут быть переменными. Точнее ключи словаря могут быть переменными, но эта переменная всё равно сохраняет ссылку на изначальный объект. То есть представим такой код

x = 'test'

dct = {x: 'not test'}

print(x)

print(dct[x])

вывод будет такой:

>>> test

>>> not test

Так как переменная x содержит ссылку на стоковый объект "test", и в то же время является ключом словаря dct, то при выводе на экран самой переменной будет выведено её значение, а если передать её как ключ словаря, то будет выведено значение словаря по этому ключу. Кстати, если вместе переменной x самостоятельно написать её значение, то вывод не изменится

print(dct['test'])

>>> 'not test'

Так же в вашем коде допущена ошибка объявления имени словаря. dict - ключевое слово интерпретатора, означающее класс Dictionary - словарь. Вы не можете использовать это слово в качестве имени.

Так же вы пытаетесь присвоить переменной Y значение, используя переменные x, k и b. Они не существуют в пространстве имён вашей программы. Если вы хотите использовать именно словарь, то используйте следующий код:

dct = { 'k' : int(input()), 'x' : int(input()), 'b' : int(input()) }

y = dct['k'] * dct['x'] + dct['b']

Либо, вы можете запросить ввод значений k, x, и b как переменных не используя словарь

k = int(input())

x = int(input())

b = int(input())

или

k, x, b = map(int, input().split())

Объяснение:


saigulr: спасибо.
Новые вопросы