对我的if语句的逻辑感到困惑

时间:2018-02-22 21:35:14

标签: python if-statement conditional

right = 0 
left = 0
if(left > right or (left and right) == 0):
    print 'doing task 1'
else:
    print 'doing task2'

出于某种原因无论我向右或向左给出什么值(例如,如果我设置为10并且保持为2)......它总是执行“执行任务1”条件.....有谁知道为什么?

4 个答案:

答案 0 :(得分:2)

我建议您使用elif功能

right = 0
left = 0
if(left > right):
    print 'doing task 1'
elif left ==0 and right == 0:
    print 'doing task 1'    
else:
    print 'doing task2'

答案 1 :(得分:0)

这应该可以解决问题;您在<#yourElement#>.waitForExistence(timeout: 5) 条件中遇到了一些问题,就是它

if

答案 2 :(得分:0)

right = 2
left = 1
if(left > right or (right == 0 and left == 0)):
    print 'doing task 1'
else:
    print 'doing task2'

我认为如果左边大于右边,或者右边和左边都等于零,你的意思是要显示任务1。

如果你这样做

(left and right) == 0

它正在进行布尔比较,而不是将左右各自比较为零。

参见python docs中的布尔操作

第5.2节截至撰写本文时

答案 3 :(得分:0)

你可能想要

if right < left or 0 == left and 0 == right:
    print('doing task 1')
else:
    print('doing task 2')

可以写成

print('doing task %d'
      % (1 if right < left or 0 == left and 0 == right else 2))