Python 与if语句的逻辑相混淆
出于某种原因,无论我给right或left的值是多少(例如,如果我将right设置为10,left设置为2)。。。它总是会出现“执行任务1”的情况……有人知道为什么吗?这应该可以解决问题;您的Python 与if语句的逻辑相混淆,python,if-statement,conditional,Python,If Statement,Conditional,出于某种原因,无论我给right或left的值是多少(例如,如果我将right设置为10,left设置为2)。。。它总是会出现“执行任务1”的情况……有人知道为什么吗?这应该可以解决问题;您的if条件中存在一些问题,仅此而已 right = 0 left = 0 if(left > right or (left and right) == 0): print 'doing task 1' else: print 'doing task2' 这应该会奏效;您的if条件中存
if
条件中存在一些问题,仅此而已
right = 0
left = 0
if(left > right or (left and right) == 0):
print 'doing task 1'
else:
print 'doing task2'
这应该会奏效;您的
if
条件中存在一些问题,仅此而已
right = 0
left = 0
if(left > right or (left and right) == 0):
print 'doing task 1'
else:
print 'doing task2'
我假设你想让任务1出现,如果左边的一个大于右边,或者右边和左边都等于零
如果你这样做
right = 2
left = 1
if(left > right or (right == 0 and left == 0)):
print 'doing task 1'
else:
print 'doing task2'
它是在做一个布尔比较,而不是将左和右的每一个都比较为零
请参见python文档中的布尔运算:
第5.2节截至撰写时
我假设你想让任务1出现,如果左边的一个大于右边,或者右边和左边都等于零
如果你这样做
right = 2
left = 1
if(left > right or (right == 0 and left == 0)):
print 'doing task 1'
else:
print 'doing task2'
它是在做一个布尔比较,而不是将左和右的每一个都比较为零
请参见python文档中的布尔运算:
第5.2节在撰写本文时,我建议您使用
elif
功能
(left and right) == 0
我建议您使用
elif
功能
(left and right) == 0
你可能想要
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'
如果right
可以写成
if right < left or 0 == left and 0 == right:
print('doing task 1')
else:
print('doing task 2')
print('正在执行任务%d'
%(如果右<左或0==左,0==右,则为1,否则为2))
您可能需要
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'
如果right
可以写成
if right < left or 0 == left and 0 == right:
print('doing task 1')
else:
print('doing task 2')
print('正在执行任务%d'
%(如果右<左或0==左,0==右,则为1,否则为2))
已尝试,是否打印“doing task2”:当其中一个变量等于0时,表达式(左侧和右侧)将返回0。并且在任何其他情况下都将始终返回右值。尝试后,是否打印“doing task2”:当其中一个变量等于0时,表达式(左和右)将返回0。并且在任何其他情况下都会返回正确的值。