Как ввести последовательность чисел в питоне
Перейти к содержимому

Как ввести последовательность чисел в питоне

  • автор:

Числовые последовательности для цикла Python

Если вам нужно перебрать последовательность чисел, в этом вам поможет встроенная функция range() . Эта функция генерирует арифметические прогрессии:

>>> for i in range(5): . print(i) . 0 1 2 3 4 >>> 

В примере выше, указанный аргумент range() число 5 — конечная точка, никогда не является частью сгенерированной последовательности. Например, range(10) генерирует 10 значений, для элементов последовательности длиной 10, проще для понимания от 0 до 9. В классе range() можно менять диапазон, указывая начальное значение, отличное от 0 или указать другое приращение последовательности (задать «шаг»), даже отрицательное:

range(5, 10) 5, 6, 7, 8, 9 range(0, 10, 3) 0, 3, 6, 9 range(-10, -100, -30) -10, -40, -70 

Чтобы перебрать индексы последовательности, вы можете комбинировать range() ]f-range и len() следующим образом:

>>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> for i in range(len(a)): . print(i, a[i]) . 0 Mary 1 had 2 a 3 little 4 lamb >>> 

В большинстве таких случаев удобно использовать функцию enumerate() .

Странная вещь происходит, если вы просто распечатаете range(10) :

>>> print(range(10)) range(0, 10) >>> 

Во многих отношениях возвращаемый объект range() ведет себя так, как будто это список, но на самом деле range() не создает список. Это объект, который возвращает элементы желаемой последовательности, только тогда, когда вы выполняете итерацию, тем самым экономя оперативную память.

Мы говорим, что такой объект является итеративным, то есть пригодным для функций или конструкции, которые ожидают что-то, из чего они могут получать последовательные элементы до тех пор, пока они не закончатся. Выше мы видели, что оператор for является такой конструкцией, а примером функции принимающей итеративный объект, является sum() :

>>> sum(range(4)) # 0 + 1 + 2 + 3 6 >>> 

Позже мы увидим больше функций, которые возвращают итерируемые значения и принимают их как аргументы. И наконец, может быть, вам интересно, как получить список list() из диапазона range ?

>>> list(range(4)) [0, 1, 2, 3] >>> 
Примеры использования:
>>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> list(range(0, 30, 5)) [0, 5, 10, 15, 20, 25] >>> list(range(0, 10, 3)) [0, 3, 6, 9] >>> list(range(0, -10, -1)) [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] >>> list(range(0)) [] >>> list(range(1, 0)) [] 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Проверка условий, конструкция if/elif/else
  • Конструкция if/else в одну строку
  • Имитация оператора switch/case
  • while, цикл по условию
  • Цикл for
  • Числовые последовательности для цикла Python
  • Практическое применение for/in/else циклов
  • Инструкции break, continue и блок else в циклах Python
  • Оператор pass
  • Конструкция match/case, сопоставление с образцом

Пользовательский ввод чисел в строку

Функция input() возвращает все в виде строки, поэтому нужно выполнить явную конвертацию, чтобы получить целое число. Для этого пригодится функция int() .

 
# вывод суммы двух чисел, введенных пользователем

num_1 = int(input("Введите первое число: "))
num_2 = int(input("Введите второе число: "))

print("Тип num_1:", type(num_1))
print("Тип num_2:", type(num_2))

result = num_1 + num_2
print("Сумма введенных чисел:", result)

int(string) конвертирует переданную строку в целое число.

Ввода числа float

По аналогии можно использовать функцию float() .

 
float_1 = float(input("Введите число: "))
print("Тип float_1:", type(float_1))

result = float_1 ** 2
print("Число в квадрате:", result)
Введите число: 1.8 Тип float_1: Число в квадрате: 3.24

Ввод чисел в строку через пробел

Но что произойдет, если вы не знаете количество элементов ввода?

Предположим, что от пользователя нужно получить список чисел и вернуть их сумму. При этом вы не знаете количество элементов в этом списке. Как же запросить ввод для него?

