Arama butonu
Bu konudaki kullanıcılar: 1 misafir
5
Cevap
274
Tıklama
0
Öne Çıkarma
+= operatörü hk yardım
M
4 yıl
Yarbay
Konu Sahibi

Arkadaşlar Python'a yeni başladım. Döngülere falan geldim ama şu operatörü bir türlü mantığıma oturtamadım. Bu operatürün temel mantığını birisi tam olarak anlatabilir mi? Mesela en çok kafamdaki şey x += (value) eşit midir x= x+(value)? Şunun arasında bir fark var ise(ben şu an göremiyorum) onu anlarsam sanırım tam olarak kafamda oturtup geçeceğim.



K
4 yıl
Yüzbaşı

M
4 yıl
Yarbay
Konu Sahibi

quote:

Orijinalden alıntı: kirmik

Eşittir
Cevabınız için teşekkür ederim. Ben de biraz google dan bakıyordum konuyu açtıktan sonra şöyle bir şey buldum, kafam iyice karıştı doğrusu.

x += 5 is not exactly same as saying x = x + 5 in Python.

Note here:

In [1]: x = [2,3,4]
In [2]: y = x
In [3]: x += 7,8,9
In [4]: x
Out[4]: [2, 3, 4, 7, 8, 9]
In [5]: y
Out[5]: [2, 3, 4, 7, 8, 9]
In [6]: x += [44,55]
In [7]: x
Out[7]: [2, 3, 4, 7, 8, 9, 44, 55]
In [8]: y
Out[8]: [2, 3, 4, 7, 8, 9, 44, 55]
In [9]: x = x + [33,22]
In [10]: x
Out[10]: [2, 3, 4, 7, 8, 9, 44, 55, 33, 22]
In [11]: y
Out[11]: [2, 3, 4, 7, 8, 9, 44, 55]


Bu mesaja 1 cevap geldi.
F
4 yıl
Yarbay

x += 5

x'i 5 arttır demektir, sözel olarak merak ediyorsan.



H
4 yıl
Binbaşı

giris icin bu kadar ayrintili bilmeye gerek yok bence. x += 5 ile x = x+5 yi cogu durumda ayni olarak dusunebilirsin diger turlu kafa karistirir.

eger cok merak ediyorsan pointer - reference mantigini bilmen lazim.

y = x (y, x in isaret ettigi objeye isaret ediyor. baska bir deyisle x ve y nin bagli olduklari adres ayni.)

x += [44,55] (bu x in bagli oldugu adrese gibip buradaki listeyi degistiriyor, y de ayni adrese bagli oldugu icin y de degismis oluyor)

x = x + [33,22] (bu x +[ 33,22] olmak uzere yeni bir obje olusturuyor ve x in adresini bu objenin adresine bagliyor, sonuc olarak
x ve y nin adresleri farkli olmus olacak)

burada id(x) bir objenin adresini gosterir. python da denersen x += 5 yaptiginda id(x) degismez ama x = x + 5 yaparsan degisir.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Mega Therion
M
4 yıl
Yarbay
Konu Sahibi

quote:

Orijinalden alıntı: hynx

giris icin bu kadar ayrintili bilmeye gerek yok bence. x += 5 ile x = x+5 yi cogu durumda ayni olarak dusunebilirsin diger turlu kafa karistirir.

eger cok merak ediyorsan pointer - reference mantigini bilmen lazim.

y = x (y, x in isaret ettigi objeye isaret ediyor. baska bir deyisle x ve y nin bagli olduklari adres ayni.)

x += [44,55] (bu x in bagli oldugu adrese gibip buradaki listeyi degistiriyor, y de ayni adrese bagli oldugu icin y de degismis oluyor)

x = x + [33,22] (bu x +[ 33,22] olmak uzere yeni bir obje olusturuyor ve x in adresini bu objenin adresine bagliyor, sonuc olarak
x ve y nin adresleri farkli olmus olacak)

burada id(x) bir objenin adresini gosterir. python da denersen x += 5 yaptiginda id(x) degismez ama x = x + 5 yaparsan degisir.
Hocam işte aradığım cevap tam olarak buydu çok teşekkür ederim zaman ayırdığınız için.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.