Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1

    [Python] errore inaspettato

    salve a tutti, ho bisogno di aiuto per un programma in python.

    codice:
    #!/usr/bin/python
    #classe che gestisce la rubrica
    
    class ppl():
        
        __name=''
        __surname=''
        __cell=''
        __street=''
        
        def ins(self):
            
            print('Inserisci i dati della persona: ')
    	print('I dati contrassegnati da * sono obbligatori\n') #qui mi da errore di indentazione.
    	self.__name=input('* Nome: ')
            self.__surname=input('* Cognome: ')
            self.__cell=input('Cellulare/Tel. fisso: ')
            self.__street=input('Indirizzo: ')
            
            i=0
            while i!=1:
                if self.__name=='' or self.__surname=='':
                    print('\n')
                    print('Inserire nome e cognome!')
                    self.__name=input('* Nome: ')
                    self.__surname=input('* Cognome: ')
                    continue
                else:
    		i=1
    L'errore che mi da dice questo:
    inconsistent use of tabs and spaces in indentation

    se provo a cancellare lo spazio non risolvo niente. Il rigo dell'input passa accanto al print e successivamente mi da di nuovo errore nello stesso punto.

    Come posso risolvere?

  2. #2
    Il messaggio di traceback (che non hai incollato) ti dice il numero di riga in cui si trova l'errore di indentazione.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  3. #3
    è qui che da errore:


    print('I dati contrassegnati da * sono obbligatori\n') #qui mi da errore di indentazione.


    ma non capisco xkè. anche se cancello l'indentazione lo da lo stesso

  4. #4
    Evidentemente non hai indentato quella linea.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  5. #5
    è strano xkè come vedi anche qui ho incollato il codice e sta indentato.
    Se lo apro con Notepad++ però mi da un'indentatura diversa da quella che mi da su IDLE.

  6. #6
    Il messaggio di errore dovrebbe riportare il numero della linea "sdentata".
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  7. #7
    si lo so, mi dice linea 14, cioè quella che ho segnato.
    Ma se provo a cancellare l'indentatura continua a darmi lo stesso errore.
    Non ci sono spazi superflui tra un rigo e l'altro e l'indentatura sembra corretta.

  8. #8
    Prova cosi:

    codice:
    #!/usr/bin/python
    #classe che gestisce la rubrica
    
    class ppl():
    
        __name=''
        __surname=''
        __cell=''
        __street=''
    
        def ins(self):
            print('Inserisci i dati della persona: ')
        	print('I dati contrassegnati da * sono obbligatori\n') #qui mi da errore di indentazione.
        	self.__name=input('* Nome: ')
            self.__surname=input('* Cognome: ')
            self.__cell=input('Cellulare/Tel. fisso: ')
            self.__street=input('Indirizzo: ')
    
            i=0
            while i!=1:
                if self.__name=='' or self.__surname=='':
                    print('\n')
                    print('Inserire nome e cognome!')
                    self.__name=input('* Nome: ')
                    self.__surname=input('* Cognome: ')
                    continue
                else:
    		i=1
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  9. #9
    Alcuni consigli:

    - __name, __surname, ecc... sono attributi *privati* ovvero non accessibili se non dall'interno della tua stessa classe. Non credo tu li voglia usare.

    - I nomi delle classi dovrebbero cominciare con una lettera maiuscola (ppl -> Ppl, vedi PEP-8: http://www.python.org/dev/peps/pep-0008/ )

    - Invece di "if self.__name=='' or self.__surname==''" dovresti usare: "if not self.__name or not self.__surname:"

    - Vedo che utilizzi Python 3.0, che per ora io sconsiglio sempre di usare in favore della 2.6.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  10. #10
    ho risolto il problema.
    Ho riscritto la classe in modo identico e ora non mi da errore.

    x quanto riguarda i nome delle variabili li avevo messi così xkè avevo capito una cosa diversa del loro ruolo.
    Pensavo che scrivendoli così fossero accessibili in modo diverso.
    Grazie, modificherò. Non ho ben capito il not nell'if però.

    Che vantaggi ci sono tra python 3.0 e 2.6?

    Visto che mi trovo ti chiedo un'altra cosa anche.

    Quando uso la funzione write() come faccio a dire che deve andare a capo rigo?
    e come faccio a dirgli che deve scrivere sempre alla fine del file?

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.