Разделение переменной на переменные
Допустим, на вход подается строка: 2 + x = 12
программа должна разделить это на 4 переменные:
first = 2
second = x
third = 12
task = "+"
как такое сделать?
Допустим, на вход подается строка: 2 + x = 12
программа должна разделить это на 4 переменные:
first = 2
second = x
third = 12
task = "+"
как такое сделать?
Вы можете использовать регулярные выражения для вашей задачи (или нет - см. примечание в конце):
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()