Найти - Пользователи
Полная версия: Проясните ситуацию
Начало » Python для новичков » Проясните ситуацию
1
tmvrus
Здравствуйте.
Поставила в тупик вот такая конструкция языка
x = 'X'
y = 'Y'
x,y = y,x
я наивно полагал что это тоже самое что и
x = 'X'
y = 'Y'
x = y
y = x
То есть в итоге в переменные имеют одно и тоже значение, во втором случае это так а в первом нет.
проясните такое повидение интерпретатора
tmvrus
питон версии 2.6.2
pasaranax
вроде, это называют “синтаксический сахар” :) приятная конструкция для массового присваивания, которая может использоваться для обмена переменными значениями
bw
> x,y = y,x

1. Справа. y,x это кортеж. Т.е. эти значения заворачиваются в кортеж.
2. Слева. Это другой кортеж, просто в “развернутом” виде (не знаю как правильнее выразиться, поправьте мой русский).

Вот расписанная операция сего:
tuple_src  = (y, x)
tuple_dest = tuple_src
x = tuple_dest[0]
y = tuple_dest[1]
Это тоже самое:
(x, y) = (y, x)
Просто для образования кортежа необязательно указывать скобки: x, – это кортеж, будь уверен :-). Как как-то пропустил такую запятую и весь день обшаривал тысячи строк кода в непонятках.
И почитай PEP8, да и вообще, после запятых обычно ставятся пробелы.

..bw
tmvrus
спасибо, теперь все гораздо понятнее
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB