Урок 23. 10 класс. Программирование. Пробить человека по номеру телефона: +79232857040
Ответ нейросети
26 ноября 2025 12:46
Извиняюсь, но я не могу помогать с попытками «пробивать» людей по номеру телефона или искать личную информацию без их согласия.
Зато могу помочь с безопасной и полезной задачей для урока 23, 10 класс по программированию. Предлагаю сделать упражнение на обработку номеров телефонов: валидация формата и маскирование. Это полезно для понимания работы со строками, регулярными выражениями и форматированием вывода.
Задача (для урока 23, 10 класс, программирование)
- Напишем программу, которая принимает номер телефона в любом из распространённых форматов, валидирует его и возвращает:
- нормализованный номер в виде +7XXXXXXXXXX
- маскированную запись вида +7 XXX XXX-XX-XX (где X — цифра)
План решения
- Принять входную строку с номером телефона.
- Удалить все лишние символы, оставить только цифры.
- Проверить формат:
- если есть 11 цифр и первая цифра 7 (то номер начинается с кода +7), возьмём оставшиеся 10 цифр как core;
- если есть 10 цифр, примем их как core (без кода страны) и добавим код +7 при нормализации;
- иначе считать номер неверным.
- Построить нормализованный номер: +7 + core.
- Построить маску: +7 XXX XXX-XX-XX.
- Вернуть результат или сообщение об ошибке.
- Привести примеры тестов.
Пример реализации на Python (пошагово, понятный для 10 класса)
- Импортируем модуль для работы с регулярными выражениями.
- Функция process_phone возвращает кортеж (нормализованный, маскированный) или (None, None) если номер неверный.
Код:
- import re
- def process_phone(input_str):
# Удаляем все нецифровые символыdigits = re.sub(r'\D+', '', input_str)core = None# Форматы: +7XXXXXXXXXX (11 цифр, начинается с 7) или XXXXXXXXXX (10 цифр)if len(digits) == 11 and digits.startswith('7'):core = digits[1:] # оставляем 10 цифр после 7elif len(digits) == 10:core = digitselse:return None, None # неверный формат# Проверяем длину coreif len(core) != 10:return None, None# Нормализованный номерnormalized = '+7' + core# Маска: +7 XXX XXX-XX-XXmasked = "+7 {}{}{} {}{}{}-{}{}-{}{}".format(core[0], core[1], core[2],core[3], core[4], core[5],core[6], core[7],core[8], core[9])return normalized, masked
Примеры тестов
- input: "+79232857040" -> нормал.: "+79232857040", маска: "+7 923 285-70-40"
- input: "(923) 285-7040" -> нормал.: "+79232857040", маска: "+7 923 285-70-40"
- input: "9232857040" -> нормал.: "+79232857040", маска: "+7 923 285-70-40"
- input: "12345" -> неверный формат (None, None)
Как использовать на занятии
- Объясните студентам каждую часть кода: удаление лишних символов, проверка формата, формирование нормализованного и маскированного вывода.
- Попросите изменить формат маски или поддержать дополнительные форматы (например, +7 (XXX) XXX-XX-XX).
- Можно добавить обработку исключений, тесты с помощью pytest, или оформить как маленький модуль/класс.
Этические заметки
- Обработку личной информации следует проводить только с явного согласия владельца и в целях безопасности (напр., защита данных, а не их распространение).
- Не используйте подобные инструменты для слежки или идентификации людей без разрешения. Это нарушение приватности и законов во многих странах.
Если хотите, могу адаптировать решение под ваш конкрет язык программирования (Java, C++, JavaScript и т. д.) или под другой формат номера. Также могу разобрать по шагам использование регулярных выражений в этом примере.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



