名称:hyc库
hyc意为Help you calculate(帮助您计算)
版本号:4.0.0β2测试版
4.0.0β2测试版功能变化不算大,但内部结构有变化
平均版本稳定性:85%以上
该版本稳定性较高,但由于会持续增加功能,稳定性也可能转为α级别
各模块版本稳定性
模块 稳定性 稳定性描述 num
模块98%以上 极高的稳定性,不会存在bug fraction
模块95%以上 较高的稳定性,基本不会存在bug percentage
模块90%以上 较高的稳定性,基本没有bug
本次更新时间:2021年8月21日
- 将
ratio
模块移除,并新建模块percentage
,将fraction
模块的Percentage
类移动至percentage
模块
- 增加了
ratio
模块 (暂时为空)- 增加了
fraction
模块的Percentage
类,用于创建百分数对象- 将
fraction
模块的fraction
分数类重命名,改为Fraction
类,其它无改变
- 修复了少许bug并优化了一些代码
所有被修复的问题
- 修复了当
1<=Fraction()对象<2
时__repr__()
函数无返回值的问题优化的代码
- 在
num
模块的factor()
函数中- 在
fraction
模块Fraction()
类的__repr__()
方法中
- 修复了介绍中不准确的描述
- 对3.2.0β1测试版的代码进行了检测,发现并修复了一些bug
所有被修复的问题
- 修复了
Fraction()
对象作为一个列表被打印时返回[<fraction.fraction object at ...>]
的问题,将__str__()
函数替换为__repr__()
函数
- 将
__float__()
函数自动保留到小数点后第二位的功能 取消了
- 增加了分数计算的 整除
- 分数可以和整数 直接运算,不需要再用
covert()
函数转换,且分数 位置随意,如下3.1.0版本
from hyc.fraction import * from hyc import covert # 表示2分之1加5 a = Fraction(2,1) b = covert(5, Fraction) print(a+b)控制台 5又2分之1
3.2.0β1测试版
from hyc.fraction import * # 表示2分之1加5 a = Fraction(2,1) print(a+5)控制台 5又2分之1
- 增加了比较运算符功能,使分数之间可以进行比较,如下
from hyc.fraction import * a = Fraction(2,1) b = Fraction(3,1) print(a<b, a<=b, a==b, a>b, a>=b, a!=b)控制台 False False False True True True
__str__()
函数修改,改为支持带分数
- 增加了分数计算的 开方计算
- 增加了
fraction
模块的covert()
函数,可让整数和小数直接化为Fraction
类型, 直接和分数进行运算
- 3.0.0正式版正式上线Pypi,相比于3.0.0β1测试版修复了一些
fraction
模块的bug以及进行了一些调整调整内容
- 规范了介绍的一些问题
- 规范了Fraction()类参数的命名
所有被修复的问题
- 修复了
float()
转换和int()
转换错误的问题- 由于出现了bug,移除了
__float__()
方法的rounding
(四舍五入位数) 参数,__float()__
方法改为自动四舍五入到百分位
- 对3.0.0α2测试版的README.md进行了一些调整,修复了介绍不准确、遗漏的问题
- 对3.0.0α2的
num
模块进行了全面测试,修复了一些bug,将3.0.0α2的稳定性提升到β级别所有被修复的问题
- pri_fac函数返回的是
参数='质因数1*质因数2*...'
字符串,在2.0.x版本中则是返回参数='质因数1*质因数2*...*1'
字符串,但是3.0.0α2版本返回的是2.0.x版本的字符串- per_num函数在参数为完全数时返回True,但参数不为完全数时不返回值,于是我们增加了一个
else
分支
- 将Fraction()类中加减乘除需要加
[]
的方法进行了优化,变为了直接计算,如下图所示3.0.0α1测试版
from hyc.fraction import * a = Fraction(2, 1) b = Fraction(5, 1) a + [b]
3.0.0α2测试版
from hyc.fraction import * a = Fraction(2, 1) b = Fraction(5, 1) a + b
fraction
模块代码大重做,移除分数四则运算、约分等内容,添加涵盖四则运算、约分、分数化小数等功能的fraction类- 添加参数注释
- 简介更新
- 添加介绍
- 添加“更新记录”
- 优化系统稳定性
- 优化系统稳定性
- 修复显示bug
- 删除报错
- 删除介绍英文
- 暂无记录
版本稳定性 | 发布 |
---|---|
α测试版 | 仅GitHub |
β测试版 | Pypi(默认下载不会下载)及GitHub |
rc预选发布版本 | Pypi(默认下载不会下载)及GitHub |
正式版 | Pypi及GitHub |
pip install hyc
pip install hyc==4.0.0b1
from hyc import *
from hyc import num
from hyc.num import *
hyc
├─fraction
│ ├─den_di()
│ ├─covert()
│ ├─Percentage()类
│ │ ├─__radd__()加法
│ │ ├─__rsub__()减法
│ │ ├─__rmul__()乘法
│ │ ├─__rtruediv__()除法
│ │ └─__repr__()方法
│ └─Fraction()类
│ ├─opposide()方法
│ ├─red_fr()方法
│ ├─simp_fr()方法
│ ├─__add__()和__radd__()加法
│ ├─__float__()方法(分数化小数并保留位数)
│ ├─__init__()方法
│ ├─__int__()方法(fraction对象化整数)
│ ├─__mul__()和__rmul__()乘法
│ ├─__repr__()方法(分数读作)
│ ├─__sub__()和__rsub__()减法
│ ├─__turediv__()和__rturediv__()除法
│ ├─__floordiv__()和__rfloordiv__()整除
│ ├─__matmul__()开方
│ └─__le__() __lt__() __eq__() __ne__() __gt__() __ge__()比较运算符
├─ratio
│ └─暂无
└─num
├─factor()
├─pri_num()
├─per_num()
├─even_num()
├─lcm()
├─hcf()
├─pri_fac()
└─comprime()
通过调用函数或类完成您想要达成的效果
该函数是用来寻找一个数的所有因数的,请在括号内填入一个数字,该函数就可以找出括号内数字的所有参数
from hyc.num import *
print(factor(9))
----
控制台
[1, 3, 9]
该函数是用来判断一个数是否为完全数的,请在括号内填入一个数字,该函数返回True或False
from hyc.num import *
print(per_num(9), per_num(27))
控制台
False True
该函数是用来判断一个数是否为质数的,请在括号内填入一个数字,该函数返回True或False
from hyc.num import *
print(pri_num(9), pri_num(2))
控制台
False True
该函数是用来判断一个数是否为偶数的,请在括号内填入一个数字,该函数返回True或False
from hyc.num import *
print(per_num(9), per_num(28))
控制台
False True
该函数是用来寻找几个数的最小公倍数的,请在括号内填入一个包含两个或以上数字的列表,请勿填入字符串、浮点数
from hyc.num import *
print(lcm([5, 9]))
控制台
45
该函数是用来寻找几个数的公因数和最大公因数的,请在括号内填入一个包含两个或以上数字的列表,请勿填入字符串、浮点数;该函数会返回两个值,前一个值为两个数所有的公因数列表,后一个值为两个数的最大公因数
from hyc.num import *
print(hcf([5, 15]))
控制台
[1, 5], 5
该函数是用来分解一个数的质因数的,请在括号内填入一个数字,该函数返回‘括号内的数 = 质因数1 * 质因数2 * ...’字符串
from hyc.num import *
print(pri_fac(5))
控制台
150 = 2*3*5*5
该函数是用来该函数是用来判断几个数是否为互质数的,请在括号内填入一个包含两个及以上数字的列表,该函数返回True或False
from hyc.num import *
print(coprime([9, 12]), coprime([2, 3]))
控制台
False True
请注意:在hyc库里,分数请先用name=Fraction(分母,分子)
转换name为fraction类型后再使用
该函数是用来通分的,请在函数内填入一个分数列表,该函数可以将分数列表中的所有分数化为同分母分数
from hyc.fraction import *
a = Fraction(5, 2) # 代表五分之二
b = Fraction(9, 1) # 代表九分之一
print(den_di([a, b]))
控制台
[45分之18, 45分之5]
该函数可以直接将整数和小数化为Fraction
类型
from hyc import *
a = covert(9.5, Fraction)
b = covert(8, Fraction)
print(a, b, a + b)
控制台
9又2分之1 1分之8 17又2分之1
Fraction
类是fraction
模块中最主要的部分,它会创建一个分数对象,如a=Fraction(5, 2)
就可以创建五分之二
这个分数;也支持带分数,比如a=Fraction(6, 1, num=5)
就可以创建五又六分之一
这个分数,其中的num
表示带分数的 整数部分
其中的__int__()
函数和__float__()
基本原理相同,都是将分数化为整数(或小数)
from hyc.fraction import *
a = Fraction(4, 2)
print(int(a)) # 将4分之2化为整数
控制台
1
这段代码,就是将4分之2化为整数,因为4分之2等于0.5,0.5四舍五入等于1,因此返回1
__float__()
函数与__int__()
函数的不同点在于__float__()
函数是直接将对象化为小数,而不是保留到个位
a = Fraction(8, 1)
print(float(a))
控制台
0.125
8分之1等于0.125,因此返回0.125 除了
__int__()
和__float__()
函数,还有__repr__()
函数,用于控制对象的名称,比如Fraction(2, 1)
就是2分之1
;也支持带分数,如Fraction(9, 5, num=3)
为3又9分之5
,Fraction(9, 32)
也为3又9分之5
剩下的red_fr()
,simp_fr()
和opposide()
函数除了调用方式是
a = Fraction(分母,分子)
a.函数()
其余用法与2.2.0版本 相同
剩下的就是加减乘除四则运算了,可以直接运算
from hyc.fraction import *
a = Fraction(5, 1)
b = Fraction(4, 1)
c = Fraction(3, 1)
print(a + b + c)
控制台
60分之47
当然,示例中的+
可以替换成-
,*
和/
,但暂时不支持//
不仅如此,还有 开方运算
from hyc.fraction import *
a = Fraction(5, 1)
print(a ** 2)
但请注意,只支持a**2
,不支持 2**a
混合运算 也是可以的
from hyc.fraction import *
a = Fraction(3, 1)
b = Fraction(6, 1)
c = Fraction(3, 2)
print(a + b * c)
控制台
9分之4
也可以做出整数或小数与分数运算的效果
from hyc.fraction import *
a = Fraction(2, 1)
print(a + 5)
控制台
5又2分之1
分数、整数和小数之间还可以进行比较
from hyc.fraction import *
a = Fraction(9, 2)
b = Fraction(9, 1)
print(a < b, a <= b, a == b, a != b, a > b, a >= b, a < 1, a < 1.1)
控制台
False False False True True True False False
但值得注意的是,只能分数<整数(小数)
,不能整数(小数)>分数
(比较运算符前必须是分数)
Percentage
类是一个创建百分数的类,如Percentage(19)
就可以创建名为'19%'
的百分数对象
Percentage
类 只有运算功能
Percentage
类的运算非常特别,如创建a=Percentage(9)
这个对象后,可以和int
类型、float
类型以及上文提到的Fraction
类进行计算,但只能其他类型 + a
,不能a + 其它类型
如上的规则是因为Percentage
类一个特殊的运算过程,在Percentage
类对象前面的数据被称作 单位“1”(one_unit),Percentage
类的单位“1”直接影响实际运算出的数,如下所示
from hyc.fraction import *
a = Percentage(10)
print(10 + a, 9 + a)
控制台
11 9.9
从如上示例中我们可以得知Percentage
类的运算方法是这样的
单位“1” + Percentage(a) = 单位“1” + a / 100 单位“1” - Percentage(a) = 单位”1“ - a / 100 ... ...
此模块新添加,暂无功能
如果您觉得hyc库的分数计算太过于麻烦,请点击这里