如何更改Django默认主页为自定义主页,更改Djago默认主页为自定义主页,这是开始网页的第一步。......
如何用PYTHON解决罗马数字转整数问题
用PYTHON解决罗马数字转整数问题
工具/原料
- PYTHON
方法/步骤
打开JUPYTER NOTEBOOK,新建一个PY文档。
I = 1
I I
我们可以定义变量,但是数据多的时候不现实。
d = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}
s = "II"
result = 0
for i in s:
result = result d[i]
print(result)
我们先定义一个字典,然后逐个相加。
s = "XXVII"
result = 0
for i in s:
result = result d[i]
print(result)
s = "IV"
result = 0
for i in s:
result = result d[i]
print(result)
但是IV这里是错误的,这是罗马数字的特点。
s = "IV"
result = 0
d = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}
if s == "IV":
print(4)
elif s == "IX":
print(9)
elif s == "XL":
print(40)
elif s == "XC":
print(90)
elif s == "CD":
print(400)
elif s == "CM":
print(900)
else:
for i in s:
result = result d[i]
print(result)
这些就是特殊的时候,但是这样写很复杂。
s = "MCMXCIV"
#M = 1000, CM = 900, XC = 90 and IV = 4
#1994
result = 0
d = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}
dd = {"IV": 4, "IX": 9, "XL": 40, "XC": 90, "CD": 400, "CM": 900}
if s in dd:
print(dd[s])
else:
for i in s:
print(i,end=" ")
result = result d[i]
print(result)
查看一下,再设置多一个字典,但是会遇到遍历重复的问题。
s = "MCMXCIV"
#M = 1000, CM = 900, XC = 90 and IV = 4
#1994
result = 0
d = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}
dd = {"IV": 4, "IX": 9, "XL": 40, "XC": 90, "CD": 400, "CM": 900}
for i in range(len(s)):
if s[i:i 2] in dd:
result = result dd[s[i:i 2]]
s = s.strip(s[i:i 2])
else:
result = result d[s[i]]
print(result)
可能会有同学觉得可以减去不要的字符串,但是遍历的i还是会按照顺序遍历的,所以不可行。
s = "MCMXCIV"
d = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}
result = 0
for i in range(len(s)):
if i (len(s)-1) and d[s[i]] d[s[i 1]]:
result = result - d[s[i]]
else:
result = result d[s[i]]
print(result)
其实只要左边的数字比右边的小,那就减去左边的小的数字就可以了。
s = "MCMXCIV"
#M = 1000, CM = 900, XC = 90 and IV = 4
#1994
result = 0
d = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}
dd = ["IV", "IX", "XL", "XC", "CD", "CM"]
for i in range(len(s)):
if s[i:i 2] in dd:
result -= d[s[i]]
else:
result = d[s[i]]
print(result)
也可以设置多个列表方便理解,但是会相对比较缓慢。
注意事项
- 注意罗马数字的规则
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
- 详细阅读
-
python中关于单/双引号和转义引号的区别详细阅读
python中关于单/双引号和转义引号的区别,ytho中单/双引号的作用是将引号中间的符号以字符串的形式传递,而在ytho中它们两个的功能是一样的,只不过在遇到转义引号的时候,两者的使用才有所区别,现......
2023-03-16 318 python
- 详细阅读