Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    54

    [Python] Incremento

    Ciao a tutti,
    sono nuovo nel mondo di python e mi sono ritrovato di fronte a un problema che tutt'ora non riesco a risolvere
    Ho letto svariate guide in giro e ho capito che in Python non funziona come C per quanto riguarda gli incrementi di una variabile intera. Ho letto che ci sono tipi di variabili "immutabili" e tipi di variabili "mutabili".
    Int è una variabile immutabile..
    Ma allora, come si fa ad effettuare un incremento (escludendo ciclo for e while) ?
    Io ho bisogno di una variabile di tipo int per memorizzare la posizione di una lista di valori, e ogni volta che premo un bottone (Gtk) vorrei che questa lista passi all'elemento successivo.
    All'inizio l'ho pensata come a=a+1 e poi mi sono resto conto che questo non era possibile in Python.
    Oppure esiste una funzione per trovare l'index dell'elemento corrente in una lista?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    54
    Ho risolto in una maniera che non mi sembra molto corretta...
    Ho creato un array di 1 elemento ( i[0] )
    In questa maniera riesco ad incrementarlo con i[0]=i[0]+1
    è l'unico modo per farlo? o ne esistono altri?

  3. #3
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263
    codice:
    i = 0
    i = i + 1
    E` perfettamente lecito. Oppure non ho capito una mazza?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    54
    No non è lecito nel senso che per quanto ho capito io se in Python dichiari una variabile
    i=0
    Puoi si incrementarla ed estrane il valore facendo
    i=i+1
    Il problema è che dopo avere effettuato questa operazione i tornerà a puntare su 0, questo perchè le variabili Integer,String,Float, etc.. in Python sono immutabili, una volta dichiarato il suo valore punteranno sempre a quel valore

    In poche parole se io faccio una roba del tipo:

    i=0

    a=[2] //dichiaro un array di 2 elementi

    i=i+1
    print a[i] //stampo il primo elemento

    i=i+1
    print a[i] //stamperà sempre il primo elemento


    Questo perchè dato che i è Immutabile ovviamente il suo valore +1 sarà sempre 0+1 cioè 1 !

    O almeno questo è quello che ho capito io, e l'unica maniera per effettuare un incremento è con il while o con il for, ma a me non serve un ciclo...

  5. #5
    Ciao....non è vero che le variabili in python puntano sempre al primo valore che gli assegni.

    Tu a quella variabile i puoi assegnarli quello che vuoi. Se tu fai:
    codice:
    i = 1
    print i   ## stampa 1
    
    i = "pippo"
    print i      ## stampa pippo
    le variabili in python prendono il valore che gli dai...per cui se tu incrementi la i facendo semplicemente i += 1 dovrebbe andare

  6. #6
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263
    Originariamente inviato da rodfval
    le variabili Integer,String,Float, etc.. in Python sono immutabili, una volta dichiarato il suo valore punteranno sempre a quel valore
    Le variabili, per definizione oserei direi, variano. Se non variassero sarebbero costanti.
    Alcuni tipi di oggetti, quelli che citi, sono immutabili. Tra oggetti e variabili c'e` una certa differenza...

    Hai provato a verificare quello che affermi?

    codice:
    >>> i = 0
    >>> print(i)
    0
    >>> i = i + 1
    >>> print(i)
    1
    >>> i = i + 1
    >>> print(i)
    2
    >>> print(i)
    2

    Originariamente inviato da rodfval
    a=[2] //dichiaro un array di 2 elementi
    No, e` una lista di un elemento (2).

  7. #7
    rodfval mi dispiace ma non e' cosi gli interi sono mutabili. Sono immutabili le stringhe e le tuple e forse anche altre strutture, ma gli interi no (e anche i float).

    codice:
    i = 0
    print i #stampa 0
    
    i += 1
    print i #stampa 1

  8. #8
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460
    ma usare l'operatore di incremento unitario?

    codice:
    j=j++
    tra le altre cose è anche l'unico operatore su cui non si può effettuare un overloading semantico e quindi in ogni caso significa solo e soltanto "incrementa di 1 unità"

  9. #9
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263
    Originariamente inviato da Freax
    ma usare l'operatore di incremento unitario?
    L'uovo di Colombo!

    codice:
    >>> j = 0
    >>> j = j++
      File "<stdin>", line 1
        j = j++
              ^
    SyntaxError: invalid syntax
    E la frittata di uova di Colombo!

  10. #10
    Utente di HTML.it L'avatar di Freax
    Registrato dal
    Jul 2006
    Messaggi
    460
    Originariamente inviato da toraz
    L'uovo di Colombo!

    codice:
    >>> j = 0
    >>> j = j++
      File "<stdin>", line 1
        j = j++
              ^
    SyntaxError: invalid syntax
    E la frittata di uova di Colombo!
    O.o in python non esiste l'operatore di incremento?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.