STRUTTURE DI CODICE

LINEE DI CODICE

Prima di parlare di “strutture condizionali cicli e range in Python” parliamo di strutture di codice.

La linea fisica è la linea di codice che scriviamo. La linea logica è quella che Python assembla a partire da un certo numero di linee fisiche per poi generare un’unica istruzione. Vediamo un esempio.

Linee di codice

Il semplice programma riportato fa uso di due linee di codice e un commento che non fa parte di esse. Quando Python esegue il programma trasforma le due linee di codice in due linee logiche, quindi in questo caso il rapporto è 1:1.

Esempio linee di codice

In questo caso ci sono quattro linee fisiche in quanto il sorgente viene scritto su quattro linee fisiche distinte che Python assembla su due linee logiche, ricompone la stringa su un’unica riga, prima istruzione logica, e infine l’istruzione print, seconda istruzione logica.

Codice su più linee

Python quando esegue il programma assembla le due linee fisiche che definiscono la tupla in una linea logica, più una linea logica per l’istruzione print, in tutto tre linee fisiche e due linee logiche.

Codice su più linee logiche senza escape

STRUTTURE CONDIZIONALI CICLI E RANGE IN PYTHON – BLOCCHI DI CODICE

Rappresentano una struttura di codice. I blocchi di codice possono essere nidificati per creare una struttura gerarchica. Python, a differenza di altri linguaggi come Java, C# che usano le parentesi graffe per determinare l’inizio e la fine di un blocco, usa l’indentazione, normalmente quattro spazi a destra rispetto le istruzioni superiori per delimitare un blocco di codice.

Indentazione

STRUTTURE CONDIZIONALI CICLI E RANGE IN PYTHON – GLI STATEMENT

Una linea fisica di codice normalmente è costituita da una singola istruzione detta anche Statement.

statement

In questo esempio il primo Statement è un’assegnazione, il secondo è una chiamata a funzione. È anche possibile inserire più Statement su una riga, questi andranno separati con il carattere;(punto e virgola)

due statement su una riga

STRUTTURE CONDIZIONALI CICLI E RANGE IN PYTHON – STATEMENT SEMPLICI E COMPOSTI

s=”Python”      Statement semplice

Statement semplice

STATEMENT COMPOSTO

Statement composti

ESEMPIO DI CODICE STATEMENT COMPOSTO

Strutture condizionali cicli e range in Python. statement composto

LO STATEMNT IF

Lo Statement if viene utilizzato per intraprendere una serie di azioni differenti in base a dei test Booleani del tipo Vero o Falso. Quando un’ espressione viene valutata True viene eseguita la suite di istruzioni relative a quel blocco. Le espressioni potrebbero anche essere tutte False, inoltre è facoltativo, e se presente, deve essere unica l’istruzione else mentre le istruzioni elif possono essere zero, una o più di una, questo in base alle necessità.

Statemt if
def Statement():
    #PRIMO ESEMPIO
    x=8
    if x<10: #Si legge "se x minore di 10 
             #allora stampa a video Minore di 10"
        print("Minore di 10")
    #SECONDO ESEMPIO
    x=10
    if x<10:#Si legge:Se x<10 (test booleano) allora stampa Minore di 10
            #else (altrimenti stampa >=10)
        print("Minore di 10")
    else:
        print("Maggiore o uguale a 10")
    #TERZO ESEMPIO
    x=6
    if x<5:               #se x<5
        print("< di 5")
    elif (x>=5 and x<=10):# altrimenti se x compreso tra 5 e 10
        print(">=5 e <= a 10")
    else:                 #altrimenti in tutti gli altri casi > di 10
        print("> di 10")
Statement()

LO STATEMENT WHILE

Se l’espressione viene valutata subito False non si entra nel Loop, viceversa se l’espressione è True si entra nella suite del Loop tante volte finché la condizione risulta essere vera. In tutti i casi se presenta la clausola else, questa viene sempre eseguita anche se l’espressione ha come valore iniziale di test False.

While
def While():
    #PRIMO ESEMPIO
    x=0
    while(x<3):#sino a che x<3 esegui la suite di while
        print(x)
        x+=1 #Incremento x per chiudere il Loop
             #e non ciclare all'infinito
             #stamperà 0,1,2
    else:
        print("Codice ramo else sempre eseguito.")
    #SECONDO ESEMPIO
    #Ci sono molti casi in cui non sappiamo a priori quante
    #volte deve essere eseguito un loop. Ad esempio:
    while True:#LOOP INFINITO
        x=input("Inserire una stringa: ")
        if x=='stop':
            break #LO STATEMENT BREAK INTERROMPE IMMEDIATAMENTE IL LOOP
        print(x)
    #TERZO ESEMPIO
    while True:#LOOP INFINITO
        x=input("Inserire una stringa: ")
        if x=='stop':
            break     #LO STATEMENT BREAK INTERROMPE IMMEDIATAMENTE IL LOOP
        if x <'b':
            continue  #CONTINUE NON INTERROMPE IL LOOP MA SI
                      #RITORNA IN TESTA AL LOOP STESSO
        print(x)
While() 

LO STATEMENT FOR

Statement for
def For():
    #PRIMO ESEMPIO
    myList = [3,4,5,6,7,8]
    for x in myList:
        print(x)
    else:
        print("Ramo else sempre esguito.")
    #SECONDO ESEMPIO
    myString = "Hello"
    for x in myString:
        print(x)
    #TERZO ESEMPIO
    myDict = {"a":1,"b":2,"c":3}
    for x in myDict:
        print(x)#STAMPA LE CHIAVI
    for x in myDict.values():
        print(x)#STAMPA I VALORI
    for x in myDict.items():
        print(x)#STAMPA CHIAVI E VALORI
    #LE PAROLE CHIAVE BREAK E CONTINUE FUNZIONANO ALLO STESSO
    #MODO VISTO NEL CICLO WHILE
For()

LA FUNZIONE RANGE

Nelle “Strutture condizionali cicli e range in Python” la funzione range assume un aspetto importante. Quando viene chiamata restituisce un oggetto iterabile che contiene una sequenza di numeri progressivi. I tre parametri sono simili ai parametri di uno slice che abbiamo già visto. Stop è obbligatorio start e step sono facoltativi. Start se non indicato vale zero, e step di default vale uno se non indicato esplicitamente. Il parametro Stop è escluso come limite superiore per questo motivo 16 non viene stampato. In conclusione nella funzione range i parametri Start e Step sono facoltativi mentre Stop è obbligatorio.

Range
def Range():
    #Scrivere un algoritmo utilizzando un ciclo for
    #e la funzione range compresa tra 10 e 50 che 
    #aggiunge ad una lista
    #i numeri dispari compresi tra 10 e 40.
    lista=[]
    for x in range(10,50):
        if (x % 2 > 0) and (x < 40):
            lista.append(x)
    print(lista)        
Range()

LINK AL CODICE GITHUB

GITHUB

LINK AI POST PRECEDENTI

PREVIOUS POST LINKS