本文实例讲述了Python实现阿拉伯数字和罗马数字的互相转换功能。分享给大家供大家参考,具体如下:
前面一篇介绍了《Java实现的求解经典罗马数字和阿拉伯数字相互转换问题》,这里来看看Python的实现方法。
题目很简单,如果之前也做过这种题目的话,相信对于什么是罗马数字就不会很陌生了,罗马数字是很古老的计数方法,现在的一些地方还有见到它的使用,下面简单贴两张维基百科的图片简单回顾一下罗马数字:
今天简单实现一下,阿拉伯数字和罗马数字之间的相互转化问题,很简单就不多说了,下面是具体的实现:
#!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:阿拉伯数字和罗马数字的互相转换 ''' def transform_alabo2_roman_num(one_num): ''''' 将阿拉伯数字转化为罗马数字 ''' num_list=[1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1] str_list=["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"] res='' for i in range(len(num_list)): while one_num>=num_list[i]: one_num-=num_list[i] res+=str_list[i] return res def transform_roman_num2_alabo(one_str): ''''' 将罗马数字转化为阿拉伯数字 ''' define_dict={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000} if one_str=='0': return 0 else: res=0 for i in range(0,len(one_str)): if i==0 or define_dict[one_str[i]]<=define_dict[one_str[i-1]]: res+=define_dict[one_str[i]] else: res+=define_dict[one_str[i]]-2*define_dict[one_str[i-1]] return res # #下面这种写法也可以 # for i in range(len(one_str)): # if i > 0 and define_dict[one_str[i]] > define_dict[one_str[i - 1]]: # res -= define_dict[one_str[i - 1]] # res += define_dict[one_str[i]] - define_dict[one_str[i - 1]] # else: # res += define_dict[one_str[i]] # return res if __name__ == '__main__': print '**************将罗马数字转化为阿拉伯数字**************' one_str_list=['DII','XV','MDCLXVI','XII','VIII','XCIX','XII'] for one_str in one_str_list: print one_str,'----->',transform_roman_num2_alabo(one_str) print '**************将阿拉伯数字转化为罗马数字**************' one_num_list=[77,66,55,8,1200,34,65,3,21,99] for one_num in one_num_list: print one_num,'----->',transform_alabo2_roman_num(one_num)
结果如下:
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com
暂无“Python简单实现阿拉伯数字和罗马数字的互相转换功能示例”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。