Разделение переменной на переменные
Допустим, на вход подается строка: 2 + x = 12
программа должна разделить это на 4 переменные:
first = 2
second = x
third = 12
task = "+"
как такое сделать?
Ответы (1 шт):
Вы можете использовать регулярные выражения для вашей задачи (или нет - см. примечание в конце):
import re
inp = "2 + x = 12" # или inp = input() для ввода из консоли
first, task, second, __, third = re.split(r"\s+", inp)
first = int(first)
third = int(third)
После этого кода будут значения переменных такие:
first = 2 second = "x" third = 12 task = "+"
Объяснение:
Функция
split()модуляre(т.е.re.split()) принимает как первый параметр регулярное выражение, для которого второй параметр будет делиться на части.В регулярном выражении
r"\s+":\sзначит пробел (space) или табулятор (или другой пустой символ),+значит, что такой символ может повториться.
Значит, строка
inpбудет делиться на основании присутствия подстрок из пустых символов.Таким образом, результатом использования функции
re.split()будет список["2", "+", "x", "=", "12"]из которого вытащим отдельные элементы так называемой распаковкой списка:
first, task, second, __, third = ...Для ненужного элемента
=мы использовали (чудесное) имя__, чтобы ясно было видеть, что нам его не надо.
Примечание:
В вашем конкретном случае, когда между отдельными частями находятся только пробелы, возможно обойтись без регулярных выражений (import re) а применить только стандартную функцию split():
first, task, second, __, third = inp.split()