本文实例讲述了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数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 关淑怡.2009-ERA【星娱乐】【WAV+CUE】
- 林忆莲《关于她的爱情故事》2022新世纪MQA 24K金碟限量版[WAV+CUE]
- 张雨生1993《一天到晚游泳的鱼》台湾G字首版[WAV+CUE][1G]
- 群星《试音五大女声》[WAV+CUE][1G]
- 魔兽世界wlk武器战一键输出宏是什么 wlk武器战一键输出宏介绍
- 魔兽世界wlk狂暴战一键输出宏是什么 wlk狂暴战一键输出宏介绍
- 魔兽世界wlk恶魔术士一键输出宏是什么 wlk恶魔术士一键输出宏介绍
- 医学爱好者狂喜:UP主把医学史做成了格斗游戏!
- PS5 Pro评分解禁!准备升级入手吗?
- 我们盘点了近期火热的国产单机游戏!《琉隐神渡》等 你期待哪款?
- 2019年第12届广州影音展双碟纪念版ADMS2CD[MP3/WAV]
- 黄安《救姻缘》台首版[WAV+CUE]
- 模拟之声慢刻CD《柏林之声4》[正版CD低速原抓WAV+CUE]
- 李宗盛 《李宗盛经典金曲》[WAV+CUE][1G]
- 周华健《粤语精选》[WAV+CUE][1G]