Python 整数到罗马数

Python 整数到罗马数,python,python-2.7,int,roman-numerals,Python,Python 2.7,Int,Roman Numerals,我在互联网上看到了这段未完成的代码: class py_solution: def int_to_Roman(self, num): val = [ 1000, 900, 500, 400, ?????, ????, ? ] syb = [ "M", "CM", "D", "CD", "C", "XC", "L", "XL",

我在互联网上看到了这段未完成的代码:

class py_solution:  
def int_to_Roman(self, num):  
    val = [  
        1000, 900, 500, 400,  
       ?????,
       ????,
        ?
        ]  
    syb = [  
        "M", "CM", "D", "CD",  
        "C", "XC", "L", "XL",  
        "X", "IX", "V", "IV",  
        "I"  
        ]  
    roman_num = ?
    i = ? 
    while  ???:  
        for _ in range(???):  
            roman_num += ???
            num -= ???
        i += ???  
    return ???
我对如何解决这个问题感到好奇。(我是Python新手,这不是我的家庭作业

所以创建val和syb,用于将int值映射到roman值。
然后,你一个接一个地取int值,检查其中有多少适合你的输入值,然后把这个罗马num数加到结果中,然后从输入中去掉这个附加值,重复这个过程,直到达到零。

@JuanMiGabarron我看到了这篇文章,但是有没有办法用这里显示的方法来完成这个代码(帖子中的代码太长,让我感到困惑。)有没有一种方法可以像我的问题中那样处理模块?想更改问号吗?正如你所看到的,代码几乎是一样的。你的val是ints,你的syb是nums。你的roman_num是结果,你的num是输入。我会修复代码谢谢,你说的修复是什么意思?是的,谢谢,但当我尝试运行代码时,它什么都没有。我会d
int到Roman(num)
def int_to_Roman(num):
   val = (1000, 900,  500, 400, 100,  90, 50,  40, 10,  9,   5,  4,   1)
   syb = ('M',  'CM', 'D', 'CD','C', 'XC','L','XL','X','IX','V','IV','I')
   roman_num = ""
   for i in range(len(val)):
      count = int(num / val[i])
      roman_num += syb[i] * count
      num -= val[i] * count
   return roman_num