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.
Eşittir
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]
x += 5
x'i 5 arttır demektir, sözel olarak merak ediyorsan.
Mega Therion
kullanıcısına yanıt
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.
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.
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme