
Это на питоне Указаны фамилии и номера телефонов n=10 человек в записной книжке. Составить
программу, которая определяет, есть ли в записной книжке: а) телефон определенного лица, и, если есть, печатает номер ее телефона; б) информация о человеке с заданным номером телефона, и, если есть, вывести фамилию этого человека.

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

Ответ:
а)
n = [['Попов', '+799966666'], ['Иванов', '+799963266'], ['Сидоров', '+799126666'], ['Онегин', '+799966326'],
['Пушкин', '+799966662'], ['Блок', '+742966666'], ['Толстой', '+799921666'], ['Афанасьев', '+799966132'],
['Есенин', '+731266666'], ['Лермонтов', '+799932666']]
a = input('Введите Фамилию: ')
x = 0
for i in range(len(n)):
if n[i][0] == a:
print('Номер телефона:', n[i][1])
x = 1
break
if x == 0:
print('Такого человека нет в базе')
б)
n = [['Попов', '+799966666'], ['Иванов', '+799963266'], ['Сидоров', '+799126666'], ['Онегин', '+799966326'],
['Пушкин', '+799966662'], ['Блок', '+742966666'], ['Толстой', '+799921666'], ['Афанасьев', '+799966132'],
['Есенин', '+731266666'], ['Лермонтов', '+799932666']]
a = input('Введите Фамилию: ')
x = 0
for i in range(len(n)):
if n[i][1] == a:
print('Фамилия:', n[i][0])
x = 1
break
if x == 0:
print('Такого номера нет в базе')
БОНУС
Решение, которое работает и для а, и для б:
import re
n = [['Попов', '899966666'], ['Иванов', '+799963266'], ['Сидоров', '+799126666'], ['Онегин', '+799966326'],
['Пушкин', '+799966662'], ['Блок', '+742966666'], ['Толстой', '+799921666'], ['Афанасьев', '+799966132'],
['Есенин', '+731266666'], ['Лермонтов', '+799932666']]
a = input('Введите номер или фамилию: ')
x = 0
if re.match(r'^[0-9_.+]', a):
for i in range(len(n)):
if n[i][1] == a:
print('Фамилия:', n[i][0])
x = 1
break
if x == 0:
print('Такого номера нет в базе')
else:
for i in range(len(n)):
if n[i][0] == a:
print('Номер:', n[i][1])
x = 1
break
if x == 0:
print('Такого человека нету в базе')



Для решения данной задачи можно использовать словарь, где ключом будет являться номер телефона, а значением - фамилия человека.
Вначале создадим словарь, содержащий информацию о людях:
```python phonebook = { "Иванов": "1234567890", "Петров": "9876543210", "Сидоров": "5555555555", # и так далее... } ```
Теперь, для реализации функции а), которая проверяет наличие телефона определенного лица и выводит его номер, можно написать следующий код:
```python def find_phone(name): for person, phone in phonebook.items(): if person == name: return phone return "Такого человека нет в записной книжке"
name = input("Введите фамилию человека: ") phone = find_phone(name) print(phone) ```
Функция `find_phone` проходит по словарю `phonebook` и сравнивает каждую фамилию с заданной. Если фамилия найдена, функция возвращает номер телефона, иначе возвращает сообщение об отсутствии такого человека.
Для реализации функции б), которая выводит фамилию человека с заданным номером телефона, можно использовать следующий код:
```python def find_name(phone): for person, number in phonebook.items(): if number == phone: return person return "Такой номер телефона не найден"
phone = input("Введите номер телефона: ") name = find_name(phone) print(name) ```
Функция `find_name` проходит по словарю `phonebook` и сравнивает каждый номер телефона с заданным. Если номер найден, функция возвращает фамилию человека, иначе возвращает сообщение о том, что такой номер не найден.
Таким образом, программа будет выполнять поиск по фамилии и выводить номер телефона, а также выполнять поиск по номеру телефона и выводить фамилию человека.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili