Если вы начинаете программировать на 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().
В то же время я надеюсь, что вам было полезно увидеть, как решить эту проблему несколькими способами.