首页 > 精选要闻 > 严选问答 >

Python简单实现阿拉伯数字和罗马数字的互相转换p

更新时间:发布时间:

问题描述:

Python简单实现阿拉伯数字和罗马数字的互相转换p,有没有人能看懂这个?求帮忙!

最佳答案

推荐答案

2025-05-20 15:40:20

在编程的世界里,阿拉伯数字(如 1, 2, 3)和罗马数字(如 I, II, III)是两种不同的表达方式,但它们都承载着数值的意义。今天,我们将用Python语言来实现这两种数字之间的相互转换。

阿拉伯数字转罗马数字

首先,我们来编写一个函数,将阿拉伯数字转换为罗马数字。罗马数字的基本符号包括:I(1)、V(5)、X(10)、L(50)、C(100)、D(500)、M(1000)。根据规则,当较小的数字出现在较大的数字之前时,表示减法;否则表示加法。

```python

def int_to_roman(num):

val = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]

syb = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]

roman_num = ''

i = 0

while num > 0:

for _ in range(num // val[i]):

roman_num += syb[i]

num -= val[i]

i += 1

return roman_num

```

罗马数字转阿拉伯数字

接下来,我们实现另一个函数,用于将罗马数字转换回阿拉伯数字。这个过程需要遍历罗马数字字符串,并按照规则计算总和。

```python

def roman_to_int(s):

roman_dict = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}

total = 0

prev_value = 0

for char in s[::-1]:

current_value = roman_dict[char]

if current_value < prev_value:

total -= current_value

else:

total += current_value

prev_value = current_value

return total

```

测试代码

为了验证我们的函数是否正确,我们可以写一些简单的测试代码:

```python

if __name__ == "__main__":

测试阿拉伯数字转罗马数字

print(int_to_roman(1987)) 输出: MCMLXXXVII

print(int_to_roman(3999)) 输出: MMMCMXCIX

测试罗马数字转阿拉伯数字

print(roman_to_int("MCMLXXXVII")) 输出: 1987

print(roman_to_int("MMMCMXCIX")) 输出: 3999

```

通过上述代码,我们可以轻松地在阿拉伯数字和罗马数字之间进行转换。这种方法不仅简单易懂,而且具有较强的实用性,可以应用于各种需要这种功能的实际场景中。希望这篇文章对你有所帮助!

免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。