我给了一个带数字的数组。 我正在尝试构建一个程序,用于识别该数字是偶数还是奇数。 这就是我所做的。
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")
我在思考,因为[0],[1]代表1,4,我以为我可以使用[i]我增加直到a的长度。 但是这段代码给了我一个无限循环。
这是我想在数组中使用单个数字的唯一方法。 我尝试使用
if a%2==0:
print(a, " is an even number")
但那给了我一个错误。
提前致谢
答案 0 :(得分:3)
您只需使用下面的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")
对于上述代码问题,您不会在i
阻止内增加else
,而您的条件应为< len(a)
而不是<= len(a)
答案 1 :(得分:1)
将你的i = i + 1置于if / else之外,并将&lt; =替换为&lt;否则它超过了数组长度。
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
答案 2 :(得分:0)
你的问题是以下几点:
而不是使用&lt; = use&lt;。
在if和else中添加i = i + 1。 因为如果你打了一个偶数,它会加1到i,但如果你打一个奇数,它也会加1。
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")
这里发生的是变量&#34; a&#34;是一个列表,并循环它你需要像你做的那样将列表拆分为单个组件&#34; a [i]&#34;。你在这里做的是将列表作为单个组件,而不是分解列表以获取列表的每个值。
希望你明白。