我希望将数字转换为罗马数字表示法。我有一个列表,看起来像这样:
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;
我知道这段代码是错误的,但可能不是思路有问题。首先,我想要循环遍历字符串 number 中的每个字符 'char'。为此,我还定义了一个变量 'i',将其设置为0。这个变量 'i' 将在 while 循环中使用,只要 i 小于列表 conv 的长度就应该继续执行。然后,我想要比较整数 char 是否等于列表 conv 中索引 [i][0](因为我总是想要比较列表中的数字部分,所以是 0,而 i 则是因为我想要遍历每种可能性)。如果它们匹配,那么我想要做一些事情,我不知道我想要在这一步做什么,但我想要打印出一些东西。在这个步骤中,我想要让程序构建罗马符号,并增加 i。否则只增加 i。我必须让程序理解,12表示为XII等等。你有什么想法来解决这个问题吗?谢谢 :)
print("hello" * 5)
并观察结果。@HenryLynx - Robᵩ