я работал над этой программой:
for n in range (0,31):
if n%2 is 0:
if (n%2)is 0 and (n%5)is 0:
print(n)
я хочу, чтобы вывод был таким, в списке.
[0,10,20,30]
я пытался добавить list.append,
hehe = []
for n in range (0,31):
if n%2 is 0:
if (n%2)is 0 and (n%5)is 0:
hehe.append(n)
print(hehe)
но результат такой.
[0]
[0, 10]
[0, 10, 20]
[0, 10, 20, 30]
как мне сделать это только [0,10,20,30]?
Заранее спасибо.
"я работал над этим кодом" этот код... это значит, что это не ваш код, верно? Цикл for — это программная конструкция, а список — это структура данных. Вы не «преобразовываете цикл for в список».
Спасибо большое !!!!!
проголосовать за закрытие как опечатка
Если какой-либо из ответов решил ваш вопрос, рекомендуется проголосовать за него и принять лучший. Последнее также дает вам небольшой бонус репутации :)
Это проблема форматирования. Это должно быть так:
hehe = []
for n in range (0,31):
if n%2 is 0:
if (n%2)is 0 and (n%5)is 0:
hehe.append(n)
print(hehe)
Вам нужно поместить оператор печати вне цикла for, чтобы он не вызывался каждый раз, когда вы добавляете данные в hehe
.
Поскольку ваш print
находится внутри цикла, он печатает его каждую итерацию. Вы хотите переместить оператор печати в конец. Кроме того, ваш первый оператор if
является избыточным, поскольку вы снова выполняете ту же проверку во втором, поэтому вы можете удалить его:
hehe = []
for n in range(0,31):
if (n%2)==0 and (n%5)==0:
hehe.append(n)
print(hehe)
Наконец, такой цикл является идеальным кандидатом на роль понимание списка:
hehe = [n for n in range(0, 31) if (n%2)==0 and (n%5)==0]
print(hehe)
Также обратите внимание, что вы должны сверять значения с 0
, используя ==
вместо is
, так как это числовое сравнение.
hehe = [i for i in range(31) if i%2 == 0 and i%5 == 0]
или
hehe = [i for i in range(31) if i % 10 == 0]
Поскольку print(hehe)
находится внутри цикла for, он выводится каждый раз при вызове цикла.
Просто вызовите его вне цикла, чтобы напечатать его только после завершения формирования hehe
.
Обратите внимание, что
[x for x in range(31) if not i % 10] # anything divisible by 2 and 5 is also divisible by 10
намного чище и дает тот же результат, что и ваш цикл for.
Поместите печать вне forloop.