Найти тему

Ввод двух чисел в одной строке в Python

Оглавление

Часто возникает задача ввести несколько чисел в одной строке, например, координаты точки или размеры матрицы. В 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) в зависимости от задачи.
  • Разделители: Можете использовать другие разделители вместо пробела, например, запятую или точку с запятой.