python罗马数字转换,Python3.5实现的罗马数字转换成整数功能示例
本文實(shí)例講述了Python3.5實(shí)現(xiàn)的羅馬數(shù)字轉(zhuǎn)換成整數(shù)功能。分享給大家供大家參考,具體如下:
問(wèn)題概述:
給定一個(gè)羅馬數(shù)字 ,將羅馬數(shù)字轉(zhuǎn)換成整數(shù)。
如羅馬數(shù)字I,II,III,IV,V分別代表數(shù)字 1, 2, 3, 4, 51,2,3,4,5。
首先要來(lái)了解一下羅馬數(shù)字表示法,基本字符有 7 個(gè):I、V、X、L、C、D、M,分別表示 1、5、10、50、100、500、1000。
在構(gòu)成數(shù)字的時(shí)候,有下列規(guī)則:
1、相同的數(shù)字連寫(xiě),所表示的數(shù)等于這些數(shù)字相加得到的數(shù),如:III = 3;
2、小的數(shù)字在大的數(shù)字的右邊,所表示的數(shù)等于這些數(shù)字相加得到的數(shù), 如:VIII = 8;XII = 12;
3、小的數(shù)字,(限于Ⅰ、X和C)在大的數(shù)字的左邊,所表示的數(shù)等于大數(shù)減小數(shù)得到的數(shù),如:IV = 4;IX = 9;
4、正常使用時(shí),連寫(xiě)的數(shù)字重復(fù)不得超過(guò)三次。
輸入格式
輸入一個(gè)羅馬數(shù)字字符串,其對(duì)應(yīng)的數(shù)字為 s (1≤s≤3999)。
輸出格式
輸出對(duì)應(yīng)的整數(shù) s。
以下是詳細(xì)代碼:
# -*- 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: # 如果無(wú)需省略i
pass
elif i <= len(strs)-2: # 如果還沒(méi)有遍歷到最后一位:(len-1-1)
if chart[strs[i]] < chart[strs[i+1]]: # 如果前一位對(duì)應(yīng)值小于后一位的
result += chart[strs[i+1]] - chart[strs[i]] # 進(jìn)行減操作
omit = i+1 # 省略下一位字符
else:
result += chart[strs[i]]
else: # 遍歷到最后一位
result += chart[strs[i]]
print(result)
測(cè)試運(yùn)行結(jié)果:
如有更好更簡(jiǎn)潔的想法,請(qǐng)留言
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
總結(jié)
以上是生活随笔為你收集整理的python罗马数字转换,Python3.5实现的罗马数字转换成整数功能示例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql 攻击密码_MySQL用户Ro
- 下一篇: 如何修改7 服务器配置,centos7修