




Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Appunti sul linguaggio di programmazione
Tipologia: Dispense
1 / 8
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





Lezione 6 del 1 aprile 2019
Generazioni di linguaggi I linguaggi di programmazione si suddividono in prima, seconda e terza generazione (anche se in realtà siamo anche arrivati a quarta)
nome e cognome un array di caratteri età numero, un intero data di nascita tipo aggregato che contiene tre interi (giorno, mese, anno) . Costanti Le costanti, a differenza delle variabili, sono dei nomi che diamo a dei dati di cui sappiamo che il valore rimane costante in tutta la fase di esecuzione del nostro programma. Istruzioni di assegnamento Nei linguaggi di programmazione, per assegnare un dato ad una variabile vengono utilizzati dei simboli. Ad esempio in Python, cos’ come in altri linguaggi quali C++ o C#, l’assegnazione avviene utilizzando = Overloading In pochissime parole, ci sono alcuni simboli che possono avere diverse funzioni in base a dove vengono collocate. Il + tra due stringhe le unisce; tra due interi li somma. Istruzioni di controllo Ci permettono di passare il controllo da una parte all’altra del nostro programma. È un’istruzione imperativa che modifica il flusso di esecuzione del programma.
Operatore modulo (%) L’ operatore modulo (%) opera su interi e sulle espressioni intere e restituisce il resto della divisione. if (n%2==0): print( n, “è pari”) Espressioni Booleane Un’espressione Boolena che è vera o falsa. In Python un'espressione che è vera ha valore 1, un'espressione falsa ha valore 0. Es: L'operatore == confronta due valori e produce un risultato di tipo booleano:
5 == 5 1 5 == 6 0 Possono anche essere utilizzati gli operatori logici and, or, not che verranno segnati in arancione. Esecuzione condizionale if (x>0): print (x, “è positivo”) L'istruzione indentata che segue i due punti della riga if viene eseguita solo se la condizione è vera. Se la condizione è falsa non viene eseguito alcunché, tranne se non segue un else con il quale vengono eseguiti i comandi dotto l’istruzione. Un'altra proprietà dell'istruzione if è la funzione elif. È un'abbreviazione di else if e significa: esegui il blocco di istruzioni tabulato sotto elif se la condizione necessaria al primo if è falsa e la condizione elif è vera. Condizioni annidate quando ci sono if dentro if Inserimento da tastiera Altri operatori di confronto x != y # x è diverso da y? x > y # x è maggiore di y? x < y # x è minore di y? x >= y # x è maggiore o uguale a y? x <= y # x è minore o uguale a y?
Esiste, ovviamente, la possibilità che l’utente inserisca nel programma eseguito un numero, una parola, una frase. Per questo esiste la funzione input. Tuttavia, qualunque cosa si inserisca viene trattato come stringa, quindi se si vuole inserire un numero bisogna usare la funzione di input preceduta da eval, in questo modo: Istruzione while L’istruzione while viene utilizzata per creare un ciclo condizionato. L'istruzione esegue il blocco di codice indentato finché la condizione della while è vera. Il loop termina quando la condizione diventa falsa. Funzioni Una funzione è una sequenza di istruzioni che esegue una determinata operazione.
Una stringa è una sequenza di caratteri delimitata da apici singoli ‘ o doppi "" Tipi di dati composti Le stringhe sono qualitativamente diverse dagli altri tipi di dati poiché sono composte di unità più piccole: i caratteri. I tipi di dati che sono fatti di elementi più piccoli sono detti tipi di dati composti. A seconda di ciò che stiamo facendo possiamo avere la necessità di trattare un tipo composto come fosse una singola entità o possiamo voler agire sulle sue singole parti. Questa duplice possibilità è molto utile. L'operatore porzione seleziona dei caratteri da una stringa:
Frutto = "banana" Lettera = Frutto[1] print Lettera Restituisce: a Lunghezza La funzione len stampa a video il numero di caratteri di una stringa: Frutto = "banana" len(Frutto) 6 Elaborazione trasversale e cicli FOR Molti tipi di elaborazione comportano un'azione su una stringa un carattere per volta. Spesso queste elaborazioni iniziano dal primo carattere, selezionano un carattere per volta e continuano fino al completamento della stringa. Questo tipo di elaborazione è definita elaborazione trasversale o attraversamento , in quanto attraversa la stringa dall'inizio alla fine. Un modo per implementare un'elaborazione trasversale è quello di usare un ciclo while o un ciclo for. Porzioni di stringa Nelle stringhe è possibile effettuare lo “slicing” (dall’inglese affettare), ovvero si può trarre dalla stringa un segmento di stringa chiamato porzione. La selezione di una porzione è simile alla selezione di un carattere: parola= “albero” print (parola[2]) Print (parola[1:4]) b lbe L'operatore [n:m] ritorna la stringa a partire dall' "n-esimo" carattere incluso fino all' "m-esimo" escluso. Questo comportamento non è intuitivo, e per comprenderlo è meglio immaginare i puntatori tra i caratteri, come nel diagramma seguente: Se non è specificato il primo indice (prima dei due punti :) la porzione parte dall'inizio della stringa. Senza il secondo indice la porzione finisce con il termine della stringa. Confronto tra stringhe numero= eval(input(“Inserisci un numero”)) for carattere in parola: print carattere
string.find("bob", "b", 1, 2)
In questo esempio la ricerca fallisce perché la lettera 'b' non appare nel dominio definito dagli indici 1 e 2 (da 1 incluso fino a 2 escluso). Classificazione dei caratteri È spesso necessario esaminare un carattere e controllare se questo è maiuscolo, minuscolo, o se si tratta di una cifra o di uno spazio bianco. A questo scopo il modulo string fornisce parecchie costanti molto utili. La stringa string.lower contiene tutti i caratteri che il sistema considera minuscoli. Allo stesso modo string.upper contienetutti i caratteri maiuscoli. Guarda cosa contengono queste stringhe:
print string.lower print string.upper print string.digits Possiamo usare queste costanti e la funzione find per classificare i caratteri. Per esempio se find(string.lower, Carattere) ritorna un valore diverso da -1 allora Carattere è minuscolo (un valore diverso da -1 indicherebbe infatti la posizione del carattere trovato): def Minuscolo(Carattere): return string.find(string.lower, Carattere) != - In alternativa possiamo usare l'operatore in che determina se un carattere compare in una stringa: def Minuscolo(Carattere): return Carattere in string.lower o il consueto operatore di confronto: def Minuscolo(Carattere): return 'a' <= Carattere <= 'z' Se Carattere è compreso tra 'a' e 'z' deve per forza trattarsi di una lettera minuscola.
Una lista è una serie ordinata di valori, ognuno identificato da un indice. I valori che fanno parte della lista sono chiamati elementi. Le liste sono simili alle stringhe essendo insiemi ordinati di caratteri, fatta eccezione per il fatto che gli elementi di una lista possono essere di tipo qualsiasi. Liste e stringhe (e altri tipi di dati che si comportano da insiemi ordinati) sono chiamate sequenze. Valori della lista Per creare una lista (modo più semplice): racchiudere i suoi elementi tra parentesi quadrate ([ e ]): [10, 20, 30, 40] ["Pippo", "Pluto", "Paperino"] Il primo esempio è una lista di quattro interi, il secondo una lista di tre stringhe. Gli elementi di una stessa lista non devono necessariamente essere tutti dello stesso tipo. Questa lista contiene una stringa, un numero in virgola mobile, un intero ed un'altra lista: ["ciao", 2.0, 5, [10, 20]] Una lista all'interno di un'altra lista è detta lista annidata. Poiché le liste che contengono numeri interi consecutivi sono così comuni, Python fornisce un modo semplice per crearle:
range(1,5) [1, 2, 3, 4] La funzione range prende due argomenti e ritorna una lista che contiene tutti gli interi a partire dal primo (incluso) fino al secondo (escluso).
Ci sono altre due forme per range. Con un solo argomento crea una lista a partire da 0:
range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Se è presente un terzo argomento questo specifica l'intervallo tra valori successivi, chiamato passo. Questo esempio mostra come ottenere una stringa dei numeri dispari tra 1 e 10: range(1, 10, 2) [1, 3, 5, 7, 9]
ListaVuota = []