从形式上看,True
是一个Python内置恒定的布尔类型。
您可以对布尔类型使用布尔运算(例如在交互式python提示符下)并将数字转换为布尔类型:
>>> print not True
False
>>> print not False
True
>>> print True or False
True
>>> print True and False
False
>>> a=bool(9)
>>> print a
True
>>> b=bool(0)
>>> print b
False
>>> b=bool(0.000000000000000000000000000000000001)
>>> print b
True
而且,您所看到的以及Python编译器所看到的可能存在“陷阱”:
>>> n=0
>>> print bool(n)
False
>>> n='0'
>>> print bool(n)
True
>>> n=0.0
>>> print bool(n)
False
>>> n="0.0"
>>> print bool(n)
True
为了说明Python如何在内部存储布尔类型,您可以将布尔类型转换为整数,然后True会变成1,而False会变成0:
>>> print True+0
1
>>> print True+1
2
>>> print False+0
0
>>> print False+1
1
实际上,Pythonbool
类型是Python类型的子类int
:
>>> type(True)
<type 'bool'>
>>> isinstance(True, int)
True
您问题中最重要的部分是“什么是while True
?” 是“什么是真实的”,是一个重要的推论:什么是错误的?
首先,对于您正在学习的每种语言,都要学习该语言认为的“真实”和“虚假”。例如,Python认为真相与Perl真相略有不同。其他语言的对/错概念略有不同。知道您的语言对于不同的操作和流控制认为是对还是错,以免以后出现很多麻烦!
在找到所需的内容之前,有很多算法需要处理一些东西。因此,无限循环或无限循环。对于这些结构,每种语言都有自己的成语。以下是常见的C无限循环,也适用于Perl:
for(;;) { /* loop until break */ }
/* or */
while (1) {
return if (function(arg) > 3);
}
while True:
对于不确定的循环,这种形式在Python中很常见,可以通过某种方式打破循环。学习Python流控制以了解如何摆脱while True
循环。例如,与大多数语言不同,Python可以else
在循环上有一个子句。最后一个链接中有一个示例。