python составление списка, создание списка из 100 чисел, разделенных на 7 - PullRequest
0 голосов
/ 29 марта 2020

Я выполняю некоторые упражнения по Python программированию и наткнулся на проблему, которая, вероятно, тривиальна, но мой мозг все еще не может ее понять.

Мне необходимо создать список первых 100 число делится на 7 (т. е. num% 7 == 0), используя списки. Сначала я подумал «да ладно» и написал

list_of_num = [i for i in range(100) if i % 7 ==0]

, а потом меня поразило, что это не то, о чем меня просит учитель (он специально заявил, что это должно быть сделано при создании списка без каких-либо библиотек или методы). Как мне подойти к этому?

Ответы [ 4 ]

1 голос
/ 29 марта 2020

Ваша ошибка в том, что вы рассматриваете только числа, которые меньше 100.

Вместо этого вам следует создать кратное число 7.

list_of_num = [7*i for i in range(100)]

или

list_of_num = [7*i for i in range(1, 101)]

если вы хотите начать с 7, а не 0.

1 голос
/ 29 марта 2020

Я не вижу ничего плохого в вашем ответе: вы не используете ни библиотеку (ни импорт оператор нигде, ни метод (диапазон - это стандартная python функция).

1 голос
/ 29 марта 2020

Вместо генерации многих чисел и сохранения хороших, как насчет генерации только хороших? Умножьте на 7, и вы получите только кратные 7

list_of_num = [i * 7 for i in range(100)]
print(len(list_of_num), list_of_num ) # 100 [0, 7, 14, ..., 693]

или используйте параметр step range:

list_of_num = [i for i in range(0, 7 * 100, 7)]

Если Вы хотите начать с 7 и все равно получить сто

list_of_num = [i * 7 for i in range(1, 101)]
print(len(list_of_num), list_of_num ) # 100 [7, 14, ..., 693, 700]

# or
list_of_num = [i for i in range(7, 7 * 101, 7)]
0 голосов
/ 29 марта 2020

вы можете использовать:

list_of_num = [i for i in range(7, 701, 7)]

или вы можете использовать:

list_of_num = list(range(7, 701, 7))

здесь вы используете только встроенную функцию range, начиная с 7, которая является первое число делится на 7 и go до 700 с шагом 7, причем шаг 7 гарантирует, что каждое сгенерированное число делится на 7

...