"""
2. Подсчитать, сколько было выделено памяти под переменные в ранее разработанных программах в рамках
первых трех уроков.
Проанализировать результат и определить программы с наиболее эффективным использованием памяти.
Примечание: Для анализа возьмите любые 1-3 ваших программы или несколько вариантов кода для одной и той же задачи.
Результаты анализа вставьте в виде комментариев к коду. Также укажите в комментариях версию Python и разрядность
вашей ОС.
Это задание №3 из ДЗ№2: Сформировать из введенного числа обратное по порядку входящих в него цифр и вывести
на экран. Например, если введено число 3486, то надо вывести число 6843. """

import sys

current_number = input('Здравствуйте! Введите число: ')  # Переменная, являющаяся числом, вводимым пользователем.
reversed_current_number = current_number[::-1]  # Переменная, является обратным числом, которое вводит пользователь.
print('Введённое Вами число ', current_number, 'в "обратном порядке" (расположение букв реверсом)',
      reversed_current_number)

summary_byte_size_current_number = sys.getsizeof(current_number)
summary_byte_size_reversed_current_number = sys.getsizeof(reversed_current_number)
summary_byte_size = summary_byte_size_current_number + summary_byte_size_reversed_current_number

print(f'Первая переменная занимает {summary_byte_size_current_number} байт/байтов памяти')
print(f'Вторая переменная занимает {summary_byte_size_reversed_current_number} байт/байтов памяти')
print(f'Обе переменные занимают {summary_byte_size} байт/байтов памяти')

# Анализ: представлены переменные 'summary_byte_size_current_number' и 'summary_byte_size_current_number'.
# Подсчитывается количество памяти для этих переменных как отдельно, так и суммарно.
# 1. При введении числа 0 для работы скрипта обе переменные занимают по 50 байтов.
# 2. При введении числа 10 для работы скрипта обе переменные занимают по 51 байту.
# 3. При введении числа 100 для работы скрипта обе переменные занимают по 52 байта.
# 4. При введении числа 1000 для работы скрипта обе переменные занимают по 53 байта.
# 5. При введении числа 10000 для работы скрипта обе переменные занимают по 54 байта.
print(f'Вывод: при увеличении разрядности входных данных на порядок объём занимаемой памяти увеличивается на 1 байт')

print(f'Версия программы Python - 3.8')
print(f'Операционная система Windows 10 64-разрядная')