#python
#python
Вопрос:
Я работал над этим слишком долго. Это должно быть просто, и я пробовал много разных комбинаций, однако я продолжаю ошибаться в коде и понятия не имею, почему. Он отлично работает, когда у меня ручной ввод, но при отправке появляется ошибка.
подсказка с вопросом: Напишите программу, которая хранит словарь имен и соответствующие им телефонные номера.
Неоднократно запрашивайте у пользователя имя. Затем выполните одно из следующих трех действий, в зависимости от того, что они вводят:
Если они ничего не вводят, выйдите из программы. Если они вводят имя, которое существует в качестве ключа в вашем словаре, просто выведите соответствующий номер телефона. Если они вводят имя, которого НЕТ в вашем словаре в качестве ключа, попросите пользователя ввести номер телефона, а затем поместите имя и номер телефона в ваш словарь. Распечатайте окончательный словарь.
мой код:
phoneBook = {}
name = input("Please enter a name(or press enter to end input): ")
while name != '':
if not name in phoneBook:
number = input("Please enter number: ")
print "Phone number: " number
phoneBook[name] = number
name = input("Please enter a name(or press enter to end input): ")
if name in phoneBook:
print phoneBook[name]
if name == '':
break
print phoneBook
Ожидаемый результат:
Phone number: 1234
Phone number: 5678
{'Tracy': '5678', 'Karel': '1234', 'Steve': '9999'}
Мой результат:
Phone number: 1234
Phone number: 5678
Phone number: 9999
1234
Phone number: 9999
5678
Phone number: 9999
{'Tracy': '9999', 'Karel': '9999', 'Steve': '9999'}
Ответ №1:
вы также должны получить доступ к ключам словаря для проверки существования имени:
if not name in phoneBook.keys():
Ответ №2:
phoneBook = {}
name = input("Please enter a name(or press enter to end input): ")
while name != '':
if not name in phoneBook.keys():
number = input("Please enter number: ")
phoneBook[name] = number
print "Phone number: " number
name = input("Please enter a name(or press enter to end input): ")
else:
print phoneBook[name]
print phoneBook
Попробуйте приведенный выше код.
Если имени нет в телефонной книге, то присвоите имени номер, который phoneBook[name] = number
должен быть в if not name in phoneBook.keys():
блоке. А затем введите другое имя в том же блоке if.