Python 尝试不使用数学运算符计算奇偶数

Python 尝试不使用数学运算符计算奇偶数,python,python-3.x,for-loop,if-statement,Python,Python 3.x,For Loop,If Statement,虽然这个想法是可行的,但是这个循环需要很长时间才能执行并生成一个非常大的列表。您最好直接使用范围对象 w= int(input('enter a num:')) even= [] for x in range (0, 999999999999999999999999999999999999999999999999, 2): even.append(x) if w in even: print ('the num is even') break el

虽然这个想法是可行的,但是这个循环需要很长时间才能执行并生成一个非常大的列表。您最好直接使用
范围
对象

w= int(input('enter a num:'))
even= []
for x in range (0, 999999999999999999999999999999999999999999999999, 2):
    even.append(x)
    if w in even:
        print ('the num is even')
        break
else:
    print ('the num is odd')
这将立即生效(尽管只适用于介于零和最大数字之间的数字)。
range
对象可以通过自己的内部算法计算出它是否包含任何给定的数字,而无需进行任何迭代


(仅限Python 3)

该循环需要很长时间才能执行并生成一个非常大的列表。最好只写
偶数=范围(0,99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999,2)
,它将立即工作,您可以立即检查偶数中的
w
注意:您可以通过测试最低有效位是否为1(仅限整数)来测试一个数字是否为奇数,而不使用数学运算符.我很感激为自己设定挑战。对此,你认为什么是“数学操作员”?我想
+
-
*
/
**
都不在讨论范围之内了。看起来您试图不使用
==
。那么按位运算符呢?还有其他吗?即使没有按位运算符,将数字转换为字符串并测试最后一个字符是否在“13579”中也会更简单。对于不太熟悉Python内部工作原理的人来说,这怎么可能立即生效?我可以看到Python实际上是如何不创建每个偶数的列表的,但是Python不需要迭代来确定该数字是否在范围内吗?也许输入
2
很快,但是
999999999999999999999999999999999999999999999999999999999 8
需要更长的时间?@CoreyOgburn它使用基于端点和步长的算术智能地计算出范围是否包含任何特定的数字。查看
9999999999999999999999999999999999999999999999999999999999 8
的速度与其他任何数字一样快。我注意到了。我用端点来思考它,但是测试像“代码> 500万”、“10000”、“10000”、“10000”、“0”、“0”/“代码”(在中间的死点)仍然立即执行。我可能会问我自己的问题。我很好奇。@CoreyOgburn不必麻烦:@superbrain是的,我想。“工作”与停止的时钟的工作方式相同。
w= int(input('enter a num:'))
even = range(0, 999999999999999999999999999999999999999999999999, 2)
if w in even:
    print("the number is even")
else:
    print("the number is odd")