2015-10-15 20 views
5

nuovo in Python e cercando di lottare con i punti più fini degli operatori di assegnazione. Ecco il mio codice e quindi la domanda.perché x - = x + 4 restituisce -4 invece di 4

x = 5 
    print(x) 
    x -= x + 4 
    print(x) 

il codice precedente, restituisce 5 la prima volta, ma ancora -4 alla seconda stampa. Nella mia testa sento che il numero dovrebbe essere in realtà 4 mentre sto leggendo questo come x = x - x +4. Tuttavia, so che è sbagliato come python sta restituendo -4 invece. Sarei gentile se qualcuno potesse spiegarmi (in parole povere come io sono un novizio) dato che stavo davvero pestando la testa sul tavolo su questo.

+3

'x- = x + 4' significa' 5- (5 + 4) ' –

risposta

14

x -= x + 4 può essere scritta come:

x = x - (x + 4) = x - x - 4 = -4 
+0

grazie! Mi sono reso conto che poco dopo ho postato questo, ma ... speriamo che qualcuno nella stessa barca vedrà questo e non commettere il mio errore: P – prance

+0

Ovviamente, sarebbe molto meglio scrivere come 'x = -4'. –