Python的“ If” +“ And”条件忽略一个。邮递区号

时间:2019-08-05 10:49:15

标签: python if-statement

基本上是尝试学习Python,而我正在进行hackerrank 30天挑战赛。 任务 给定整数n,执行以下条件操作:

如果n为奇数,请打印确定 如果n为偶数且在2到5的范围内,则打印nok

n = 4
if n in range(2,5) and type(n/2) == int:
  print ("ok")        
else:
    print ("nok")

无论n是什么,它都会打印“ nok”。

2 个答案:

答案 0 :(得分:4)

在Python 3中,/总是返回浮点数(由于isinstance(4 / 2, int)返回False4 / 22.0)。

由于您实际上是在检查n的奇偶性,因此请明确检查它:

... and n % 2 == 0:

答案 1 :(得分:0)

因为n / 2 = 2.0而不是2,即除法返回的是float而不是int,因此有一些检查方法:

n in range(2,5) and n % 2 == 0
#or 
n in range(2,5) and n & 1 != 1  #because, every odd number has last bit 1