如果不工作,则使用Python

如果不工作,则使用Python,python,arrays,if-statement,while-loop,Python,Arrays,If Statement,While Loop,我得到了一个带有数字的数组。 我正试图建立一个程序来识别这个数字是偶数还是奇数。 这就是我所做的 a = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] i=0 while i <= len(a): if a[i] % 2 == 0: print(a[i], " is an even number") i = i + 1 else: print(a[i], " is an odd number")

我得到了一个带有数字的数组。 我正试图建立一个程序来识别这个数字是偶数还是奇数。 这就是我所做的

a = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
i=0
while i <= len(a):
    if a[i] % 2 == 0:
        print(a[i], " is an even number")
        i = i + 1
    else:
        print(a[i], " is an odd number")
但这给了我一个错误


提前感谢

将您的i=i+1置于if/else之外,然后替换,您只需使用
for
循环即可实现这一点,如下所示:

a = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
for n in a:
    if n % 2:
        print(n, "is an odd number")
    else:
        print(n, "is an even number")

对于上述代码问题,您在
else
块中没有增加
i
,您的条件应该是
,而不是
。您的问题在于:


而不是使用基于0的Python索引,因此列表中的最高索引是length-1。你的条件应该是
i
,而不是
i当你找到一个偶数时,你只增加
i
,当
i
是奇数时,它的值永远不会改变。我认为这个问题被不公平地否决了,特别是考虑到海报正在解释这个问题,以及他们试图做什么来解决它。@MarcTalbot我看不到有人试图调试这个问题。
a%2==0
代码没有任何意义。这是真的,而且更加优雅,但它没有解释
while
循环不起作用的原因。您甚至可以将
for
循环中的代码减少为:
打印(“{}是一个{}数字)。.format(n,'odd'如果n%2否则'偶数')
您还必须修复使用

a = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
i=0
while i < len(a):
    if a[i] % 2 == 0:
        print(a[i], " is an even number")
    else:
        print(a[i], " is an odd number")
    i = i + 1
a = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
for n in a:
    if n % 2:
        print(n, "is an odd number")
    else:
        print(n, "is an even number")
a = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
i=0
while i < len(a):
    if a[i] % 2 == 0:
        print(a[i], " is an even number")
        i = i + 1
    else:
        print(a[i], " is an odd number")
        i = i + 1 
if a%2==0:
    print(a, " is an even number")