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