Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/120: Рейтинг темы: голосов - 120, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 28.05.2019
Сообщений: 1
1

Телефонная книга

28.05.2019, 18:05. Показов 24417. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. нужно выполнить несколько заданий в тел.книги. уже сломал всю голову. обьясните кто может
1.Редактирование контакта по имени. Функция находит контакт по имени, и просит ввести новые имя и телефон, после чего обновляет контакт в contacts.
2. сделать проверку на то, что контакт с указанным именем уже существует. Выводите сообщение и не добавляйте контакт, если это так.
3.Написать отдельную функцию, в которой будет находиться главный цикл. Вызывайте её для запуска программы.
4.Написать отдельную функцию для обработки команд пользователя (выбор действия в зависимости от команды)
Вот сам код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
contacts = [
    {
        "name": "John",
        "phone": "123456"
    },
    {
        "name": "Jane",
        "phone": "564321"
    },
    {
        "name": "Bob",
        "phone": "+1234"
    },
]
 
FORMAT_STR = '{:<15} {:>12}'
 
 
def list(contacts):
    print(FORMAT_STR.format('Name', 'Phone'))
    for contact in contacts:
        print(FORMAT_STR.format(
            contact['name'],
            contact['phone']
        ))
 
 
 
def find(contacts):
    print("Введите имя контакта:")
    name = input("> ")
 
    for contact in contacts:
        if contact['name'] == name:
            print(FORMAT_STR.format(
                contact['name'],
                contact['phone']
            ))
            break
    else: 
        print("Контакт не найден")
 
def delete(contacts):
    print("Введите контакт: ")
    name = input('> ')
    for contact in contacts:
        if contact['name'] == name:
            print("Вы хотите удалить контакт %s (yes/no)?: " % name )
            name_del = input('> ')
            if name_del == 'yes':
               contacts.remove(contact)
               print("Вы удалили контакт %s " % name)
 
 
 
def add(contacts):
    print("Введите имя контакта:")
    name = input("> ")
    print("Введите телефон контакта:")
    phone = input("> ")
    new_contact = {
        'name': name,
        'phone': phone
    }
    contacts.append(new_contact)
    
    print('Контакт сохранён')
 
print("Добро пожаловать в телефонную книгу.")
print("""Введите команду:
* list - чтобы посмотреть список контактов.
* find - найти контакт по имени
* add  - добавить контакт
* del  - удаление контакта
* edit - изменение контакта 
* exit - выход""")
 
while True:
    print("\nВведите команду: ")
    command = input('> ')
    if command == 'list':
        list(contacts)
    elif command == 'find':
        find(contacts)
    elif command == 'add':
        add(contacts)
    elif command == 'del':
        delete(contacts)
    elif command == 'edit': 
        edit(contacts)       
    elif command == 'exit':
        break
    else:
        print("Неизвестная команда")
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2019, 18:05
Ответы с готовыми решениями:

Телефонная книга
Здравствуйте уважаемые, прошу вашей помощи,в весьма тривиальной задаче, которая тем не менее...

Телефонная книга
Вася решил записать телефоны всех своих друзей, чтобы потом автоматизировать поиск нужного номера....

Телефонная книга
Телефонная книга. Коля стал замечать, что иногда в его телефонную книгу попадают номера в...

Телефонная книга
Вводятся номера телефонов в формате: +7xxxxxxxxxx +6xxxxxxxxxx +7xxxxxxxxxx +5xxxxxxxxxx ......

5
301 / 159 / 87
Регистрация: 16.04.2018
Сообщений: 239
28.05.2019, 22:46 2
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def edit(contacts):
    print("Введите имя контакта: ")
    name = input("> ")
    for index, contact in enumerate(contacts):
        if contact['name'] == name:
            print("Введите новое имя контакта: ")
            new_name = input("> ")
            print("Введите новый телефон контакта: ")
            new_phone = input("> ")
            contact_update = {
                'name': new_name,
                'phone': new_phone
            }
            contacts[index] = contact_update
            index = -1
            break
    if index == -1:
        print("Контакт изменен")
    else:
        print("Контакт не найден")
0
0 / 0 / 0
Регистрация: 27.05.2019
Сообщений: 2
30.05.2019, 13:09 3
IT Attractor , gruppa Python 4?
0
1728 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,694
Записей в блоге: 6
30.05.2019, 15:51 4
T-312, Это просто учебный код? Ведь изменения в телефонной книге , как и сама телефонная книга нигде не сохраняются. При новом запуске кода вновь будет формироваться телефонная книга с содержанием в первоначальном варианте.
0
4941 / 3293 / 1141
Регистрация: 21.03.2016
Сообщений: 8,078
30.05.2019, 16:12 5
Цитата Сообщение от T-312 Посмотреть сообщение
Редактирование контакта по имени. Функция находит контакт по имени, и просит ввести новые имя и телефон
так это не редактирование а создание нового контакта. редактирование это когда меняется одно из полей либо имя либо номер
1
2 / 2 / 0
Регистрация: 11.01.2021
Сообщений: 12
12.01.2021, 18:04 6
Зачем такой большой код? Можно более коротко написать:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
telephone_book = {}
for _ in range(int(input())):
    numbers_name = input().split()
    if numbers_name[1] not in telephone_book:
        telephone_book[numbers_name[1]] = []
        telephone_book[numbers_name[1]].append(numbers_name[0])
    else:
        telephone_book[numbers_name[1]].append(numbers_name[0])
for _ in range(int(input())):
    names = input()
    if names not in telephone_book:
        print('Нет в телефонной книге')
    else:
        print(' '.join(telephone_book[names]))
0
12.01.2021, 18:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2021, 18:04
Помогаю со студенческими работами здесь

Телефонная книга
Помогите пожалуйста!!!!:help: Создать телефонную книгу, где идентификатором является имя человека....

Телефонная книга
import pickle import sys address_book_data = {} #создаем словарь def...

Телефонная книга
В следующей программе я создаю телефонную книгу в которую пользователь может вводить и создавать...

Телефонная база
Отсортируйте список телефонов по возрастанию и используя сортировку выбором. Телефон задан в виде...

Телефонная книга
Вася решил записать телефоны всех своих друзей, чтобы потом автоматизировать поиск нужного номера....

Телефонная книга
Помогите дописать,туплю что-то как дальше делать. //Условие задачи: //Создайте приложение...

Телефонная книга С++
Написать телефонную книгу, требования: a.ФИО b.Номер телефона c.Email Функции: a)- добавления...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru