#python #swap
#python #обмен
Вопрос:
Это код, который я написал, также я хочу знать, почему x и y не поменяли местами числа?
x = 3
y = 4
x = y
y = x
print (y)
print (x)
Вывод:
4
4
Комментарии:
1. Вы назначаете
x=y
(который устанавливает x равным 4), затемy=x
(который устанавливает y равным 4). Почему он не будет печатать то, что у вас есть? Если вы хотите поменять местами, используйтеx,y=y,x
.2. нет, я просто хотел знать, почему. я уже знаю, как поменять местами. Спасибо
Ответ №1:
Ваш код, по сути, делает это:
x = 3
y = 4
x = y # y is 4
y = x # x is now 4 also
Чтобы поменять местами значения, хранящиеся в переменных, у вас обычно должна быть «временная» переменная.
def swap(x, y):
temp = x
x = y
y = temp
Комментарии:
1. Вам не нужно использовать временную переменную. В Python просто
x,y=y,x
.2. Вам не нужна временная переменная.
x, y = y, x
3. Этот парень новичок, на самом деле это то, что я делал с Javascript. Однако они верны, x, y = y, x . Это параллельное присвоение. Все те, которые будут назначены в переменной, будут сначала выполнены, а затем сохранены в соответствующей переменной.
Ответ №2:
Ваш код присваивает x y, а затем присваивает его обратно.
x = 3 #x=3
y = 4 #y=4
x = y # x = y = 4 -> x=4
y = x # y = x = 4 -> y=4
Если вы хотите поменять местами val, просто сделайте это
x = 3
y = 4
x,y = y,x
Он также работает с любым количеством val
x=3
y=4
z=5
#you can also assign like this
x,y,z = 3,4,5
x,y,z = y,z,x
#this makes x=4, y=5, z=3