任何基数的有理数字符串表示
项目描述
目的
这是一个小型库,可以将任意基数的数字转换为可读的字符串值。数字由五个元素表示
一个符号
-1、1或0,视情况而定
整数部分
一系列非负整数,其中每个元素小于基数值
非重复的小数部分
一系列非负整数,其中每个元素小于基数值
重复的小数部分
一系列非负整数,其中每个元素小于基数值
基数
数字的基数,必须是一个大于1的整数。
用法
>>> from justbases_string import * >>> xformer = String(DisplayConfig(), 2) >>> xformer.xform(-1, [1, 0, 1], [], [1, 0], 0) '-101.(10)_2' >>> xformer.xform(0, [], [0, 0], [], 0) '0_2'
如果数字的各个部分不符合必要的约束,则引发异常
>>> xformer.xform(1, [2], [0, 0], [], 0) Traceback (most recent call last): ... >>> xformer.xform(1, [-1], [0, 0], [], 0) Traceback (most recent call last): ...
有大量选项可用于配置字符串结果
>>> digits_config = DigitsConfig(use_letters=False) >>> xformer = String(DisplayConfig(digits_config=digits_config), 1024) >>> xformer.xform(1, [2], [2, 4, 256], [], 0) '2.2~4~256_1024' >>> digits_config = DigitsConfig(use_caps=True) >>> xformer = String(DisplayConfig(digits_config=digits_config), 16) >>> xformer.xform(1, [], [0, 13], [], 0) '0.0D_16'
最后一个参数是显示的值与其表示的值之间的关系
>>> xformer.xform(1, [2], [2, 4, 256], [], Fraction(1, 3)) '< 2.2~4~256_1024'