Cenni sulla sintassi Python

Da Hacknowledge.

Indice

[modifica] Introduzione

La sintassi del Python differisce un po' da quella comunemente usata dai linguaggi di programmazione.
Vedremo che cambieranno alcune parole riservate e soprattutto l'identazione (che di solito genera qualche problema all'inizio).

[modifica] Parole chiavi

Il Python presenta le tipiche parole chiavi tipo if, else, for, while, global, break e così via. Differisce invece quello che sarebbe "else if" che viene contratto in elif. La parola chiave per definire una funzione è invece def. Per importare dei moduli si usa import, oppure from .. to..

[modifica] Identazione

Particolare di Python è sopratutto l'identazione dei blocchi: mentre in genere si usano le parentesi graffe per identare un blocco

{ 
   blocco di istruzioni
}

dove { indica l'inizio del blocco e } la fine.
Nel Python invece l'identazione del blocco avviene mediante l'uso dei rientri dei due punti ( : ).
Vediamo per chiarezzo un esempio (questo codice non fa altro che verificare se il valore di variabile è maggiore di 1 e se si ne stampa il valore):

  • Identazione in php dopo un if
if ($variabile>1)
{
echo $variabile;
}
  • Identazione in python dopo un if
if (variabile>1):
   print variabile

Il php rispetta la sintassi comune dell'uso delle parentesi graffe. Il python al contrario inserisce i : (due punti) alla fine della riga che denota l'inizio del blocco (che può essere un if, un for, la definizione di una funzione etc..) e poi tutto il codice racchiuso nel blocco avrà un rientro (uguale per tutto il blocco); di conseguenza rientri di misura diversi significano blocchi "di livello diverso". Vediamo un esempio di più blocchi in python:

global a
global b
a = 2
b = 3
def funzione():
   if (a>1):
       print "a maggiore di 1"
       if (b<2):
           print "b minore di 2"
   for i in range(0,10);
       print i
       if (i==3):
          print "Ehilà, i è uguale a 3"

Vediamo che tutto il blocco dentro a funzione() è rientrato. Inoltre il contenuto degli if è a sua volta rientrato; stessa cosa per il ciclo for. Notiamo come il primo if e il for siano alle stesso livello, ovvero direttamente dipendenti dalla funzione. If (b<2) invece diptende da if(a>1) e di conseguenza è inserito all'interno del suo blocco.
Ecco un esempio schematico dei blocchi
Immagine:Blocchi_livello.jpg
Vediamo inoltre nel codice la presenza di global (che viene usato per rendere globale una variabile, ovvero utilizzabile senza problemi da ogni funzione) e di def. Approfondiremo poi l'uso di ogni parola chiave in seguito, nelle relative pagine.

[modifica] Importare dei moduli

Per importare dei moduli in python si usa

import modulo

Se vogliamo però importare solo una funzione da un modulo useremo invece

from modulo import funzione

Se come funzione viene usato * (asterisco), verranno importate tutte le funzioni di quel modulo.. A seconda del metodo usato per importare, sarà diverso l'uso delle funzioni nel codice.
Vediamo un esempio: vogliamo importare il modulo random per generare dei numeri random tra 0 e 1 (ovvero usare la funzione omonima random()). Il codice sarà:

import random
numero_random = random.random()

Come si può vedere abbiamo usato import random e poi, al momento dell'uso, random.random(), ovvero modulo.funzione().
Questa scrittura è necessaria quando usiamo import modulo. Usando invece from modulo import funzione non è necessario

from random import random #oppure from random import * volendo importare tutti i moduli
numero_random = random()
Strumenti personali