Что такое симметричное число в Python? Объяснение и примеры!

Симметричное число в Python - это число, которое остается неизменным при чтении его справа налево или слева направо. Другими словами, это число, которое выглядит одинаково, если его перевернуть задом наперёд. Например, число 121 - это симметричное число, так как оно читается одинаково и слева, и справа. Вот пример кода, который проверяет, является ли число симметричным:


def is_symmetric(number):
    number = str(number)
    return number == number[::-1]

# Пример использования функции
print(is_symmetric(121))  # Вывод: True
print(is_symmetric(123))  # Вывод: False

Детальный ответ

Что значит симметричное число в Python?

Симметричное число в Python - это число, которое выглядит одинаково при чтении его слева направо и справа налево. Например, числа 121, 1331 и 4554 являются симметричными числами.

Как проверить, является ли число симметричным в Python? Давайте рассмотрим несколько подходов.

1. Метод перевода числа в строку

Один из способов проверить, является ли число симметричным, заключается в преобразовании числа в строку и сравнении его с обратной версией этой строки. Если они совпадают, то число симметрично.


def is_symmetric(number):
    num_str = str(number)
    reverse_str = num_str[::-1]
    return num_str == reverse_str

# Пример использования
num = 1221
if is_symmetric(num):
    print("Число", num, "является симметричным")
else:
    print("Число", num, "не является симметричным")
  

2. Метод получения обратного числа

Еще один способ определить, является ли число симметричным, заключается в получении обратного числа и сравнении его с исходным числом. Если они равны, то число симметрично.


def is_symmetric(number):
    reverse_num = 0
    temp_num = number
    
    while temp_num > 0:
        digit = temp_num % 10
        reverse_num = reverse_num * 10 + digit
        temp_num = temp_num // 10
    
    return number == reverse_num

# Пример использования
num = 12321
if is_symmetric(num):
    print("Число", num, "является симметричным")
else:
    print("Число", num, "не является симметричным")
  

3. Метод работы с половинами числа

Еще один способ проверить, является ли число симметричным, заключается в разделении числа на две половины и сравнении их. Если обе половины равны, то число симметрично.


def is_symmetric(number):
    num_str = str(number)
    length = len(num_str)
    half_length = length // 2
    
    first_half = num_str[:half_length]
    second_half = num_str[-half_length:]
    
    return first_half == second_half[::-1]

# Пример использования
num = 456654
if is_symmetric(num):
    print("Число", num, "является симметричным")
else:
    print("Число", num, "не является симметричным")
  

4. Метод использования рекурсии

Рекурсивный подход также может быть использован для определения симметричности числа. Мы можем сравнивать первую и последнюю цифры числа, а затем сокращать число, удаляя эти цифры, и повторять этот процесс, пока не останется одна цифра или если число не прекратит быть симметричным.


def is_symmetric(number):
    num_str = str(number)
    
    if len(num_str) <= 1:
        return True
    
    if num_str[0] == num_str[-1]:
        return is_symmetric(num_str[1:-1])
    
    return False

# Пример использования
num = 9876789
if is_symmetric(num):
    print("Число", num, "является симметричным")
else:
    print("Число", num, "не является симметричным")
  

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

Видео по теме

Основы Python #3: числа

Простые числа (Python)

12 Задача: Определить число четное или нечетное при помощи Python

Похожие статьи:

🔍 Где лежит питон? 🐍 Открываем тайну местонахождения 🤫

Python: Как создать список из цикла? 🐍🔄

✍️ Как создать цикл текста в Python: подробное руководство

Что такое симметричное число в Python? Объяснение и примеры!

🔍 Как проверить существование индекса в списке Python

Как в питоне не равно нулю? 🐍⚡️

Как досрочно остановить программу в python? 🐍😱