Преобразование цикла for в список - PullRequest
0 голосов
/ 22 мая 2019

я работал над этой программой:

  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]?

Заранее спасибо.

Ответы [ 4 ]

1 голос
/ 22 мая 2019

Поскольку 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.

1 голос
/ 22 мая 2019

Поскольку ваш 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, поскольку это числовое сравнение.

0 голосов
/ 22 мая 2019
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]
0 голосов
/ 22 мая 2019

Это проблема форматирования.Это должно быть так:

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)

Вам нужно поместить оператор print вне цикла for, чтобы он не вызывался каждый раз, когда вы добавляете данные в hehe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...