2024-06-01 09:18:26 发布
网友
我只是在尝试一个简单的if语句,但它没有按预期工作。是我的错误还是if语句的功能我不知道?你知道吗
代码是:
i = 50 n = 6 if i >> n: print("I is greater") elif i << n: print("I is lesser") elif i == n: print("I and N are same") else: print("no result")
即使我输入了一个更大或相等的值,输出也是“I是更小的”。请帮我理解这是怎么回事。你知道吗
<<和>>是bitshift operators,不是比较运算符。50 >> 6是0,所以if语句的计算结果是false,因为它是falsy。50 << 6是3200,所以if语句的计算结果是true,因为它是truthy。你知道吗
<<
>>
50 >> 6
0
50 << 6
此代码可能按您“预期”的方式工作
i = 50 n = 6 if i > n: print("I is greater") elif i < n: print("I is lesser") elif i == n: print("I and N are same") else: print("no result")
“<;<;”是按位左移。它在某种程度上相当于右操作数乘以2。你知道吗
“>;>;”是按位右移。它在某种程度上相当于右操作数乘以2。你知道吗
在您的示例中,“50<;<;6”表示左移50,即二进制中的110010(1*32+1*16+0*8+1*2+0*1=50),6次。因此,它变为110010000000=3200。在python中,非零数(如3200)的计算结果为True。你知道吗
同样,“50>;>;6”表示左移110010到左移6次。左移一次变为11001,左移两次变为1100。。。左移6次后变为0。你知道吗
在python中,零值的计算结果为False。你知道吗
<<
和>>
是bitshift operators,不是比较运算符。50 >> 6
是0
,所以if语句的计算结果是false,因为它是falsy。50 << 6
是3200,所以if语句的计算结果是true,因为它是truthy。你知道吗此代码可能按您“预期”的方式工作
“<;<;”是按位左移。它在某种程度上相当于右操作数乘以2。你知道吗
“>;>;”是按位右移。它在某种程度上相当于右操作数乘以2。你知道吗
在您的示例中,“50<;<;6”表示左移50,即二进制中的110010(1*32+1*16+0*8+1*2+0*1=50),6次。因此,它变为110010000000=3200。在python中,非零数(如3200)的计算结果为True。你知道吗
同样,“50>;>;6”表示左移110010到左移6次。左移一次变为11001,左移两次变为1100。。。左移6次后变为0。你知道吗
在python中,零值的计算结果为False。你知道吗
相关问题 更多 >
编程相关推荐