import phonenumbers from phonenumbers import carrier, geocoder def check_phone_number(phone_number): """ Проверява държавата и града на телефонен номер Args: phone_number: Телефонен номер във формат +359XXXXXXXXX """ try: # Парсване на номера parsed_number = phonenumbers.parse(phone_number, None) # Проверка дали номерът е валиден if not phonenumbers.is_valid_number(parsed_number): print("Невалиден телефонен номер!") return # Получаване на информация location = geocoder.description_for_number(parsed_number, "bg") operator = carrier.name_for_number(parsed_number, "bg") country = geocoder.country_name_for_number(parsed_number, "bg") # Извеждане на резултатите print(f"\n{'='*50}") print(f"Телефонен номер: {phone_number}") print(f"{'='*50}") print(f"Държава: {country}") print(f"Локация/Град: {location if location else 'Няма информация'}") print(f"Оператор: {operator if operator else 'Неизвестен'}") print(f"{'='*50}\n") except phonenumbers.NumberParseException: print("Грешка при парсване на номера. Използвайте формат +359XXXXXXXXX") # Примери за използване if __name__ == "__main__": # Примерни номера - замени с реални test_numbers = [ "+359888123456", # България "+442071234567", # Великобритания "+12025551234", # САЩ ] for number in test_numbers: check_phone_number(number) # Или въведи номер ръчно print("Въведи телефонен номер (формат: +359XXXXXXXXX) или 'q' за изход:") while True: user_input = input("> ") if user_input.lower() == 'q': break check_phone_number(user_input)