10 способов создать список чисел от 1 до N в Python

Если вы начинаете программировать на Python, одно из первых действий, которое вы научитесь делать, — это создавать список чисел от 1 до N.

Для создания списка чисел от 1 до N Python предоставляет функцию range. Вы можете передать аргумент «start» со значением 1 и аргумент «stop» со значением N+1 в функцию range, и она сгенерирует список чисел от 1 до N после передачи своего вывода в функцию list(). Поведение функции range различается между Python 2 и Python 3.

Давайте рассмотрим несколько примеров!

Генерация чисел от 1 до N с помощью функции Python range()

Начнем с самого простого способа создания списка чисел от 1 до N в Python.

Первая строка кода ниже создает список Python из выходных данных, возвращаемых при вызове range(), и передает ему число N (в данном случае 10).

numbers = list(range(10))
print(numbers)

На выходе получается список Python с числами от 0 до 9. Это не совсем то, что нам нужно, учитывая, что мы хотим сгенерировать список чисел от 1 до N.

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Класс range позволяет передавать два аргумента, «start» и «stop». Ниже вы можете увидеть его синтаксис.

range(start, stop, step=1)

Аргумент «step» позволяет вам определить промежуток между числами в сгенерированном списке. Мы не будем использовать его в этом руководстве. Мы сосредоточимся на аргументах «start» и «stop».

Давайте посмотрим, что вернет наш код, если значение start равно 1, а значение stop равно 11.

numbers = list(range(1,11))
print(numbers)

На этот раз результат — это то, что мы ищем.

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Чтобы создать список чисел от 1 до N в Python с помощью функции range(), необходимо передать в range() два аргумента: «start», равный 1, и «stop», равный N+1. Используйте функцию list(), чтобы преобразовать вывод функции range() в список и получить числа в указанном диапазоне.

Как вывести числа от 1 до N в Python с помощью цикла while?

Вы также можете использовать цикл while для вывода чисел от 1 до N. Это не лучший подход, учитывая, что тот, который мы видели в предыдущем разделе, довольно прост и лаконичен.

В то же время, как разработчик, вы должны знать, как реализовывать программы разными способами, поскольку это дает вам знания, необходимые для поиска наилучшего решения конкретной проблемы.

Чтобы вывести список чисел от 1 до N с помощью цикла while Python, можно установить числовую переменную в 1 вне цикла while. Затем внутри цикла вы выводите переменную и увеличиваете ее значение на 1 на каждой итерации. Условие цикла while проверяет, что значение числовой переменной меньше или равно N.

number = 1

while number <= 10:
    print(number)
    number += 1

Это результат, который вы получаете, когда N равно 10.

1
2
3
4
5
6
7
8
9
10

На этот раз в выводе вы увидите по одному числу в строке вместо списка Python, содержащего все числа.

Если вы хотите получить список Python, вам придется добавить больше кода.

number = 1
numbers = []

while number <= 10:
    numbers.append(number)
    number += 1

print(numbers)

Выполните код Python выше и убедитесь, что вы видите правильный список:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Сначала мы создаем пустой список перед циклом while. Затем внутри цикла мы вызываем метод списка append, чтобы добавить каждое число (элемент) в список.

Наконец, вне цикла while мы выводим содержимое списка чисел.

Этот подход с циклом while требует на несколько строк кода больше по сравнению с подходом с использованием функции range(), для которого требуется только одна строка кода.

Создайте список чисел от 1 до N в Python с помощью цикла For

Вам интересно, как использовать цикл for в Python для вывода чисел от 1 до N?

Давайте узнаем!

Используя функцию диапазона Python и цикл for, вы можете вывести числа от 1 до N. Аргументы для передачи в класс диапазона: start=1 и stop=N+1.

n=10

for number in range(1, n+1):
    print(number)

Давайте проверим вывод:

1
2
3
4
5
6
7
8
9
10

Это верно!

Как напечатать числа от 1 до N в Python без новой строки

В предыдущем примере вы видели числа от 1 до 10, напечатанные по одному в строке.

Как можно напечатать числа от 1 до N без перевода строки?

Чтобы напечатать числа от 1 до N в Python без символа новой строки в каждой строке, вы можете передать необязательный аргумент «end» функции print(). Вы можете установить значение «end» на любой желаемый символ.

Вот как изменится вывод, если мы установим в качестве конца символ запятой.

n=10

for number in range(1, n+1):
    print(number, end=',')

[output]
1,2,3,4,5,6,7,8,9,10,%

Символ процента в конце чисел присутствует из-за отсутствия символа новой строки в конце строки.

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

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

n=10

for number in range(1, n+1):
    if number == 10:
        print(number)
    else:
        print(number, end=',')

Если число последнее в списке, мы используем стандартный вызов функции print() без передачи аргумента «end». Это добавляет символ новой строки после последнего числа в последовательности.

Вот что выводит наш скрипт Python:

1,2,3,4,5,6,7,8,9,10

Выглядит лучше!

Создайте список чисел от 1 до N, используя списочные включения

Другой способ создания списка чисел от 1 до N — с помощью Python list comprehensions. List comprehension — это конструкция Python, которая генерирует список.

