PDA

Visualizza versione completa : Problema con lo studio di Python


Prodelian
23-06-2009, 22.17.18
CIAO,
sto studiando python ma sono arrivato ad un punto che non capisco niente...
spiega il costrutto "if else", le istruzioni e i cicli "for" e "while"... secondo me nn viene spiegato molto bene.
quando io leggo le cose prima le imparo e poi subito faccio pratica... ma ora nn ci riesco:

>>> a = 5
>>> if a == 5:
... print 'ok'
... elif a > 5:
... print 'troppo'
... else:
... print 'poco'
ok

questo è un esempio che fa lui... ma nn capisco se lo scrive su
Python (command line) o Python (GUI)
ed in entrambi i casi nn ci riesco.... PERCHE'??

Semi.genius
23-06-2009, 22.46.28
Che problemi incontri scrivendolo nella command line?

Prodelian
23-06-2009, 23.00.47
arrivato a:
...print 'ok' devo premere invio? o devo semplicemente andare al rigo di sotto e continuare?

Semi.genius
23-06-2009, 23.03.05
ah forse ho capito
non devi scrivere letteralmente ...print ok

i ... indica uno spazio di tabulazione. Se tu premi TAB, ti compaiono e ti avvisa che il codice che scriverai è un sottoblocco della riga precedente (in quel caso tutto il codice fa parte del blocco if)

Prodelian
23-06-2009, 23.21.02
e quindi io come devo scrivere?

Semi.genius
24-06-2009, 00.29.43
scrivi semplicemente nella riga di comando:

a=5
premi invio
if a == 5:
premi invio
compaiono i puntini ... per dire che inizia un blocco
poi premi TAB
print 'ok'
e continui così a introddure l'identazione finché non concludi il blocco
l'identazione è importante in Python siccome determina anche la determinazione di un blocco di codice

Prodelian
24-06-2009, 13.16.13
>>> a = 5
>>> if a == 5:
... print 'ok' elif a > 5: print 'troppo' else: print 'poco'

Così?

Semi.genius
24-06-2009, 13.26.09
>>> a = 5
>>> if a == 5:
... print 'ok' elif a > 5: print 'troppo' else: print 'poco'

Così?

no, premi tab prima delle righe fanno parte del blocco ma la riga deve essere isolata dalle altre. quel programma probabilmente stamperà 'ok' appena scritto 'ok' perché in riga da commando i comandi vengono eseguiti subito e il valore della variabile è 5

Semplicemente dopo aver premuto nivio a if a == 5: , premi tab e inserisci ogni riga che nell'esempio che stai guardando è avanzato dai ...

la cosa più comoda comunque è crearti un file di testo già indentato, forse rende meglio l'idea.

Guarda stile come dovrebbe essere. Se tu rinomini questo documento .py e lo facessi eseguire da python, lui stampebbe ok. Se cambi la prima riga con un altro valore, il programma reagirà diversamente.

Se vedi il linguaggio di Python dà molto valore all'eleganza del codice.

Prodelian
24-06-2009, 13.40.10
ok grazie! altra domanda:
quando cerco di aprire file .py non li apre... sapresti dirmi il perche'?

Semi.genius
24-06-2009, 15.21.57
ok grazie! altra domanda:
quando cerco di aprire file .py non li apre... sapresti dirmi il perche'?

perché non sono associati a python

fai prima ad avviare python da command line e scrivere

execfile("X:\percorso\nomefile.py")

dove X: è l'unit e percorso è il percorso dove si trova il file:p

LoryOne
24-06-2009, 16.15.43
CIAO,
>>> a = 5
>>> if a == 5:
... print 'ok'
... elif a > 5:
... print 'troppo'
... else:
... print 'poco'
ok


Ok, Prodelian, tu hai appena lanciato l'interprete python che è in attesa di informazioni immesse da parte dell' utente
>>> _
Cominci con assegnare ad una variabile (a) generica il valore 5.
Python memorizza a = 5
Python ti ripropone il prompt >>>
Tu identifichi un blocco if che per sintassi vuole : a fine riga.
Python ti conferma di aver capito che vuoi immettere un blocco If e ti risponde con ...
Tu continui ad inserire informazioni, fino a quando non chiudi il blocco if.
Python ha l'ordine di eseguire il blocco if.
Secondo cio che tu hai immesso, lui esegue:
Il rislutato è ok, poichè a è = 5 :)

Prodelian
24-06-2009, 17.29.19
ok fatto... una domanda... ma poi che ho fatto? Cioe' a che serve? come posso vedere se funziona?

LoryOne
24-06-2009, 18.51.28
???
Guarda, è semplice:
Un computer esegue istruzioni in modo sequenziale a meno che non incontri una condizione che gli faccia saltare la sequenza.
Ecco cosa hai imparato.

Se pensi che non serva a nulla, prova a fargli fare qualcosa che ti sia utile; Prima, però, devi studiare cosa puoi fare.

Semi.genius
24-06-2009, 19.22.18
ok fatto... una domanda... ma poi che ho fatto? Cioe' a che serve? come posso vedere se funziona?

Quel che vuole farti imparare l'esempio è una delle strutture di controllo che rendono un linguaggio completo e strutturato (si chiama Teorema di Bohm-Jacopini).

Sequenza è il costrutto mediante il quale le istruzioni sono eseguite in ordine.
Selezione, che è quello che stai affrontando if, permette di selezionare il ramo di codice da eseguire
Iterazione, che farai più avanti con i cicli, permettono di ripetere blocchi di codice un numero definito o indefinito di volte.
Con questi costruitti puoi descrivere qualsiasi programmi.

Il BASIC, uno dei primi linguaggi di ampio successo ma ormai non attuale, aveva la sequenza naturale definita da numeri posti prima delle righe.
Selezione e iterazione erano dati da istruzioni GOTO.

...ancora esistono istruzioni GOTO ma è un esempio di cattiva programmazione...

quel tuo blocco di codice dà un risultato diverso in base al valore di a. per rendertene conto, esegui il codice da file. Poi prova a cambiare dal file la prima riga cambiando il valore di a e ti accorgi che il risultato è diverso.