Я хочу конвертировать из чисел в римские обозначения. Я был предоставлен список, который выглядит следующим образом:Преобразование из чисел в латинскую нотацию
conv = [[1000, 'M'], [900, 'CM'], [500, 'D'], [400, 'CD'],
[ 100, 'C'], [ 90, 'XC'], [ 50, 'L'], [ 40, 'XL'],
[ 10, 'X'], [ 9, 'IX'], [ 5, 'V'], [ 4, 'IV'],
[ 1, 'I']]
где вход должен быть целым числом от 0 до 3999 Так что я хочу, чтобы построить функцию, которая принимает аргумент (целое число) и преобразовать его. У меня есть небольшая проблема, решая это. Любая помощь будет оценена по достоинству. Вот как я думаю:
Сначала я хочу немного ввод целого числа, которое я хранить в переменной, поэтому я буду использовать что-то вроде
number = input("Enter a number between 0 and 3999: ")
conv = [[1000, 'M'], [900, 'CM'], [500, 'D'], [400, 'CD'],
[ 100, 'C'], [ 90, 'XC'], [ 50, 'L'], [ 40, 'XL'],
[ 10, 'X'], [ 9, 'IX'], [ 5, 'V'], [ 4, 'IV'],
[ 1, 'I']]
Для последнего шага я хочу использовать 2 петли для решения фактическая проблема. Что выглядит примерно так:
for char in number:
i = 0;
while i < len(conv):
if int(char) == int(conv[i][0]):
print(conv[i][1])
i += 1;
else:
i += 1;
Я знаю, что этот код неправильный, но, возможно, не идея. Сначала я хочу прокрутить каждый символ (символ) в номере строки. Для этого я также определю переменную «i», которую я установил равной 0. Эта переменная «i» будет использоваться в цикле while, который должен выполняться до тех пор, пока i меньше длины списка conv. Затем я хочу сравнить, если целочисленный символ равен целочисленной части conv по индексу [i] [0] (0, потому что я всегда хочу сравнить с числами в списке и i, потому что я хочу перебирать каждую возможность Если они совпадают, то я хочу что-то сделать, я действительно не знаю, что я хочу сделать на этом этапе, но я хотел бы что-то распечатать. На этом этапе я хотел бы сказать программе о создании римской нотации , а также инкрементирование i. Просто добавьте i. Я должен сделать программу понятной, что 12 представлена как XII и т. д. Любые идеи, как я мог бы решить эту проблему. Спасибо :)
Я не понимаю, как ожидается, будет умножаться roman_digit, который представляет собой строку в число roman_digit * (номер/DENOM) –
В Python, можно умножить строку на число. Результатом является повторение строки. Попробуйте 'print (« hello »* 5)' и наблюдайте результат. @HenryLynx –