我正在尝试制作一个简单的Python代码,用罗马数字替换数字。为了做到这一点,我需要得到每个数字的位置,用罗马数字代替它。但是,我的代码似乎不工作。使用if语句
number = range(1,21)
number = list(number)
number = str(number)
for i in number:
for x in i:
if i.index(x) == 0:
if x == "1":
x.replace(x, "X")
elif x == "2":
x.replace(x, "XX")
else:
if x == 1:
x.replace(x, "I")
elif x == 2:
x.replace(x, "II")
elif x == 3:
x.replace(x, "III")
elif x == 4:
x.replace(x, "IV")
elif x == "5":
x.replace(x, "V")
elif x == "6":
x.replace(x, "VI")
elif x == "7":
x.replace(x, "VII")
elif x == "8":
x.replace(x, "VIII")
elif x == "9":
x.replace(x, "IX")
else:
x.replace(x, "")
print number
我怀疑它与我的if语句的工作方式有关,但我不确定。任何意见,将不胜感激。
'x.replace(x,“X”)'你认为这样做了什么? (然后阅读文档并重新评估你对该问题的回答) – njzk2
除了@ njzk2所说的内容之外,前三行还会生成一个长字符串,而不是你想要的字符串列表。尝试在交互式Python提示符中键入'str(list(range(1,21)))'来查看。 –