如何用Python代码过滤奇数和偶数?

问题描述 投票:0回答:1

我正在学习Python。
我写了一个简单的程序来过滤奇数和偶数。

我们可以对这段代码进行优化吗?

while not 0:
    a = abs(int(input("a = ")))
    
    q = a // 2
    r = a % 2

    if q >= 0 and r > 0: print(a, "odd")
    elif q > 0 and r == 0: print(a, "even")
    elif q == 0 and r == 0: print(a, "neutral")

输出:

me@amadeus:~$ python3 Templates/Aa
a = 3 
3 odd
a = 2 
2 even
a = 1
1 odd
a = 0
0 neutral
a = 
python zero
1个回答
0
投票

您可以使用按位与运算符 (&) 来确定数字是偶数还是奇数,而不是使用整数除法和模运算分别计算 q(商)和 r(余数)。 偶数的最低有效位为 0,奇数的最低有效位为 1。

此外,我使用

while True
代替
while not 0
并添加了
try...except

while True:

    try:
        a = abs(int(input("a = ")))
        if a & 1:  # If the least significant bit is 1, it's odd
            print(a, "odd")
        elif a == 0:
            print(a, "neutral")
        else:
            print(a, "even")
    except ValueError:
        print("Invalid input. Please enter an integer.")
© www.soinside.com 2019 - 2024. All rights reserved.