使用罗马数字输入和输出的整数子集类
romanclass的Python项目详细描述
“罗马”对象作为二进制整数存储在计算机中,
但它以罗马数字显示。
(从技术角度来说,它是内置类int的一个子集,
使用返回罗马数字字符串的str()方法。)
[灵感请参见PEP 313]
此模块具有与mark pilgrim的roman.py模块兼容的.toroman()和.fromroman()方法,但具有更大的范围、更宽容的解析器,并允许构造第一类Roman对象。
罗马对象的行为非常类似于python中内置的十进制对象,
它们可以加、减、乘或除,结果将是
同一类的另一个对象。
因此程序员可以说:
>>>将RomanClass导入为Roman
>;>two=罗马。罗马(2)
>;>;五=罗马。罗马('v')
>;>>打印(2+5)
计算机将打印:
七
此模块使用Unicode字符支持0<;=n<;600000范围内的数字,
并有一个可选的.tounicoderoman()方法,该方法将输出真正的unicode
i v x l c d m的字符点(而不是它们看起来相似的ascii值)
并将i到xii的点输出为单个unicode代码点。
.toroman()方法[和str()函数]将输出与ascii兼容的
值的字符串<;=3999。
字符串“nulla”[拉丁语表示“nothing”]将以零值输出。
超出范围的值将引发RomanClass.OutOfRangeError
格式错误的罗马数字输入字符串将在.fromRoman()或初始化罗马对象时引发RomanClass.InvalidRomanNumeralError。
caesarcalc.py,一个简单的四功能罗马计算器作为测试/演示提供。
但它以罗马数字显示。
(从技术角度来说,它是内置类int的一个子集,
使用返回罗马数字字符串的str()方法。)
[灵感请参见PEP 313]
此模块具有与mark pilgrim的roman.py模块兼容的.toroman()和.fromroman()方法,但具有更大的范围、更宽容的解析器,并允许构造第一类Roman对象。
罗马对象的行为非常类似于python中内置的十进制对象,
它们可以加、减、乘或除,结果将是
同一类的另一个对象。
因此程序员可以说:
>>>将RomanClass导入为Roman
>;>two=罗马。罗马(2)
>;>;五=罗马。罗马('v')
>;>>打印(2+5)
计算机将打印:
七
此模块使用Unicode字符支持0<;=n<;600000范围内的数字,
并有一个可选的.tounicoderoman()方法,该方法将输出真正的unicode
i v x l c d m的字符点(而不是它们看起来相似的ascii值)
并将i到xii的点输出为单个unicode代码点。
.toroman()方法[和str()函数]将输出与ascii兼容的
值的字符串<;=3999。
字符串“nulla”[拉丁语表示“nothing”]将以零值输出。
超出范围的值将引发RomanClass.OutOfRangeError
格式错误的罗马数字输入字符串将在.fromRoman()或初始化罗马对象时引发RomanClass.InvalidRomanNumeralError。
caesarcalc.py,一个简单的四功能罗马计算器作为测试/演示提供。