额外的布尔值:KindaTrue、KindaFalse、VeryTrue和VeryFalse。(这是一个玩笑项目。)
项目描述
PyFuzzyBool
额外的布尔值:KindaTrue、KindaFalse、VeryTrue和VeryFalse。(这是一个玩笑项目。)
安装
使用pip安装,请运行
pip install pyfuzzybool
快速入门指南
在Python语言中,bool数据类型是整数的子类。值True
和False
实际上与整数值1
和0
相同:您可以使用它们像使用整数一样:True + True + False + True
计算结果为3
,而'Hello[True]'
计算结果为'e'
。
Python还有一个“真值”和“假值”的概念:0
、0.0
、空字符串、空列表/字典/元组等都是“假值”;当传递给bool()
时,它们将评估为布尔值False
。所有其他值都是“真值”,当传递给bool()
时,将评估为True
。
类似地,fuzzybool(1)
和fuzzybool(0)
将评估为True
和False
,但传递一个大于1.0
的浮点数或整数将评估为VeryTrue
,而传递一个小于0.0
的值将评估为VeryFalse
。传递一个介于0.0
和1.0
之间的值将有一半的时间评估为KindaTrue
,另一半时间评估为KindaFalse
。
以下是一些交互式shell中的示例
>>> from pyfuzzybool import *
>>> KindaTrue == KindaFalse
True
>>> KindaTrue == True
False
>>> VeryTrue == True
True
>>> VeryFalse == False
True
>>> KindaFalse == False
False
>>> fuzzybool(1)
fuzzybool(True)
>>> fuzzybool(0.9)
KindaTrue
>>> fuzzybool(0)
fuzzybool(False)
>>> fuzzybool(-1)
VeryFalse
>>> fuzzybool(1.1)
VeryTrue
>>> fuzzybool()
KindaFalse
>>> KindaFalse < True
True
>>> KindaFalse > False
True
>>> KindaFalse <= KindaTrue
True
我认为其中许多都可以更改。是否应该将KindaTrue == True
评估为True
?或者应该评估为KindaTrue
?或者评估一半的时间为KindaTrue
和另一半为KindaFalse
?
这个项目是个玩笑,但它引发了许多值得思考的问题(如果你没有更好的事情可做)。毕竟,数学只是一堆关于如何操作抽象符号的虚构、任意的规则。数学碰巧在科学中表现出不合理的有效性。
贡献
如果你想为PyFuzzyBool做出贡献,请查看https://github.com/asweigart/pyfuzzybool
项目详情
PyFuzzyBool-0.1.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fbe83f54b49e1a7f3d0e18f662e969b8dc3b7fceb779e7832c1797689035ecfa |
|
MD5 | e6ca8ace1d5bc5abc813242cb7ff657c |
|
BLAKE2b-256 | f2f1393df2d6012042ee15970ddd9aadabc19713cd302e695b3dbf7c25e00e9d |