Ошибка в тернарном операторе на python
Среда пишет, что ожидается окончание выражения. Объясните, пожалуйста, почему так нельзя?
while a != b:
a -= b if a > b else b -= a
Ответы (2 шт):
Автор решения: magistar
→ Ссылка
Два разных присваивания в такой конструкции быть не может. Можно только так:
a = a - b if a > b else b - a
То есть присваиваем переменной или одно, или другое. Ваше выражение можно записать в две строки:
a = a - b if a > b else a
b = b - a if b > a else b
Автор решения: SergFSM
→ Ссылка
одновременно два присваивания можно сделать так:
a,b = (a-b,b) if a>b else (a,b-a)