罗马数字转换python_Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
本文实例讲述了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简单实现阿拉伯数字和罗马数字的互相转换功能示例相关推荐
- 各种进制转换最简单总结(附任意进制转换代码)
A进制转B进制 A=10? 1.A=10->A除B取余至余数为0,将余数从下往上连接即可: 2.A!=10->A从右往左第i位*A的i次方(i从0开始)转成10进制: 16和8之间的转换要 ...
- 罗马数字转换成数字java_C趣味编程百例(31)将阿拉伯数字转换为罗马数字
95.将阿拉伯数字转换为罗马数字 将大于0小于1000的阿拉伯数字转换为罗马数字.阿拉伯数字与罗马数字的对应关系如下: *问题分析与算法设计 题目中给出了阿拉伯数字与罗马数字的对应关系,题中的数字转换 ...
- 罗马数字转换python_Python练习【3】【罗马数字转换/查
题目1:罗马数字转换 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000例如,罗马数字2写做 II, ...
- python罗马数字转换阿拉伯数字_Python将阿拉伯数字转换为罗马数字的方法
本文实例讲述了Python将阿拉伯数字转换为罗马数字的方法.分享给大家供大家参考.具体实现方法如下: def numToRomanNum(Num): """digital ...
- 将阿拉伯数字转换为罗马数字
将阿拉伯数字转换为罗马数字 将大于0小于1000的阿拉伯数字转换为罗马数字.阿拉伯数字与罗马数字的对应关系如下: *问题分析与算法设计 题目中给出了阿拉伯数字与罗马数字的对应关系,题中的数字转换实际上 ...
- Java小案例----阿拉伯数字转换为罗马数字
在日常需求中,常常会将数字转换为另外一种形式,如阿拉伯数字转中文的,或者是转成支票中出现的中文数字,还有转成英语的,其实原理都大同小异,本次的需求是,是将用户输入的阿拉伯数字转换为罗马数字(长度不能超 ...
- 阿拉伯数字转为罗马数字
:: Arab2Roman 阿拉伯数字转为罗马数字 @echo off setlocal EnableDelayedExpansion :test if "%~0"==" ...
- 在word表格中设置页码,封面不设置页码,目录页设置罗马数字,正文部分设置阿拉伯数字页码
在word表格中设置页码,封面不设置页码,目录页设置罗马数字,正文部分设置阿拉伯数字页码 目录 在word表格中设置页码,封面不设置页码,目录页设置罗马数字,正文部分设置阿拉伯数字页码 1.在[开始] ...
- 送给大家一个把阿拉伯数字与罗马数字互换的代码 -.- 仅支持4000以下的转化
基本字符 I V X L C D M 相应的阿拉伯数字表示为 1 5 10 50 100 500 1000 1>相同的数字连写.所表示的数等于这些数字相加得到的数.如:Ⅲ=3: 2>小的数 ...
- 将阿拉伯数字变成罗马数字 案例
键盘录入一个字符串, 要求1:长度为小于等于9 要求2:只能是数字,将内容变成罗马数字 下面是阿拉伯数字跟罗马数字的对比关系: Ⅰ-1.Ⅱ-2.Ⅲ-3.Ⅳ-4.Ⅴ-5.Ⅵ-6.Ⅶ-7.Ⅷ-8.Ⅸ-9 ...
最新文章
- ZOJ 1743 Concert Hall Scheduling(DP)
- iOS PUSH实现的简单步骤
- 原生js-Ajax jq-Ajax集结
- 'htmlentities(): charset `utf8' not supported, assuming utf-8'
- ISE_FIFO_IP核接口测试(一)
- 验证手机号码的JS方法
- yagmail群发邮件
- 200多个引流推广渠道及技巧,全网引流布局
- 使用POI为Excel添加数据有效性验证
- DSP TMS320C5509A 控制DDS AD9854芯片进行FSK调制
- 【OpenCV】 ⚠️高手勿入! 半小时学会基本操作 24⚠️ SIFT 算法
- android备份:apk安装过程及原理,备份已安装应用的apk包技术实现方案
- Android实现百度地图定位(墨雪亲测)
- 最优化理论笔记及期末复习(《数值最优化》——高立)
- 随机森林(RFC)实现模型优化与特征提取
- 从程序员到项目经理:认识项目经理
- 如何实现一个丝滑的点击水波效果
- 5篇关于特征嵌入的研究论文推荐
- 显卡烤机软件furmark详细烤机教程
- 小米手环APP 失败:Failure [INSTALL_FAILED_OLDER_SDK] 原因
热门文章
- 【日用】获取pfx证书序列号
- android studio代码格式化设置,Android studio kotlin代码格式化操作
- 什么是“决策表”?什么是“决策树”?
- Centos7.5部署MySQL5.7基于GTID主从复制+并行复制+半同步复制+读写分离(ProxySQL) 环境- 运维笔记 (完整版)...
- vue自定义指令—directive详解
- 启动Nginx报错nginx: [emerg] getpwnam(
- python中的大数据品牌运营专业公司_大数据专业有哪些就业岗位?
- 解决安装mysql“staring the server“问题
- Eclipse中查看源代码
- yum rpm 命令