如何确定整数是偶数还是奇数

use*_*235 -5 python

def is_odd(num):
    # Return True or False, depending on if the input number is odd. 
    # Odd numbers are 1, 3, 5, 7, and so on. 
    # Even numbers are 0, 2, 4, 6, and so on. 
Run Code Online (Sandbox Code Playgroud)

我想知道你会从这里做些什么来得到那些答案.

unu*_*tbu 29

def is_odd(num):
    return num & 0x1
Run Code Online (Sandbox Code Playgroud)

它不是最易读的,但它很快:

In [11]: %timeit is_odd(123443112344312)
10000000 loops, best of 3: 164 ns per loop
Run Code Online (Sandbox Code Playgroud)

def is_odd2(num):
   return num % 2 != 0

In [10]: %timeit is_odd2(123443112344312)
1000000 loops, best of 3: 267 ns per loop
Run Code Online (Sandbox Code Playgroud)

或者,使返回值与以下相同is_odd:

def is_odd3(num):
   return num % 2

In [21]: %timeit is_odd3(123443112344312)
1000000 loops, best of 3: 205 ns per loop
Run Code Online (Sandbox Code Playgroud)

  • 我更喜欢它带有前缀,因为这传达了操作是一点一点进行的感觉。在更复杂的情况下尤其如此,例如测试标志位,其中某些值的十六进制和十进制值不同,但其他值会相同。例如 `if num & 0x10:` .. `elif num & 0x01:`。 (3认同)

NPE*_*NPE 8

def is_odd(num):
   return num % 2 != 0
Run Code Online (Sandbox Code Playgroud)

符号"%"被称为模数,并返回一个数的除法的余数.