Python

Python 3. Взаимодействие split() с input()

A, b = input() # пытаюсь ввести 2 числа через пробел. но выдаёт ошибку.
A, b = input().split()# ввожу 2 числа через пробел и не выдаёт ошибку.

Почему? Раньше просто замечал, что через запятую двум переменным нельзя дать одно значение .
a, b = 2 # выдаёт ошибку
А вот с input + split получается.
Но split() как я понял разделитель строк.
Не понимаю (((
ПL
Пашка Lins
175
Метод split преобразует строку в массив строк: результатом "2 3".split() будет ["2", "3"].

Сильно упрощая, если слева от = несколько переменных (через запятую), а справа массив (список, кортеж), то происходит автоматическая деструктуризация массива в набор значений. И этот набор значений присваивается набору переменных - одно значение одной переменной.

Операторы:
a, b = 3, 5
a, b = [3, 5]
a, b = (3, 5)
дают одинаковый результат: переменной a присваивается 3, переменной b - 5.
Алексeй Павлючков
Алексeй Павлючков
86 470
Лучший ответ
даже еще веселее - попробуй после
A, b = input().split()
вывести print(A+b)
input() возвращает строку, а не число. чтобы получить число, необходимо привести сроку к числу
a = int(input()),
вариант a,b = с числами будет сложнее немного
Денис Орлов
Денис Орлов
25 445
у меня все ок. Какая ошибка хоть напишите
если вы за переменную берете A, то будет ошибка, конечно, нельзя чтобы переменные с заглавной буквы начинались
перечитал, понял вопрос. Через пробел вы задать можете только одно значение одной переменной. если переменных несколько и каждой надо передать значения через пробел то используется split()
вы абсолютно неправильно все поняли.

Для начала вам стоит узнать что такое кортеж.
Например a, b, c - кортеж, причем переменные могут быть совершенно разного типа

Далее почитайте как работает развертывание

split(separator) - возвращает список, сформированный из строки, каждый элемент которого размещен в исходной строке между сепараторами либо между началом/концом строки и сепаратором

a, b = input().split()
Это неявное развертывание, при котором каждому эелементу кортежа слева передается ссылка на элемент списка справа.

Причем если количество переменных слева и значений справа будет отличаться то вы получите ошибку
Функция split() разбивает строку на масив через символ или строку указанную в аргументе, по-умолчанию это пробельный символ, и если вы введете числа через пробел, то split() вернет масссив (список) чисел без пробелов. Например:

>>> input().split()
2 3 4 5
>>> ["2", "3", "4", "5"]