python中没有逻辑运算符的If语句
我有以下python代码:python中没有逻辑运算符的If语句,python,Python,我有以下python代码: value = 1.9 if value: #do something else: #do something else 这里发生了什么?我无法理解这一点,因为value不是布尔值 任何对象都可以测试真值,用于if或while 条件或作为下面布尔运算的操作数。以下 值被认为是错误的: 没有 假的 任何数字类型的零,例如0、0L、0.0、0j 任何空序列,例如,,(),[] 任何空映射,例如,{} 用户定义类的实例,如果该类定义了 非零()或len
value = 1.9
if value:
#do something
else:
#do something else
这里发生了什么?我无法理解这一点,因为value
不是布尔值
任何对象都可以测试真值,用于if或while
条件或作为下面布尔运算的操作数。以下
值被认为是错误的:
- 没有
- 假的
- 任何数字类型的零,例如0、0L、0.0、0j
- 任何空序列,例如,,(),[]
- 任何空映射,例如,{}
- 用户定义类的实例,如果该类定义了 非零()或len()方法,当该方法返回整数零或布尔值False时
因此,既然价值不是这些东西中的一个,它需要的是“如果”,而不是“其他” Python有一个真实性的概念,非布尔值基本上被“强制”为布尔值,如图所示: 4.1真值测试 任何对象都可以测试真值,用于
if
或while
条件,或作为下面布尔运算的操作数。以下值被认为是错误的:
None
False
- 任何数字类型的零,例如,
,0
,0.0
0j
- 任何空序列,例如,
,'
,()
[]
- 任何空映射,例如,
{}
- 用户定义类的实例,如果该类定义了
或\uuu bool\uu()
方法,则该方法返回整数零或bool值\uu len\uuu()
False
0
或False
表示False,返回1
或True
表示True。(重要例外:布尔运算或
和和
始终返回其操作数之一。)
底线是
1.9
属于“所有其他值都被认为是真的”子句,因为它与所有被认为是假的值都不匹配。最接近的是第三个数字(数字类型),但由于它不是零,所以不太接近。在python中,就像在许多编程语言中一样0,,[]
这类值给出False
,而任何其他值返回True
只有当值等于0或“多个时,它才会为False?名称七:-)好的python
,C
,C++
,Perl
,Lua
,Ruby
,JavaScript
。@我知道sehrob在C/C++中是空字符串literal“
表示true,因为它不是空指针,在JavaScript中是空列表literal[/code>表示true,也但是在Python中,这些东西被认为是False
。你是对的@neuron,我只是想说一个值不需要是一个布尔类型,就可以这样计算:)你可以使用bool()测试Python如何计算布尔值。例如bool(1)=True。布尔(0)=假。bool(“任意字符串”)=True。bool(“”=False。布尔(2.2)=真。没有零的数字总是正确的。非空字符串始终为true。非空列表为true等