Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
作者:Together_CZ 发布时间:2021-08-29 08:52:57
标签: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程序设计有所帮助。
来源:https://blog.csdn.net/together_cz/article/details/76725363


猜你喜欢
- 要将深度学习更快且更便捷地应用于新的问题中,选择一款深度学习工具是必不可少的步骤。 TensorFlow是谷歌于2015年11月9日正式开源
- python3.7简单的爬虫,具体代码如下所示:#https://www.runoob.com/w3cnote/python-spider-
- 背景DMicro 诞生的背景,是因为我写了 10 来年的 PHP,想在公司内部推广 Go, 公司内部的组件及 rpc 协
- python之Pyperclip模块下面介绍一下,python中的Pyperclip模块,它的简单又实用,主要用法就2点:1.用于复制剪贴板
- 本人已经在运维行业工作了将近十年,我最早接触Linux是在大二的样子,那时候只追求易懂,所以就选择了Ubuntu作为学习、使用的对象,它简单
- 在 JavaScript 中,可以用 instanceof 来判断一个对象是不是某个类或其子类的实例。比如:// 代码
- 如下所示:hist = model.fit(x,y, epochs=epoch_num, batch_size=32,callbacks=e
- 在使用Python绘制图表前,我们需要先安装两个库文件numpy和matplotlib。Numpy是Python开源的数值计算扩展,可用来存
- 数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之
- 1、PHP中的抽象类PHP 5 支持抽象类和抽象方法。定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么
- 判断一个 list 是否为空传统的方式:if len(mylist): # Do something with my liste
- 简单方法:models.pyclass IceCreamBar(models.Model): title
- InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。下面是已知的两者之间的差别,仅供参考。1.Inn
- 第一章:连接 FTP 服务器并实现文件夹下载① 连接 FTP 服务器如果 FTP 不用用户名密码就直接可以访问,那就是用的默认用户名 Ano
- 第一步:python中安装selenium库和其他所有Python库一样,selenium库需要安装pip install selenium
- 关于F.normalize计算理解动机最近多次看到该方法出现,于是准备了解一下,搜了后发现原来是所谓的L2 norm计算简介函数定义torc
- 什么是mtcnn和facenet1、mtcnnMTCNN,英文全称是Multi-task convolutional neural netw
- 项目结构:源代码:# -*- coding: utf-8 -*-"""@date: 2022/01
- turtle模块概述Python 标准库中有个 turtle 模块,俗称海龟绘图,它提供了一些简单的绘图工具,可以在标准的应用程序窗口中绘制
- 通用判断版本号是否在两者之间,也可以搭配判断是否大于某版本号,小于取反即可PS:需确保版本规范一致,比如都是.号分割的n位版本号 var A