如果不工作,则使用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")