基本上是尝试学习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”。
答案 0 :(得分:4)
在Python 3中,/
总是返回浮点数(由于isinstance(4 / 2, int)
返回False
,4 / 2
是2.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