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.