给定两个非零整数,如果正好其中一个为正,则打印“ YES”,否则打印“ NO”(Python)

时间:2019-02-19 21:40:36

标签: python python-2.7

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

a = int(input()) 
b = int(input())

给出两个非零整数,如果正好其中一个为正,则打印“ YES”,否则打印“ NO”。

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

5 个答案:

答案 0 :(得分:3)

if (a>0) != (b>0):
    print("YES")
else:
    print("NO")

How do you get the logical xor of two variables in Python?

答案 1 :(得分:1)

您可以使用更复杂的布尔运算来执行此操作,但是具有多个条件是最简单的方法:

a = int(input())
b = int(input())

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

Tomothy32的答案是最好的方法,可以确保不断简化,更重要的是,易于理解。但是,这是做同一件事的另一种方式,只是为了说明另一个程序员可能如何做:

onePositive = ( (a > 0 and b < 0) or (a < 0 and b > 0) )

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

答案 4 :(得分:0)

不是最快的解决方案或1-liner,但可以帮助您理解我的思考过程(给定正好2个非零整数),如果正整数之一为正,则打印是,否则为否。

解决方案-如果两个整数均为非零值,则您想精确地表示一个正数,而另一个则必须为负数

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')