Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum2 -- CercaGlobale -- Informativa su Cookie e Privacy

Questo Forum1 è in sola lettura -- Usa il Forum2


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Python 3.4.1 Shell
#1
mi trovo a leggere un libro di Python dove trovo un esempio di "eccezione"
che mi lascia dubbioso (alquanto) vedi immagine:
     
dopo la riga di print(b/a) premendo il tasto invio , la riga successiva except ZeroDivisionError è allineata alla precedente
(la e di except sotto la p di print per intenderci)
cosi facendo dal prompt dei comandi  , dopo l'ulteriore tasto invio , da l'errore SyntaxError ,
mentre se digito nel modo seguente , vedi immagine:
   
dopo la riga print(b/a) tasto invio e tasto tab a sx , la riga except ZeroDivisionError non è più allineata a print(a/b)
il prompt dei comandi non mi dà il SyntaxError e mi consente di digitare la riga successiva
print("Divisione per zero") e a seguire con il tasto invio il piccolo script di esempio Funziona !!
Ora la mia domanda è ,
lo spazio vuoto nelle righe di codice influisce nella stesura e funzionamento di Idle python 3.4.1 ?? 
 

 
Cita messaggio
#2
belle le variabili
ma python è arrivato gia a sta versione? sono fermo alla 2.7 perchè le guide che uso si riferiscono al 2.5 Wink 
prima di aprire un post usa il tasto cerca nel forum... forse il tuo problema è stato già trattato
Cita messaggio
#3
(01-09-2014, 14:03 )'albertotorc' Ha scritto: ...
Ora la mia domanda è ,
lo spazio vuoto nelle righe di codice influisce nella stesura e funzionamento di Idle python 3.4.1 ?? 


 
La sintassi di python è posizionale. Pertanto si, influiscono eccome.
L'indentazione indica i blocchi di codice (pertanto definisce l'esecuzione/interpretazione delle istruzioni - niente parentesi e simboli vari/strani).
E' per questo che è pulito, alla faccia di certi altri linguaggi (es. perl docet) che possono essere scritti in maniera illeggibile.

Bye,
Token

 

 
Cita messaggio
#4
non sono troppo convinto , ma come fai a sapere come usare gli spazi ?
come ho spiegato (vedi sopra) dopo print b/a dando invio la successiva riga si posiziona automaticamente
allineata alla precedente , mentre invece dovrebbe andare con la tabulazione rientrata a sx ,
stando a quanto dici , inoltre guarda che in python ci sono eccome le parentesi i simboli ecc.ecc.
diciamo che rispetto al C++ è sicuramente molto meno caotico.
ho l'impressione che il problema sia un'altro..........
(spero di essermi espresso chiaramente)
Cita messaggio
#5
Certo ci sono simboli e compagnia, ma non servono per strutturare un programma (in realtà si, c'è il ":"), ma ad una prima occhiata, l'indentazione ti dice già molto dell'andamento del programma (sta lì la pulizia).
L'indentazione in python la metti dopo un costrutto che si aspetta un blocco (come detto di solito finisce con ":"), tipo il "for"

for a in [1,2,3]:
    print ("stampo a")
    print (a)
print ("finito")

è diverso da

for a in [1,2,3]:
    print ("stampo a")
print (a)
print ("finito")


Per indentare puoi usare spazi o tabulazione, ne puoi usare quanti vuoi (di solito 3 o 4 spazi), purchè in numero uguale per ogni istruzione nel medesimo blocco (da qui il comportamento di Idle).
Quello che dici di Idle è l'uso normale: quando "vai a capo" mantiene la stessa indentazione in modo che tu possa scrivere direttamente la successiva istruzione (senza sbagliarti sulla "quantità di indentatura").

Bye,
Token
 

 

 

 

 

 

 
Cita messaggio
#6
scusa ma ho bisogno di chiarirmi bene le idee , con riferimento al Idle ufficiale fornito per intenderci da Python.org e all'esempio
che ho allegato , se ho capito bene devi allineare le varie righe del blocco (di una istruzione) da sx per esempio con 4 spazi
e magari usando i vari colori come aiuto ?
e ancora ogni blocco di diverse istruzioni può avere spazi di tabulazione diversi rispetto ad un'altro blocco ?
(anche se ovviamente usare gli stessi spazi è meglio).
eventualmente mi consigli un'altro editor ?
io uso anche (in ambiente win) visual studio 2013 pro che ha anche Python , ma mi sembra eccessivo , vorrei usare un'editor leggero per python e
quello di base mi sembrava buono..
cosa mi consigli e cosa intendi quando dici " è l'uso normale " ?
grazie
 
Cita messaggio
#7
Come ti ha spiegato Token, che è competente in linguaggi di programmazione, la base consiste ne poter scrivere righe di codice a vari livelli o annidamenti e questo viene definito dagli spazi:


DO N=CONTA
   L B =0
   DO N=CONT
      L B =38+B
      IF B=XB EXIT N=CONT ;.                                     280
   OD
   L A =80+A
   IF A=XA EXIT N=CONTA ;.                                    1750
OD

Questo semplice esempio in iso xilog tanto per capire, abbiamo due serie di cicli DO-OD annidati e naturalmente ognuno dispone della propria tabulazione, il primo dopo uno spazio e il secondo dopo due.
Giuseppe

 

 
Cita messaggio
#8
(03-09-2014, 10:05 )'albertotorc' Ha scritto: scusa ma ho bisogno di chiarirmi bene le idee , con riferimento al Idle ufficiale fornito per intenderci da Python.org e all'esempio
che ho allegato , se ho capito bene devi allineare le varie righe del blocco (di una istruzione) da sx per esempio con 4 spazi
e magari usando i vari colori come aiuto ?

 
Si (è comunque una regola di python, non di Idle).
Per i colori, si tratta di solito di una feature dell'editor, non sei tu a fissarli.
(03-09-2014, 10:05 )'albertotorc' Ha scritto: e ancora ogni blocco di diverse istruzioni può avere spazi di tabulazione diversi rispetto ad un'altro blocco ?
(anche se ovviamente usare gli stessi spazi è meglio).

 
Si
(03-09-2014, 10:05 )'albertotorc' Ha scritto: eventualmente mi consigli un'altro editor ?
io uso anche (in ambiente win) visual studio 2013 pro che ha anche Python , ma mi sembra eccessivo , vorrei usare un'editor leggero per python e
quello di base mi sembrava buono..

 
Per iniziare qualunque editor va bene, quello dipende da te. Ovvio, è meglio se evidenzia la sintassi usando i colori per i diversi elementi (io ho usato anche gedit).
Per progetti più complessi si passa agli IDE, ma quella è proprio un'altra cosa.
(03-09-2014, 10:05 )'albertotorc' Ha scritto: cosa mi consigli e cosa intendi quando dici " è l'uso normale " ?
grazie

 
Intendo che mantenere l'indentazione quando si "va a capo" dopo la scrittura di un'istruzione è del tutto normale, in quanto si presuppone che si voglia proseguire con il medesimo blocco di istruzioni.
Prova da terminale con un

Codice:
$ python
ti troverai davanti a qualcosa di familiare (Ctrl+D al prompt per uscire).

Bye,
Token



 

 
Cita messaggio


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)