给定两个非零整数,如果其中一个正,则打印”是”,否则打印”否”(python)

Given two non-zero integers, print “YES” if exactly one of them is positive and print “NO” otherwise (Python)

本问题已经有最佳答案,请猛点这里访问。

第一次问关于stackoverflow的问题。我一直在努力解决这个问题。这是我的代码:

1
2
a = int(input())
b = int(input())

给定两个非零整数,如果其中一个正,则打印"是",否则打印"否"。

1
2
3
4
if (a > 0) or (b > 0):
    print('YES')
else:
    print('NO')


1
2
3
4
if (a>0) != (b>0):
    print("YES")
else:
    print("NO")

如何获得Python中两个变量的逻辑XOR?


Tomothy32的答案无疑是最好的方法,简单,更重要的是,易懂。但这里有另一种方法来做同样的事情,只是为了说明另一个程序员可能如何做到这一点:

1
2
3
onePositive = ( (a > 0 and b < 0) or (a < 0 and b > 0) )

print('yes' if onePositive else 'no' )


1
print('YES' if a * b < 0 else 'NO')


您可以使用更复杂的布尔运算来实现这一点,但拥有多个条件是最简单的方法:

1
2
3
4
5
6
7
a = int(input())
b = int(input())

if (a > 0 and b < 0) or (a < 0 and b > 0):
    print('YES')
else:
    print('NO')


不是最快的解决方案或1行程序,但将有助于您理解我的思想过程,在解决问题时,只给2个非零整数,如果其中一个正整数,则打印"是",否则打印"否"。

解决方案-如果两个整数都为非零,则只需要一个正的含义,另一个必须为负。

1
2
3
4
5
6
7
8
9
10
11
a = int(input())
b = int(input())

#if a is positive and b and negative
if (a > 0) and (b < 0) :
    print('YES')
#if a is negative and b is positive
elif (a < 0) and (b > 0) :
    print('YES')
else :
    print('NO')