罗马数字转换器(整数转罗马数字)
本转换器,以1~3999的正整数为限。
看到CSDN“每日一练”(python)题目“罗马数字转整数”的练习题目,就想写个“整数转罗马数字”的练习。
练习题目
罗马数字构造元素
代码
# coding: utf-8
def Roman_units():
'''罗马数字单位'''
units = [
['M', 1000],
['CM', 900],
['D', 500],
['CD', 400],
['C', 100],
['XC', 90],
['L', 50],
['XL', 40],
['X', 10],
['IX', 9],
['V', 5],
['IV', 4],
['I', 1]
] #罗马数字单位列表。
print(f'\n\n\n{"罗马数字构造元素":_^34}\n\n\n')
print(f'{" ":8}{"字符":^10}|{"整数值":^10}\n')
for Roman_s, value in units:
print(f'{" ":12}{Roman_s:8}|{value:>8}\n')
input(f'\n\n{"The End":_^42}\n')
Roman_units()
罗马数字转换器
整数输入排错效果
代码
while True:
try:
integer = int(input(f'\n\n{" ":4}输入整数:'))
if integer < 1 or integer > 3999:
print(f'\n\n\n{"请输入1~3999的整数!":.^35}\n\n\n')
else:
break
except Exception as error:
print(f'\n\n\n{error}\n{"输入错误!请重试。":.^33}\n\n')
输入错误,报错重新输入,直到输入正确正数。
代码
# coding: utf-8
def integer_to_Roman(integer):
'''整数转罗马数字'''
units = [
['M', 1000],
['CM', 900],
['D', 500],
['CD', 400],
['C', 100],
['XC', 90],
['L', 50],
['XL', 40],
['X', 10],
['IX', 9],
['V', 5],
['IV', 4],
['I', 1]
] #罗马数字单位列表。
Roman = [] #初始化罗马数字字符列表。
k = 1
while integer > 0:
#print(f'\n\n整数:{integer}\n循环{k}次。\n\n{Roman}')
k += 1
for Roman_s, value in units:
if integer >= value:
Roman.append(Roman_s)
integer -= value
break
if integer < 1:
break
return ''.join(Roman)
print(f'\n\n\n{"整数转罗马数字":_^35}\n')
while True: #输入整数排错。
try:
integer = int(input(f'\n\n{" ":4}输入整数:'))
if integer < 1 or integer > 3999:
print(f'\n\n\n{"请输入1~3999的整数!":.^35}\n\n\n')
else:
break
except Exception as error:
print(f'\n\n\n{error}\n{"输入错误!请重试。":.^33}\n\n')
print(f'\n\n\n{" ":4}整数{integer}转罗马数字是:\
{integer_to_Roman(integer)}\n\n\n{"The End":_^42}\n')
罗马数字生成器
代码
# coding: utf-8
def show_Roman(n):
s = f"罗马数字(1~{n})"
print(f'\n\n{s:_^38}\n\n\n')
for i in range(1, n + 1):
print(f'{i:>3}:{integer_to_Roman(i):>8}', end = ' ')
if (i)%3 == 0: print()
print(f'\n\n\n{"The End":_^42}\n')
show_Roman(100)
python完整代码
(如果从语句注释不能清楚作用,请评论区留言指教和探讨。🤝)
# coding: utf-8
def integer_to_Roman(integer):
'''整数转罗马数字'''
units = [
['M', 1000],
['CM', 900],
['D', 500],
['CD', 400],
['C', 100],
['XC', 90],
['L', 50],
['XL', 40],
['X', 10],
['IX', 9],
['V', 5],
['IV', 4],
['I', 1]
] #罗马数字单位列表。
Roman = [] #初始化罗马数字字符列表。
k = 1
while integer > 0:
#print(f'\n\n整数:{integer}\n循环{k}次。\n\n{Roman}')
k += 1
for Roman_s, value in units:
if integer >= value:
Roman.append(Roman_s)
integer -= value
break
if integer < 1:
break
return ''.join(Roman)
print(f'\n\n\n{"整数转罗马数字":_^35}\n')
integer = int(input(f'\n\n{" ":4}输入整数:'))
print(f'\n\n\n{" ":4}整数{integer}转罗马数字是:\
{integer_to_Roman(integer)}\n\n\n{"The End":_^42}\n')
def show_Roman(n):
s = f"罗马数字(1~{n})"
print(f'\n\n{s:_^38}\n\n\n')
for i in range(1, n + 1):
print(f'{i:>3}:{integer_to_Roman(i):>8}', end = ' ')
if (i)%3 == 0: print()
print(f'\n\n\n{"The End":_^42}\n')
show_Roman(100)
input()
def Roman_units():
'''罗马数字单位'''
units = [
['M', 1000],
['CM', 900],
['D', 500],
['CD', 400],
['C', 100],
['XC', 90],
['L', 50],
['XL', 40],
['X', 10],
['IX', 9],
['V', 5],
['IV', 4],
['I', 1]
] #罗马数字单位列表。
print(f'\n\n\n{"罗马数字构造元素":_^34}\n\n\n')
print(f'{" ":8}{"字符":^10}|{"整数值":^10}\n')
for Roman_s, value in units:
print(f'{" ":12}{Roman_s:8}|{value:>8}\n')
input(f'\n\n{"The End":_^42}\n')
Roman_units()
我的博文推荐:
- 斐波那契数列(递归实现和for实现)(当前阅读1664)
- 排序数组中查找元素的重复起止位置(当前阅读1200)
- 柱状图中最大矩形(当前阅读1605)
- 电话拨号键盘的字母组合(当前阅读1217)
- 密码强度检测器(当前阅读1669)
- 求列表平衡点(当前阅读1703)
- 字符串统计(当前阅读1903)
- 尼姆游戏(代码优化版)(当前阅读823)
- Hot:尼姆游戏(聪明版首发)(当前阅读3241)
推荐条件
点阅破千
相关文章:
上一篇: 练习:罗马数字转整数
下一篇:

精品文章:
- OPP三大特性:封装中的property
- 通过内置对象理解python'
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
来源:老齐教室