Часто возникает задача ввести несколько чисел в одной строке, например, координаты точки или размеры матрицы. В Python это можно сделать несколькими способами.
1. Использование split() для разделения строки:
- Ввод данных: Пользователь вводит числа через пробел.
- Разделение строки: Функция split() разбивает строку по пробелам и возвращает список полученных подстрок.
- Преобразование в числа: Каждую подстроку преобразуем в число с помощью int() или float().
# Ввод двух чисел через пробел
numbers_str = input("Введите два числа через пробел: ")
# Разделение строки и преобразование в числа
numbers = list(map(int, numbers_str.split())) # Для целых чисел
# Или для чисел с плавающей точкой:
# numbers = list(map(float, numbers_str.split()))
# Распаковка в переменные
a, b = numbers
print(a, b)
2. Использование модуля re для более гибкого разбора:
- Регулярные выражения: Модуль re позволяет использовать регулярные выражения для более сложного разбора строк.
- Извлечение чисел: С помощью регулярных выражений можно извлечь числа из строки, даже если они разделены другими символами.
import re
# Ввод данных
numbers_str = input("Введите два числа: ")
# Извлечение чисел с помощью регулярного выражения
numbers = list(map(float, re.findall(r'\d+\.\d+|\d+', numbers_str)))
# Распаковка в переменные
a, b = numbers
print(a, b)
3. Использование модуля numpy:
- Для больших массивов чисел: Если вы работаете с большими массивами чисел, модуль numpy может быть более эффективным.
- Функция fromstring(): Преобразует строку в массив NumPy.
import numpy as np
# Ввод данных
numbers_str = input("Введите числа через пробел: ")
# Преобразование в массив NumPy
numbers = np.fromstring(numbers_str, sep=' ')
print(numbers)
Выбор метода:
- Простой ввод: Для простого ввода чисел через пробел достаточно первого способа.
- Сложные форматы: Если числа разделены другими символами или имеют сложный формат, используйте регулярные выражения.
- Большие массивы: Для работы с большими массивами чисел модуль numpy может быть более эффективным.
Важно:
- Проверка ввода: Всегда проверяйте введенные данные, чтобы избежать ошибок при преобразовании в числовой формат.
- Тип данных: Выберите подходящий тип данных (int, float) в зависимости от задачи.
- Разделители: Можете использовать другие разделители вместо пробела, например, запятую или точку с запятой.