我已经创建了一个列表和该列表的迭代循环。我正在尝试使用模数运算符计算所有偶数。我已经初始化了count变量,并使用了count增量和if语句来捕获嵌套循环中的所有偶数。但是,我得到的只是第一名。 count等于1,是因为不正确地使用了模数,还是item = 10,是因为迭代循环到达了列表的末尾?
我不知道要更改什么,代码结构对我来说都可以。我尝试缩进打印功能。这表明模量捕获了偶数,但计数未将它们求和。
list = [1,2,3,4,5,6,7,8,9,10]
for item in list:
count = 0
if (item % 2 == 0):
count = count + 1
print(count)
print(item)
print(list)
我希望数字5是程序的结果,因为列表中有5个偶数
答案 0 :(得分:5)
将count=0
放入for循环之外。现在,您在for循环的每次迭代期间将count重新初始化为0。
此外,请勿将变量命名为built-in
函数名:在您的情况下,请勿使用list
作为变量名。下面,我以lst
为例。
其他少量修改:您可以仅使用count += 1
代替count = count + 1
。前者是一种简洁的写作方式。此外,在这种情况下,您无需将单个条件放在括号()
中。
lst = [1,2,3,4,5,6,7,8,9,10]
count = 0
for item in lst:
if item % 2 == 0:
count += 1 # equivalent to count = count + 1
print(count)
print(item)
print(lst)
# 5
# 10
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
答案 1 :(得分:0)
您可以使用Python generators和sum内置函数,而不是通过列表手动进行迭代:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
将为您打印:
5
use Mojolicious::Lite; get '/' => 'index'; post '/' => sub { my $c = shift; my ($nodes, $edges, $start) = map { $c->param($_) } qw(nodes edges start); system 'script.pl', '--nodes', $nodes, '--edges', $edges, '--start', $start; $c->render(text => 'done'); }; app->start; __DATA__ @@ index.html.ep <html lang="es"> <head> <meta charset="utf-8"/> <title>Graphs</title> </head> <body> <form method="post"> <%= tag div => (id => 'inputs') => begin %> <h1>Grafos dirigidos</h1> %= input_tag 'nodes', placeholder => '#Nodos', id => 'nodes' %= input_tag 'edges', placeholder => '#Edges', id => 'edges' %= input_tag 'start', placeholder => 'Start', id => 'start' %= submit_button 'Generate', id => 'render', onclick => 'renderGraph()' %= tag 'br' %= text_area 'dijkstra', cols => 40, rows => 40, id => 'dijkstra' <% end %> </form>