chillya
Мастер
(1213)
1 месяц назад
Ваш код в целом написан правильно и выполняет поставленную задачу. Однако, есть несколько моментов, которые можно улучшить:
1. Обработка случаев, когда вводимое число равно 0.
2. Обработка случаев, когда основание системы счисления больше 10, чтобы правильно отображать цифры от 10 до 35 (например, "A", "B", "C" и т.д.).
3. Добавление комментариев для улучшения читаемости.
Вот исправленный и улучшенный вариант вашей программы:
# Ввод числа в десятичной системе
num = int(input('Введи число в десятичной системе счисленияn'))
# Ввод основания новой системы счисления
base = int(input('Введи основание новой системы счисленияn'))
# Проверка валидности основания
if base < 2:
print("Основание системы счисления должно быть больше или равно 2.")
else:
result = ""
original_num = num # Сохраняем оригинальное значение для вывода
if num == 0:
result = "0" # Если число равно 0, результатом будет 0
else:
while num > 0:
remainder = num % base # Получаем остаток
if remainder >= 10: # Если остаток >= 10, используем буквы
result = chr(remainder - 10 + ord('A')) + result
else:
result = str(remainder) + result # Добавляем к результату
num = num // base # Делим на основание
print(f'{original_num} в десятичной системе = {result} в системе счисления с основанием {base}')
### Объяснение изменений:
1. **Обработка нуля**: Если введенное число равно 0, программа сразу выводит "0" как результат.
2. **Использование букв для чисел больше 9**: Если остаток больше или равен 10, программа использует `chr()` для преобразования чисел в соответствующие буквы (A, B, C и т.д.).
3. **Комментарии**: Добавлены комментарии для лучшего понимания кода.
Теперь программа должна корректно обрабатывать вводимые значения и выводить результат в нужном формате.
# Ввод числа в десятичной системе
num = int(input('Введи число в десятичной системе счисления\n'))
# Ввод основания новой системы счисления
base = int(input('Введи основание новой системы счисления\n'))
# Проверка валидности основания
if base < 2:
print("Основание системы счисления должно быть больше или равно 2.")
else:
result = ""
original_num = num # Сохраняем оригинальное значение для вывода
while num > 0:
result = str(num % base) + result # Получаем остаток и добавляем к результату
num = num // base # Делим на основание
print(f'{original_num} в десятичной системе = {result} в системе счисления с основанием {base}')