我正在学习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 =
您可以使用按位与运算符 (&) 来确定数字是偶数还是奇数,而不是使用整数除法和模运算分别计算 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.")