Нужно вывести в print изначально введённое значение n
Пишется код для перевода числа из десятичной системы счисления в любую другую. Вот такой:
def y():
n = int(input('Число по основанию 10: '))
a = int(input('Основание системы, в которую нужно перевести число: '))
b = ''
while n > 0:
b = str(n % a) + b
n = n // a
print(n, ' по основанию', a, 'равно ', b)
y()
while True:
flag = input('Введите 1, чтобы посчитать ещё: ')
if flag == '1':
y()
else:
break
В целом всё работает, но команда print должна выводить изначально введённое значение n, но она всегда выводит значение аргумента n равным 0:
0 по основанию .. равно ..
Ответы (1 шт):
Автор решения: MarianD
→ Ссылка
В этой части кода
while n > 0:
b = str(n % a) + b
n = n // a
вы сначала изменяете значение в переменной n, пока цикл не завершится - и он совершится, когда оно будет равно нулю.
Затем вы этот нуль выводите:
print(n, ' по основанию', a, 'равно ', b)
Чтобы этого не произошло, сохраните оригинальное значение переменной n в другой переменной и выводите его. Например так:
orig_n = n
while n > 0:
b = str(n % a) + b
n = n // a
print(orig_n, ' по основанию', a, 'равно ', b)