Это более продвинутая концепция по сравнению с тем, что мы рассмотрели до сих пор, и это то, о чем вы должны знать как разработчик Python. Списковые включения — очень распространенная конструкция, используемая для написания кода Python.

numbers = [number for number in range(1,11)]
print(numbers)

[output]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Мы по-прежнему используем диапазон, но на этот раз мы используем его вывод как часть списочного генератора.

Как генерировать числа от 1 до N с помощью Python 2

Если по какой-то причине вы используете Python 2, вот различия, которые вы увидите при использовании функции range().

Откройте оболочку Python с Python 3, а затем с Python 2. В обоих случаях напишите следующий код:

Питон 3

>>> range(10)
range(0, 10)
>>> type(range(10))
<class 'range'>

Питон 2

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> type(range(10))
<type 'list'>

Видите разницу?

Тип объекта, возвращаемого range(), различается в Python 2 и Python 3. Python 3 возвращает итерируемый диапазон (0, N), тогда как Python 2 возвращает список.

Итак, чтобы вывести числа от 1 до N (где N равно 10) с помощью Python 2, вы можете просто использовать следующий код:

numbers = range(1,11)
print(numbers)

[output]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Используя Python 2, нам не пришлось передавать выходные данные функции range() в функцию list().

Код Python для печати списка чисел от 1 до 1000

На этом этапе вы уже эксперт в печати чисел с помощью Python 🙂

Как вы думаете, как можно вывести числа от 1 до 1000 на Python?

Мы воспользуемся самым простым подходом, рассмотренным до сих пор, а именно функциями list() и range().

numbers = list(range(1,1001))
print(numbers)

Чтобы вывести числа от 1 до 1000 в Python, можно использовать функцию range() с аргументом «start», равным 1, и аргументом «stop», равным 1001. Функция list() принимает выходные данные range() и возвращает список чисел.

Учитывая длину выходных данных, я предоставлю вам возможность самостоятельно проверить правильность полученных данных.

Пример того, как распечатать список от 0 до N с помощью Python

Давайте еще раз воспользуемся функцией range() для вывода чисел от 0 до N (предположим, что N равно 50).

numbers = list(range(0,51))
print(numbers)

[output]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]

Чтобы напечатать числа от 0 до N в Python, вы можете вернуть вывод range() в функцию list(), которая затем возвращает список чисел. Функция range() принимает в качестве аргументов «start», равный 0, и «stop», равный N+1. Более простой вариант — просто передать «stop», равный N+1, в функцию range().

Давайте рассмотрим более простую версию кода, в которой мы не передаем аргумент «start» в range().

numbers = list(range(51))
print(numbers)

Отлично, даже проще!

Создайте массив чисел от 1 до N с помощью модуля NumPy

До сих пор нам не приходилось импортировать какие-либо внешние модули для реализации нашего кода.

В этом разделе мы увидим, как использовать библиотеку Python NumPy для печати чисел от 1 до N.

Чтобы создать последовательность целых чисел с помощью Numpy, можно использовать функцию numpy.arange(). Чтобы получить список чисел от 1 до N, передайте в numpy.arange() два аргумента: аргумент «start» со значением 1 и аргумент «stop» со значением N+1.

import numpy as np

n = 10
numbers = np.arange(1,n+1)
print(numbers)

В первой строке мы импортировали модуль NumPy. Затем мы вызвали функцию arange() с «start» установленным на 1 и «stop» установленным на N+1.

Вывод следующий:

[ 1  2  3  4  5  6  7  8  9 10]

Вы можете видеть, что вывод отличается от вывода, который вы видели ранее при печати списка.

Это потому, что вывод, возвращаемый numpy.arange(), является массивом NumPy, а не списком. Вы можете подтвердить это, распечатав вывод функции type() на объекте, возвращаемом с помощью numpy.arange().

print(type(numbers))

[output]
<class 'numpy.ndarray'>

Как создать пользовательскую функцию, которая возвращает числа от 1 до N

Как только вы разработаете логику своего кода Python, следующим шагом станет создание функций, которые позволят вам повторно использовать ваш код.

Давайте посмотрим, как написать функцию для создания списка чисел от 1 до N. Мы будем использовать подход, основанный на функциях range() и list().

Чтобы определить функцию в Python, необходимо использовать ключевое слово def, определить параметр функции n и использовать ту же логику, основанную на функциях range() и list(), которые мы использовали ранее.

Вот функция Python:

def get_numbers_from_1_to_n(n):
    numbers = list(range(1,n+1))
    return numbers

Давайте вызовем функцию, чтобы убедиться, что она работает. Она должна вывести числа от 1 до 10.

print(get_numbers_from_1_to_n(10))

[output]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Вывод правильный!

Если вы хотите познакомиться с функциями Python поближе, я создал отдельный урок, в котором более подробно объясняются функции Python.

Краткое содержание этого урока

В этом уроке по Python мы рассмотрели различные способы написания программы для создания списка чисел от 1 до N.

При разработке приложений на Python вам придется реализовать один из рассмотренных нами подходов, в идеале наиболее питоновский и лаконичный, например, основанный на range().

В то же время я надеюсь, что вам было полезно увидеть, как решить эту проблему несколькими способами.

Автор

Фото аватара

Владимир Михайлов

Программист на Python с большим количеством опыта и разнообразных проектов.