level 8
10 Or 0 结果为10
0 Or 10 结果为10
10 Or True 结果为-1
False Or 10 结果为10
没有想到结果和C语言类似
这是我在python中处理and,or运算时遇到的
我问豆包,为什么python设计的那么奇怪,如果是c++、Java、VB等,结果就只有两个True或false,结果豆包给了我这个答案,原来VB中也会出现短路求值。
我一直以为or和and运算在VB中运行结果是布尔类型。
2026年03月25日 02点03分
1
level 15
正常来说,逻辑运算和位运算应该是两类不同的运算,例如C语言有逻辑与&&和位与&,逻辑或||和位或|
但是VB当中的“逻辑运算”本质上是位运算,VB没有严格意义上的逻辑运算,仅仅是通过值类型来区分逻辑值和普通数值;因此VB的逻辑值与数值进行“逻辑运算”时,会进行位运算,并且得到数值结果
2026年03月26日 15点03分
2
说得对,并不是短路 Print True Or 1 / 0
2026年03月27日 00点03分
一如既往的强!
2026年03月27日 08点03分
@tzchf 例子很6! 10 or (1/0)返回错误(除数为0)
2026年03月27日 08点03分