python罗马数字转换,Python3.5实现的罗马数字转换成整数功能示例
本文實例講述了Python3.5實現的羅馬數字轉換成整數功能。分享給大家供大家參考,具體如下:
問題概述:
給定一個羅馬數字 ,將羅馬數字轉換成整數。
如羅馬數字I,II,III,IV,V分別代表數字 1, 2, 3, 4, 51,2,3,4,5。
首先要來了解一下羅馬數字表示法,基本字符有 7 個:I、V、X、L、C、D、M,分別表示 1、5、10、50、100、500、1000。
在構成數字的時候,有下列規則:
1、相同的數字連寫,所表示的數等于這些數字相加得到的數,如:III = 3;
2、小的數字在大的數字的右邊,所表示的數等于這些數字相加得到的數, 如:VIII = 8;XII = 12;
3、小的數字,(限于Ⅰ、X和C)在大的數字的左邊,所表示的數等于大數減小數得到的數,如:IV = 4;IX = 9;
4、正常使用時,連寫的數字重復不得超過三次。
輸入格式
輸入一個羅馬數字字符串,其對應的數字為 s (1≤s≤3999)。
輸出格式
輸出對應的整數 s。
以下是詳細代碼:
# -*- coding:utf-8 -*-
#! python3
chart = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
strs = input()
result = 0
omit = -1 # omit為需省略的字符位
if strs in chart:
print(chart[strs])
else:
for i in range(len(strs)): # 遍歷字符串的每一位:(0,len-1)
if i == omit: # 如果無需省略i
pass
elif i <= len(strs)-2: # 如果還沒有遍歷到最后一位:(len-1-1)
if chart[strs[i]] < chart[strs[i+1]]: # 如果前一位對應值小于后一位的
result += chart[strs[i+1]] - chart[strs[i]] # 進行減操作
omit = i+1 # 省略下一位字符
else:
result += chart[strs[i]]
else: # 遍歷到最后一位
result += chart[strs[i]]
print(result)
測試運行結果:
如有更好更簡潔的想法,請留言
希望本文所述對大家Python程序設計有所幫助。
總結
以上是生活随笔為你收集整理的python罗马数字转换,Python3.5实现的罗马数字转换成整数功能示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 攻击密码_MySQL用户Ro
- 下一篇: class传参 python_Pytho