... из однофамильцев найдет только первого которого встретит. Например есть Сергеев Андрей и Сергеев Иван. Андрея при нажатии кнопки "удалить контакт" удалит , а Ивана просто не найдет.
Пришлось переписывать. В таком варианте новых проблем не будет?
Весь код
https://pastebin.com/vVwmGzBg
Функция которую вешаем на кнопку "Удалить контакт" на строке 167
Зря ты нейросети так хейтишь, они тебе правильные вещи говорят. К тому же у тебя плохой стиль написания кода - у тебя куча работы со списками, всё это можно (и нужно) написать в одну строку
про этот явный баг молчали гробовым молчанием
А ты кем себя возомнил, чтобы каждый твой баг разбирали. Здесь проект Ответов на вопросы, а не твой личный блог.
Ваша функция to_del_contact() удаляет контакты по имени и фамилии, причём, она удалит только первого найденного контакта с таким именем и фамилией.
Если в вашей записной книжке есть несколько контактов с одинаковыми именем и фамилией, то функция удалит только одного из них. Если вы хотите удалить всех контактов с таким именем и фамилией, то нужно модифицировать эту функцию так, чтобы она удаляла все вхождения, а не только первое.
Также стоит отметить, что при большой базе данных этот код будет работать неэффективно, так как он целиком считывает файл, затем перезаписывает его. Для больших баз данных следует использовать более эффективную структуру данных и/или методы работы с данными.
В текущем виде скрипт корректно работает при условии, что у каждого контакта уникальное сочетание имени и фамилии. Если условие уникальности не выполнено, возникают описанные вами проблемы. Для решения проблемы можно использовать уникальный идентификатор для каждого контакта, например, его номер телефона при условии что он уникален для каждого контакта.
Код работает, но его можно улучшить
Например код использует линейный поиск для нахождения совпадений, если записей будет много то это уже не хорошо, во вторых вместо текстового файла для хранения лучше база данных, я уже молчу что некоторые части код можно оптимизировать, вынеся их в отдельные функции и прочее. В целом код рабочий, но сыроват