甚至计算整数Python

时间:2014-11-20 04:53:33

标签: python

嘿伙计们,我在尝试计算列表中所有偶数整数并打印偶数整数时遇到了一些麻烦。我是编程新手,所以可能无法及时了解你们这些人的知识和术语。如果你能帮助我,那就太好了!这是我已经开始的。

list = [2,4,5,6,8]
count_even=0
while count_even<len(list):
    if list[count_even]%2==0:
        count_even=count_even + 1
   else:
        list[count_even]%2!=0
        count_even=count_even
   print count_even 

6 个答案:

答案 0 :(得分:4)

我会创建一个偶数整数的临时列表,然后测量长度:

lst = [2,4,5,6,8]
print len([i for i in lst if i %2 == 0])

使用列表理解。如果你想避免这种情况,只需使用一个循环,如:

lst = [2,4,5,6,8]
count_even=0
for num in lst:
    if num %2 == 0:
        count_even += 1
print count_even

答案 1 :(得分:3)

list = [2,4,5,6,8]
count = 0    
for x in list:
    if x % 2 == 0:
        print "Even Number:", x
        count=count + 1
print "Count:", count

答案 2 :(得分:2)

 filter(lambda x: x%2==0 ,[0,1,2,3,4,5])

你也可以尝试一个班轮。

list = [2,4,5,6,8]
count_even=0
i=0
while i<len(list):
    if list[i]%2==0:
        count_even=count_even + 1
    i=i+1


print count_even 

当你count_even没有增加时,你可能正在运行一个无限循环。你需要使用2个变量。

答案 3 :(得分:2)

num_list = [2,4,5,6,8]
count_even=0

for n in num_list:
    if n%2==0:
        count_even=count_even + 1
print count_even 

更改说明:

  • 更改list变量名称。不要使用Python对象的名称。
  • while更改为for;不需要以这种方式编制索引列表
  • 删除else块;无论如何,它现在没有做任何事情。 count_even=count_even
  • 没有意义

您的问题在于索引编制。一切都基于count_even变量。当while循环小于列表的长度时,else循环仍在继续,并且在{{1}}块中,您没有递增它。因此,如果列表中有奇数,则会有无限循环

答案 4 :(得分:2)

list = [2,4,5,6,8]
count_even=0
for i in xrange(len(list)):
    if list[i]%2==0:
        count_even += 1
print count_even

有几件事:

  • 您使用count_even作为计数器和索引值
  • 根本不需要做任何事情,即使你所做的只是计算偶数数字

答案 5 :(得分:1)

您也可以使用map

>>> lst = [2,4,5,6,8]
>>> map(lambda x:x%2==0,lst).count(True)
4

python 3x:

list(map(lambda x:x%2==0,lst)).count(True)