

















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
Informatica luiss python appunti lezionedi esercitazione
Tipologia: Appunti
1 / 25
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


















Problem solving: capacità di analizzare problemi, pensare in modo creativo per risolverli ed elaborarne in modo chiaro una soluzione, che non è sempre unica. A partire dalla specifica dei requisiti e dal risultato da raggiungere (cosa) si individua l’algoritmo (come) cioè il procedimento con cui si ottiene una soluzione del problema. In generale non esiste una sola soluzione ad un certo problema. Algoritmo: descrizione di come si risolve un problema attraverso una sequenza di passi/istruzioni che portano alla soluzione. Procedere scomponendo il problema in sottoproblemi scomponibili in sottoproblemi per arrivare a problemi elementari che possono cioè essere risolti direttamente dall’esecutore. Un algoritmo deve essere corretto ed efficiente. Esempio Problema: calcola il massimo tra i valori A e B Soluzione: il massimo è più grande tra A e B Algoritmo: se A>B allora max=A; stop. Altrimenti max=B stop Programmazione: è un'attività creativa che permette di rendere comprensibile ad un calcolatore l'algoritmo individuato. Si sceglie un insieme significativo di dati per testare il programma. È necessario produrre la documentazione a beneficio di chi userà ed eventualmente modificherà il programma. Programma: è la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. I programmi sono parametrici:
si esegue il test di un programma. Togliendo il cancellato in testa alla riga, l’istruzione verrà nuovamente eseguita. Sulla sinistra: #primocommento print("ciao") #secondocommeto #terzocommento testo="# sono un cancelletto non sono un commento" print (testo) print(3+2) #è la somma Sulla destra: ciao
5 Funzioni: è un piccolo programma che può essere riutilizzato per svolgere un particolare compito. In Python ci sono molte funzioni pronte e disponibili dette built-in funcions. Le funzioni possono prevedere uno o più argomenti sui quali viene eseguita la funzione, specificati dopo il nome della funzione all’interno di parentesi tonde e separati da virgole. Nome funzione (variabile 1, variabile2) Modalità interattiva: è possibile provare singole porzioni di codice senza inserirle in uno script in modalità interattiva. Le istruzioni sono immediatamente eseguite e ne viene mostrato il risultato senza dover utilizzare la funzione print. Si utilizza >>> per indicare il terminale della modalità interattiva I tre simboli mi fanno la modalità interattiva, mettendosi sulla destra (su repl.it non serve scrivere >>>) >>> 2 + 3 operazione che eseguo 5 soluzione Parte sinistra: programmatore ci scrive Parte destra: ci lavora l'utente Print: è a principale istruzione di output che permette di mostrare sullo schermo il valore di una o più espressioni, si ha mettendo tra parentesi tonde due numeri separati da virgola e spazio. Gli apici singoli o le virgolette racchiudono una stringa, servono a specificare l’inizio e la fine della stringa, e non vengono visualizzate sullo schermo. Sulla sinistra: #stampa due numeri, 3 e 5 print (3, 5) Sulla destra: >>>3 5 Sulla sinistra: print("ciao" , 5) Sulla destra: >>> ciao 5 Si possono fare anche delle operazioni Sulla sinistra: print("ciao" , 3*5) Sulla destra: >>> ciao 15 Esercizio: Tradizionalmente il primo programma che viene scritto in un nuovo linguaggio di programmazione è Hello World! E tutto ciò fa mostrare le parole World! Sulla sinistra: print("Hello World!") Sulla destra: >>> Hello World! Compiti: obbligatori
Variabili: una variabile è un nome a cui possiamo associare un valore. Servono per memorizzare valori e poterli riutilizzare. Il nome di una variabile può comprendere lettere, cifre e il carattere underscore _, ma non deve iniziare con una cifra e non può contenere spazi. Solitamente si assegnano alle variabili dei nomi esplicativi e di solito la prima lettera è minuscola. Una variabile è creata nel momento in cui gli è assegnato un valore. Assegnamento: l’operazione di assegnamento che imposta il valore ad una variabile è un costrutto della forma: nome_variabile = espressione o valore Le variabili sono chiamate così perché il valore assegnato può essere cambiato. L'assegnamento valuta l'espressione a destra del = e poi assegna il risultato alla variabile a sinistra del =. La stessa variabile può quindi comparire sia a sinistra sia a destra del =. Sulla sinistra: testo="Ciao" Print(testo) Sulla destra: Ciao Esercizio: scrivere un programma che esegua il prodotto di due numeri a vostra scelta e mostri il risultato sullo schermo utilizzando 3 variabili (due per i moltiplicandi ed una per il risultato prodotto.
Sulla sinistra: numero1= numero2= risultato=numero1numero print(risultato) Sulla destra: 198 Output Esercizio: scrivere un programma che memorizzi nella variabile di nome area l’area di un cerchio di raggio 10 e poi ne stampi il valore: Sulla sinistra: pigreco = 3. raggio = 10 area = pigreco(raggio2) print(area) Sulla destra: 314.0 Output Esercizio: scrivere un programma che calcoli la superficie totale di un cilindro di raggio 10 e altezza 5: Sulla sinistra: pigreco = 3. raggio = 10 altezza = 5 superficie_base = pigrecoraggio* superficie_laterale = 2pigrecoraggioaltezza superficie_totale = 2superficie_base + superficie_laterale print(superficie_totale) Sulla destra: 942.0 Output Stringhe: il testo si rappresenta come una sequenza di caratteri che è chiamata stringa, tipo dato str. La sequenza di caratteri deve essere racchiusa tra apici singoli ' ' o tra doppi apici " ". >>> saluto = "ciao" Si può indicare una stringa vuota non includendo nulla tra gli apici. >>> stringa_vuota = "" Si può accedere a porzioni di una stringa:
print (x*2) Domanda: cosa succede se l’utente inserisce 2
x = eval(input("Inserisci una espressione:")) print (x*2) Domanda: cosa succede se l’utente inserisce 2
SUGGERIMENTO: la prima istruzione dovrà contenere: eval(input()). Input è un numero intero, 10.0, e l'output è il valore delle temperatura in gradi Fahrenheit, 50.0. Sulla sinistra: C=eval(input()) F=(C*(9/5))+ print(F) Sulla destra: #con 10.
Scrivere un programma che legga da input un testo e restituisca la prima e l'ultima lettera del testo. NOTA: utilizzare la funzione input() senza specificare come argomento nessuna stringa! Anziché inserire "input('inserisci un numero:')" utilizzare "input()". SUGGERIMENTO: la prima istruzione dovrà contenere: input(). Input è un testo, ciao, l'output è la prima e l'ultima lettera del testo letto in input, c o. Sulla sinistra: testo=input() print(testo[0], testo[-1]) Sulla destra: c o Compiti: facoltativi Scrivere un programma che legga da input due numeri interi e restituisca il quoziente (intero) ed il resto (intero) della loro divisione. NOTA: utilizzare la funzione input() senza specificare come argomento nessuna stringa! Anziché inserire "input('inserisci un numero:')" utilizzare "input()". Input sono due numeri interi, 6 e 4, l'output è il quoziente ed il resto della divisione dei due numeri letti in input, 1 2. Sulla sinistra: x=eval(input()) y=eval(input()) print(x//y) print(x%y) Sulla destra: 1 2 Scrivere un programma che legga da input un testo ed un numero intero e restituisca la lettera a quella data posizione nel testo. NOTA: utilizzare la funzione input() senza specificare come argomento nessuna stringa! Anziché inserire "input('inserisci un numero:')" utilizzare "input()". Input è un testo ed un numero intero, ciao e 2, l'output è la lettera in quella data posizione del testo letto in input, a. Sulla sinistra: x=input() y=eval(input()) print(x[y]) Sulla destra: a Tipi di dato: è possibile conoscere il tipo di dato di una valore o di una variabile utilizzando la funzione: type(valore o variabile) Esempi: mia_variabile = 1 print (type(mia_variabile)) → int
False True Differentemente dalle stringhe, le liste sono un tipo mutabile, cioè è possibile modificare il contenuto della lista specificando l’indice o lo slice degli elementi da cambiare. Esempio: Sulla sinistra: stringa = 'ciao' Print(stringa[0]) = 'C' # errore Sulla destra: TypeError: 'str' object does not support item assignment Sulla sinistra: cubi = [1, 8, 27, 65, 125] print(4 ** 3) # il cubo di 4 è 64 cubi[3] = 4 ** 3 print(cubi) Sulla destra: 64 [1,8,27,64,125] Esempio: Sulla sinistra: lettere = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] print(lettere) lettere[2:5] = ['C', 'D', 'E'] # cambio 3 valori print(lettere) lettere[2:5] = [] # rimozione 3 elementi print(lettere) lettere[:] = [] # cancellazione della lista print(lettere) Sulla destra: ['a', 'b', 'c', 'd', 'e', 'f', 'g'] ['a', 'b', 'C', 'D', 'E', 'f', 'g'] ['a', 'b', 'f', 'g'] [] Le liste prevedono altri metodi:
var= lista.pop() print("v:", var) print("lista", lista) var= lista.pop(0) print("primo elemento:", var) print("lista", lista) lista.insert(3,10) print(lista) lista.remove(2) print(lista) lista.index(4) print(lista) lista.reverse() print(lista) lista.sort() print(lista) Sulla destra: 5 [0, 2, 4, 6, 8, 9] 6 v: 9 lista [0, 2, 4, 6, 8] primo elemento: 0 lista [2, 4, 6, 8] [2, 4, 6, 10, 8] [4, 6, 10, 8] [4, 6, 10, 8] [8, 10, 6, 4] [4, 6, 8, 10] Range: la funzione range consente di creare una lista composta da dei numeri interi consecutivi. La funzione range prevede due argomenti e restituisce una lista che contiene tutti gli interi a partire dal primo (incluso) fino al secondo (escluso). Se il primo argomento non viene specificato la lista partirà dal numero 0. La funzione range è molto utilizzata nei cicli. Esempi: Sulla sinistra: print(list(range(1,5))) print(list(range(5,1))) print(list(range(10))) print(list(range(-27,-20))) Sulla destra: [1, 2, 3, 4] [] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [-27, - 26, - 25, - 24, - 23, - 22, - 21] Esercizio: scrivere un programma che legga da input una lista e stampi il primo, l’ultimo ed il penultimo elemento della lista. Sulla sinistra: mia_lista = eval(input("Inserisci una lista:")) print(mia_lista[0], mia_lista[-1], mia_lista[-2]) Sulla destra: #con [1, 2, 3, 6, 8, 9] 198
elemento= lista.pop(x) print(lista) Sulla destra:
[0, 3, 1] Sostituire il valore di una lista ad una data posizione. NOTA: utilizzare la funzione input() senza specificare come argomento nessuna stringa! Esempio: anziché inserire "input('inserisci un numero:')" utilizzare "input()" Ugualmente per la funzione print(), stampare solo il valore richiesto senza altro testo. Sulla sinistra: lista=eval(input()) x=eval(input()) y=eval(input()) posizione_valore= lista.pop(x), lista.insert(x,y) print(lista) Sulla destra:
[1, 2, 9, 4, 5]
commento: permette di scrivere qualcosa che si ignora sulla destra Sulla sinistra: #commento Sulla destra: #ignora tutta la riga print: permette di mostrare sullo schermo il valore di una o più espressioni Sulla sinistra: print("nome cognome") print("nome", "cognome") print( 3 * 2 ) print("32") Sulla destra: nome cognome nome cognome 6 3 Simbolo Operazione Esempi
Operatore di appartenenza: l'operatore in permette di testare l'appartenenza d i un valore ad una “sequenza” (termine volutamente generico), cioè cercare un valore all’interno di una sequenza. Si può usare not in se si vuole testare la non appartenenza, x not in seq è equivalente a not x in seq. Nelle stringhe si può usare in sia per singoli caratteri sia per sottostringhe. Sulla sinistra: nozze = 'pizza e fichi' print('a' in nozze) print('A' in nozze) print(' ' in nozze) print('fichi' in nozze) print('ostriche' not in nozze) Sulla destra: True False True True True input(): permette di memorizzarlo all’interno di una variabile l’input inserito dall'utente e restituisce una stringa Sulla sinistra: x=input("inserisci numero:") y=input("inserisci numero:") print(x+y) x = input("Inserisci un valore:") print (x* 2 ) Sulla destra: inserisci numero: 2 inserisci numero: 3 23 Inserisci un valore: ciao ciaociao eval(input(): è possibile valutare quanto inserito come un'espressione Python (l'espressione deve essere corretta, altrimenti viene restituito un errore) Sulla sinistra: x=eval(input("inserisci numero:")) y=eval(input("inserisci numero:")) print(x+y) x = eval(input("Inserisci una espressione:")) print (x* 2 ) Sulla destra: inserisci numero: inserisci numero: 5 Inserisci una espressione: 'ciao' ciaociao lista: contiene un elenco di valori (gli elementi della lista) separati dalla virgola e racchiusi tra parentesi quadre. Operazioni tra liste:
print(quadrati[- 3 :]) len(quadrati) print(quadrati + [ 36 , 49 , 64 , 81 , 100 ]) print( 5 in quadrati) Sulla destra: 25 [9, 16, 25] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] False Metodi: ➢ .append: inserisce un nuovo elemento alla fine della lista ➢ (^) .insert: inserisce un nuovo elemento ad una data posizione ➢ .index: restituisce la posizione in cui compare un dato elemento ➢ .pop: rimuove l’ultimo elemento della lista o quello alla posizione specificata ➢ (^) .remove: rimuove un dato elemento dalla lista ➢ .reverse: restituisce gli elementi in ordine opposto ➢ (^) .sort: restituisce gli elementi in ordine sequenziale Nota: è anche possibile utilizzare la funzione del per cancellare uno o più elementi o l’intera lista. Sulla sinistra: lista = [ 0 , 2 , 4 , 6 , 8 ] print(len(lista)) lista.append( 9 ) print(lista) print(len(lista)) var= lista.pop() print("v:", var) print("lista", lista) var= lista.pop( 0 ) print("primo elemento:", var) print("lista", lista) lista.insert( 3 , 10 ) print(lista) lista.remove( 2 ) print(lista) lista.index( 4 ) print(lista) lista.reverse() print(lista) lista.sort() print(lista) Sulla destra: 5 [0, 2, 4, 6, 8, 9] 6 v: 9 lista [0, 2, 4, 6, 8] primo elemento: 0 lista [2, 4, 6, 8] [2, 4, 6, 10, 8] [4, 6, 10, 8] [4, 6, 10, 8] [8, 10, 6, 4] [4, 6, 8, 10]
if condizione1: ||||istruzioni elif condizione2: ||||istruzioni elif condizione3: ||||istruzioni else: ||||istruzioni Sulla sinistra: a= 3 b= 4 c= 5 if a>b: ||||print(False) elif bbb: ||||print(False) elif b>a: ||||print(True) elif a>b
||||print ('valore di num:', num) print ("Finito!") for (i) in range( 20 ): ||||if (i% 3 ) == 0 : ||||||||print(i) ||||||||if (i% 5 ) == 0 : ||||||||||||print ("Bingo!") ||||print ("---") Sulla destra: 1 8 27 64 125 valore di num: 0 valore di num: 1 valore di num: 2 valore di num: 3 valore di num: 4 valore di num: 5 valore di num: 6 valore di num: 7 valore di num: 8 valore di num: 9 Finito! 0 Bingo!
15 Bingo!