python有条件的一个或另一个但不是两个都打印真

时间:2019-08-27 10:39:43

标签: python if-statement conditional-statements

所以我试图做一个if语句来检查两个变量是否大于10 如果它们都为True,则我希望代码通过或停止。但是,如果其中之一为True,则我希望代码显示该True变量。

例如:

var1 = 5
var2 = 11

if (var1 >= 10) is not (var2 >= 10):
    # print the true variable
else:
    pass

在这种情况下,我希望它打印:

var2 = 11

但是如果var1是True变量,我希望它打印var1。任何答案将不胜感激。

3 个答案:

答案 0 :(得分:0)

对于更灵活的解决方案(大量的var),可以按照以下方式进行操作:

var1 = 5
var2 = 11

num = [var for var in [var1, var2] if var >= 10]
if len(num) > 1:
  pass
if len(num) == 1:
  print(num[0])
else:
  pass

答案 1 :(得分:0)

var1 = 5
var2 = 11

if (var1 > 10 and var2 > 10) or (var1 < 10 and var2 < 10):  # checks if both vars are greater or lesser than 10.
    pass
else:  # if one of them only is greater than 10 it is printed
    if var1 > 10:
        print('var1: %d' % var1)
    if var2 > 10:
        print('var2: %d' % var2)

答案 2 :(得分:0)

我会在python中使用xor运算符,因为这样可以简化代码并避免不必要的条件:

if (var1 > 10) ^ (var2 > 10):

    if var1 > 10:
        print(var1)

    elif var2 > 10:
        print(var2)

编辑:甚至可以进一步简化:

if (var1 > 10) ^ (var2 > 10):

    print(var1 if var1 > 10 else var2)

请参见xor operatorxor operator python

(PD:另一种替代方法是使用!=