Для этого можно использовать split и функции map . Метод split() делит введенную строку на список подстрок. После этого map() выполняет функцию int() для каждого элемента списка.

 
entered_list = input("Введите список чисел, разделенных пробелом: ").split()
print("Введенный список:", entered_list)

num_list = list(map(int, entered_list))
print("Список чисел: ", num_list)
print("Сумма списка:", sum(num_list))
Введите список чисел, разделенных пробелом: 1 34 4 6548 Введенный список: ['1', '34', '4', '6548'] Список чисел: [1, 34, 4, 6548] Сумма списка: 6587
  • input() возвращает список, содержащий числа, разделенные запятыми.
  • split() возвращает список строк, разделенных пробелами.
  • map() выполняет операцию int() для всех элементов списка и возвращает объект map .
  • list() конвертирует объект map снова в список.

Есть альтернативный способ получить список:

 
entered_list = input("Введите список чисел, разделенных пробелом: ").split()

num_list = [int(i) for i in entered_list]
print("Список чисел: ", num_list)

Обработка ошибок при пользовательском вводе

Часто при конвертации типов возникает исключение ValueError .

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

Например, пользователь вводит случайную строку в качестве возраста.

 
num = int(input("Введите возраст: "))

Функция int() ожидает целочисленное значение, обернутое в строку. Любое другое значение приводит к ошибке. Вот что будет, если, попробовать ввести «Двадцать»:

Введите возраст: Двадцать --------------------------------------------------------- ValueError Traceback (most recent call last) in ----> 1 num_1 = int(input('Введите возраст: ')) ValueError: invalid literal for int() with base 10: 'Двадцать'

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

 
try:
num = int(input("Введите число: "))
print("Все верно. Число:", num)
except ValueError:
print("Это не число.")

Посмотрим, как ввод «Двадцать» сработает теперь:

Введите число: Двадцать Это не число.

В этом примере если пользователь вводит нечисловое значение, то возникает исключение. Однако оно перехватывается инструкцией except , которая в ответ выводит: «Это не число». Благодаря использованию конструкции try-except программа не прекратит работать при некорректном вводе.

Я создал этот блог в 2018 году, чтобы распространять полезные учебные материалы, документации и уроки на русском. На сайте опубликовано множество статей по основам python и библиотекам, уроков для начинающих и примеров написания программ.

Мои контакты: Почта
Python Q https://yandex.ru/q/loves/python Online

Python Q CEO Pythonru admin@pythonru.com https://secure.gravatar.com/avatar/b16f253879f7349f64830c64d1da4415?s=96&d=mm&r=g CEO Pythonru Python Александр Редактор https://t.me/cashncarryhttps://pythonru.com/https://yandex.ru/q/profile/cashnc/ PythonRu.com admin@pythonru.com Alex Zabrodin 2018-10-26 Online Python, Programming, HTML, CSS, JavaScript

Функция range#

Функция range возвращает неизменяемую последовательность чисел в виде объекта range.

range(stop) range(start, stop[, step]) 
  • start - с какого числа начинается последовательность. По умолчанию - 0
  • stop - до какого числа продолжается последовательность чисел. Указанное число не включается в диапазон
  • step - с каким шагом растут числа. По умолчанию 1

Функция range хранит только информацию о значениях start, stop и step и вычисляет значения по мере необходимости. Это значит, что независимо от размера диапазона, который описывает функция range, она всегда будет занимать фиксированный объем памяти.

Самый простой вариант range - передать только значение stop:

In [1]: range(5) Out[1]: range(0, 5) In [2]: list(range(5)) Out[2]: [0, 1, 2, 3, 4] 

Если передаются два аргумента, то первый используется как start, а второй - как stop:

In [3]: list(range(1, 5)) Out[3]: [1, 2, 3, 4] 

И чтобы указать шаг последовательности надо передать три аргумента:

In [4]: list(range(0, 10, 2)) Out[4]: [0, 2, 4, 6, 8] In [5]: list(range(0, 10, 3)) Out[5]: [0, 3, 6, 9] 

С помощью range можно генерировать и убывающие последовательности чисел:

In [6]: list(range(10, 0, -1)) Out[6]: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] In [7]: list(range(5, -1, -1)) Out[7]: [5, 4, 3, 2, 1, 0] 

