DDR爱好者之家 Design By 杰米
1. 真值测试
所谓真值测试,是指当一种类型对象出现在if或者while条件语句中时,对象值表现为True或者False。弄清楚各种情况下的真值对我们编写程序有重要的意义。
对于一个对象a,其真值定义为:
- True : 如果函数truth_test(a)返回True。
- False:如果函数truth_test(a)返回False。
以if为例(while是等价的,不做赘述),定义函数truth_test(x)为:
def truth_test(x): if x: return True else: return False
2.对象的真值测试
一般而言,对于一个对象,在满足以下条件之一时,真值测试为False;否则真值测试为True。
- 其内置函数__bool__()返回False
- 其内置函数__len__()返回0
(1)以下类型对象真值测试为真:
class X: pass
(2)以下真值测试为假:
class Y: def __bool__(self): return False
(3)以下真值测试为假:
class Z: def __len__(self): return 0
进入python3脚本环境,测试过程如下:
> class X: ... pass ... > class Y: ... def __bool__(self): ... return False ... > class Z: ... def __len__(self): ... return 0 ... > def truth_test(x): ... if x: ... return True ... else: ... return False ... > x = X() > y = Y() > z = Z() > truth_test(x) True > truth_test(y) False > truth_test(z) False >
3. 常见对象的真值
下面是常见的真值为False的情况:
- 常量:None and False.
- 数值0值: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
- 序列或者集合为空:'', (), [], {}, set(), range(0)
进入python3脚本环境,测试过程如下:
> truth_test(None) False > truth_test(False) False > truth_test(0) False > truth_test(0.0) False > truth_test(0j) #复数 False > truth_test(Decimal(0)) #十进制浮点数 False > truth_test(Fraction(0,1)) #分数 False > truth_test(Fraction(0,2)) #分数 False > truth_test('') False > truth_test(()) False > truth_test({}) False > truth_test(set()) False > truth_test(range(0)) #序列 False > truth_test(range(2,2)) #序列 False
此外的其它取值,真值测试应当为True。
4.一些有意思的例子
下面是一些有意思的例子,原理不超出前面的解释。
> if 1 and Fraction(0,1): ... print(True) ... else: ... print(False) ... False > if 1 and (): ... print(True) ... else: ... print(False) ... False > if 1 and range(0): ... print(True) ... else: ... print(False) ... False > if 1 and None: ... print(True) ... else: ... print(False) ... False > if 1+2j and None: ... print(True) ... else: ... print(False) ... False
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
更新日志
2024年11月27日
2024年11月27日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]