@Kripke

TypeError: 'tuple' object does not support item assignment не понимаю в чем ошибка?

сам код:
LOOK_UP = 1
ADD = 2
CHANGE = 3
DELETE = 4
QUIT = 5

def main():
birthdays = ()
# инициализация
choice = 0

while choice != QUIT:
choice = get_menu_choice()

if choice == LOOK_UP:
look_up(birthdays)
elif choice == ADD:
add(birthdays)
elif choice == CHANGE:
change(birthdays)
elif choice == DELETE:
delete(birthdays)

def get_menu_choice():
print()
print('Друзья и их дни рождения')
print('------------------------')
print('1. Найти день рождения')
print('2. Добавить новый день рождения')
print('3. Изменить день рождения')
print('4. Удалить день рождения')
print('5. Выйти из программы')
print()

choice = int(input('Введите выбранный пункт: '))
while choice < LOOK_UP or choice > QUIT:
choice = int(input('!!!Выберите выбранный пункт: '))

return choice

def look_up(birthdays):
name = input('ВВедите имя: ')

print(birthdays.get(name, 'Не найдено'))

def add(birthdays):
name = input('Ввдите имя: ')
bday = input('Введите день рождения: ')

if name not in birthdays:
birthdays[name] = bday
else:
print('Эта запись уже существует!')

def change(birthdays):
name = input('Введите имя: ')
if name in birthdays:
bday = input('Введите новый день рождения')

birthdays[name] = bday
else:
print('Это имя не найдено')

def delete(birthdays):
name = input('Введите имя: ')

if name in birthdays:
del birthdays[name]
else:
print('Это имя не найдено')
main()

ОШИБКА:
Traceback (most recent call last):
File "", line 1, in
File "C:\Program Files\JetBrains\PyCharm Edu 2021.1.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
pydev_imports.execfile(filename, global_vars, local_vars) # execute the script
File "C:\Program Files\JetBrains\PyCharm Edu 2021.1.1\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "D:/курсы/Новая папка/2316/main.py", line 72, in
main()
File "D:/курсы/Новая папка/2316/main.py", line 19, in main
add(birthdays)
File "D:/курсы/Новая папка/2316/main.py", line 52, in add
birthdays[name] = bday
TypeError: 'tuple' object does not support item assignment
  • Вопрос задан
  • 805 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
В функции look_up есть строка birthdays.get(name, 'Не найдено'), из которой можно сделать вывод, что в переменной birthdays должен быть словарь. Однако, при вызове функции вы передаёте ей кортеж. У кортежей нет метода get, о чём в ошибке и написано.

Аналогично после вашего исправления вопроса, нельзя присвоить значение ключу, так как у кортежей ключей не бывает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы