Контрольные задания > Целочисленным переменным a, b, c надо присвоить соответственно значения 1, 2 и 3. Какой оператор ввода соответствует входному потоку 2 1 3?
Вопрос:
Целочисленным переменным a, b, c надо присвоить соответственно значения 1, 2 и 3. Какой оператор ввода соответствует входному потоку 2 1 3?
Правильный ответ: `b,c,a = map(int, input().split())`
Разберем почему:
1. `input()`: Эта функция считывает строку из стандартного ввода (обычно с клавиатуры). В данном случае, пользователь должен ввести числа `2 1 3`, разделенные пробелами, и нажать Enter.
2. `.split()`: Метод `split()` разбивает строку на список подстрок, используя пробел в качестве разделителя. Таким образом, строка `'2 1 3'` превратится в список `['2', '1', '3']`. Важно отметить, что элементы этого списка - строки, а не числа.
3. `map(int, ...)`: Функция `map()` применяет функцию `int` к каждому элементу списка `['2', '1', '3']`. Функция `int()` преобразует строку в целое число. Результатом будет итерируемый объект, который можно преобразовать в список чисел `[2, 1, 3]`.
4. `b, c, a = ...`: Здесь происходит распаковка списка `[2, 1, 3]` в переменные `b`, `c` и `a` соответственно. То есть, переменной `b` присваивается значение `2`, переменной `c` присваивается значение `1`, а переменной `a` присваивается значение `3`.
Таким образом, после выполнения этой строки кода, переменные будут иметь следующие значения:
* `a = 3`
* `b = 2`
* `c = 1`
А нам нужно, чтобы было:
* `a = 1`
* `b = 2`
* `c = 3`
Значит, чтобы получить желаемый результат, нужно поменять переменные местами: `b, c, a = map(int, input().split())`