Для получения убывающей последовательности надо использовать отрицательный шаг и соответственно указать start - большим числом, а stop - меньшим.

В убывающей последовательности шаг тоже может быть разным:

In [8]: list(range(10, 0, -2)) Out[8]: [10, 8, 6, 4, 2] 

Функция поддерживает отрицательные значения start и stop:

In [9]: list(range(-10, 0, 1)) Out[9]: [-10, -9, -8, -7, -6, -5, -4, -3, -2, -1] In [10]: list(range(0, -10, -1)) Out[10]: [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] 

Объект range поддерживает все операции, которые поддерживают последовательности в Python, кроме сложения и умножения.

Проверка, входит ли число в диапазон, который описывает range:

In [11]: nums = range(5) In [12]: nums Out[12]: range(0, 5) In [13]: 3 in nums Out[13]: True In [14]: 7 in nums Out[14]: False 

Начиная с версии Python 3.2, эта проверка выполняется за постоянное время (O(1)).

Можно получить конкретный элемент диапазона:

In [15]: nums = range(5) In [16]: nums[0] Out[16]: 0 In [17]: nums[-1] Out[17]: 4 

Range поддерживает срезы:

In [18]: nums = range(5) In [19]: nums[1:] Out[19]: range(1, 5) In [20]: nums[:3] Out[20]: range(0, 3) 

Можно получить длину диапазона:

In [21]: nums = range(5) In [22]: len(nums) Out[22]: 5 

А также минимальный и максимальный элемент:

In [23]: nums = range(5) In [24]: min(nums) Out[24]: 0 In [25]: max(nums) Out[25]: 4 

Кроме того, объект range поддерживает метод index:

In [26]: nums = range(1, 7) In [27]: nums.index(3) Out[27]: 2 

Как ввести последовательность чисел в питоне

Работа с последовательностями с помощью функции range() в Python

Работа с последовательностями с помощью функции range() в Python

10 июня 2023
Оценки статьи
Еще никто не оценил статью

Функция range() в Python является мощным инструментом для создания итерируемых последовательностей целых чисел.

Она позволяет генерировать последовательности чисел в определенном диапазоне с заданным шагом.

В этой статье мы рассмотрим функцию range() подробнее, а также предоставим примеры ее использования.

Основной синтаксис range()

Функция range() принимает один, два или три аргумента и возвращает объект типа range, который может быть преобразован в другие типы последовательностей, такие как список или кортеж.

Синтаксис:

range(stop) range(start, stop) range(start, stop, step) 

Где:

  • stop : конечное число, до которого будет идти последовательность (не включая само число).
  • start : начальное число, с которого начнется последовательность (по умолчанию равно 0).
  • step : шаг, с которым будет увеличиваться или уменьшаться каждое число последовательности (по умолчанию равен 1).

Примеры использования range()

Пример 1: Печать чисел от 0 до 4

for num in range(5):  print(num)  # Вывод # 0 # 1 # 2 # 3 # 4 

Пример 2: Печать чисел от 2 до 8 с шагом 2

for num in range(2, 9, 2):  print(num)  # Вывод # 2 # 4 # 6 # 8 

Пример 3: Создание списка чисел от 1 до 10

numbers = list(range(1, 11)) print(numbers) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

Пример 4: Итерация с использованием индексов

fruits = ["apple", "banana", "cherry"] for i in range(len(fruits)):  print(fruits[i])  # Вывод # apple # banana # cherry 

Пример 5: Обратная итерация

for num in range(10, 0, -1):  print(num)  # Вывод # 10 # 9 # 8 # 7 # 6 # 5 # 4 # 3 # 2 # 1 

Заключение

Функция range() является мощным инструментом для работы с последовательностями целых чисел в Python.

Она позволяет генерировать числовые последовательности в заданном диапазоне с определенным шагом.

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

Меню категорий

    Загрузка категорий.

Добро пожаловать в Блог Разработчика Владислава Александровича.

Ведется медленная, но уверенная разработка функционала сайта.

Django Core: 0.3.4 / Next.js 1.0 / UPD: 05.06.2023

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *