Anteprima parziale del testo
Scarica Informatica-Informatica prof rughetti e più Appunti in PDF di Fondamenti di informatica solo su Docsity!
5/15/25, 5:51 PM ‘about:blank Informatica prof rughetti TIPOLOGIA DI ERRORI * Syntax error: qualora il programma non - sintatticamente corretto esso non viene eseguito e viene visualizzato un messaggio di errore. * Runtime error: errori che si manifestano solamente quando viene eseguito ll programma (chiamati anche exceptions). * Semantic errore il programma viene eseguito correttamente (non vengono visualizzati errori) ma il risultato prodotto non risulta corretto; identibcare gli errori semantici pu essere molto difficile. VARIABILI E ASSEGNAMENTI Una variabile + un nome a cui possiamo associare un valore. Servono per memorizzare valori e poterli riutilizzare. ll 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. LOoperazione di assegnamento che imposta il valore ad una variabile + un costrutto della forma: nome_variabile = espressione o valore Le variabili sOnO chiamate cos“ perch. valore assegnato pu” essere cambiato. L'assegnamento valuta l'espressione a destra del = © poi assegna il risultato alla variabile a sinistra del La stessa variabile pu quindi comparire sia a sinistra sia a destra del ESERCIZI + Scrivere un programma che memorizzi nella variabile di nome area IÒarea di un cerchio di raggio 10 e poi ne stampi il valore. CD) area=pigreco”(raggio”*2) print(area) * Scrivere un programma che calcoli la superbcie totale di un cilindro di raggio 10 e altezza 5. area_ totale = 2"area_base + area_laterale print (area_ totale) FUNZIONI Un (piccolo) programma che pu essere riutilizzato per svolgere un particolare compito + detto funzione. Una funzione + un programma a cui * stato dato un nome in modo che possa essere chiamato, cio* eseguito, tramite quel nome. Python ha molte funzioni gi" pronte e disponibili, dette built-in functions. Ne abbiamo gi" vista una: print Le funzioni possono prevedere uno 0 pi- argomenti sui quali viene eseguita la funzione. STRINGHE ll testo si rappresenta come una sequenza di caratteri che « chiamata stringa (ipo 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 = Ò" Usando i doppi apici possiamo usare all'interno della stringa gli apici singoli e viceversa. 1/19 5/15/25, 5:51 PM ‘about:blank Informatica prof rughetti ‘M'ilumino d'immenso* @. Ungarettiò >>> poesi >>> info = "Mattina" ESCAPE Visualizzando il valore della variabile senza utilizzare la funzione print compaiono le cosiddette sequenze di escape, cio» quei caratteri che non sono stampati ma che hanno uno specibco signibcato: SEQUENZA DÒESCAPE DESCRIZIONE n ne linea 0 singolo apice \ò doppio apice Mt tab A ‘backslash OPERAZIONI CON STRINGHE Possiamo accedere a porzioni di una stringa: * Usando [indice della posizione tra quadre:{jindici negativi per contare dalla bne) * Due indici separati da : per lo slicing, cio» prendere i caratteri da i (compreso) aj (escluso): [i] La lunghezza di una stringa « fomita dalla funzione len) ESEMPI P_YOT KH 0 o 1 203 4 4804080 2041 sz 33> testo = ÒPyihon* >>> testo[0]. # primo carattere e 3>> testo[:9] # slicing (da inizio a 3 escluso) Py >> testo[-1] # ultimo, primo dalla Pre n° Pro) 35 testo[1:4] # slicing (da 1 incluso a 4 escluso) Oh >>> len(testo) # lunghezza 6 35> testo[B:] # slicing (da 3 incluso a Pne) Ohonò CONCATENAZIONE 6 possibile svolgere le seguenti operazioni tra stringhe: * Concatenazione:+oppure0) * Ripetizione:* + e” sono operatori overloaded; eseguono cio» operazioni differenti a seconda del tipo degli operandi. Se per” usiamo operatori misti nella concatenazione viene restituito un errore. ESEMPI >>> "hello*+*Wworld" — Ohelloworid* >>> "hello"3 Ohellohellohello" 2/19 5/15/25, 5:51 PM ‘about:blank Informatica prof rughetti Indica IDopposto ESEMPI >>> non_esco = pioggia and freddo >>> brutto_tempo = pioggia or nuvoloso >>> esco = not freddo and not brutto_tempo >>> print (caldo, non_esco, brutto_tempo, esco) False, False, True, False OPERATORI RELAZIONALI SIMBOLO OPERAZIONE < minore di > maggiore di = minore o uguale di » maggiore o uguale di uguale a diverso da ESEMPI 333IS True True True >>> print(2 <= 4 <= 9) False Anche le stringhe possono essere confrontate: * cifre < maiuscole < minuscole Stringhe di pi» caratteri sono confrontate da sinistra verso destra: * se tutti caratteri sono uguali le due stringhe sono uguali + se una + l prebsso dell'altra quella pi» corta « la minore * altrimenti il primo carattere in cui le stringhe differiscono determina l'ordine (sulla base del loro codice ASCII) ESEMPI 35> "Stringa" == "Stringa" False OCA True >>> ‘Stringa! < ‘stringa’ < ‘stringa’ True OPERATORE DI APPARTENENZA L'operatore in permette di testare l'appartenenza di un valore ad una Osequenzaò (termine volutamente generico); cio cercare un valore allOinterno di una sequenza. Si pu” usare not in se si vuole testare la non appartenenza: x not in seg + equivalente a not xin seq. Nelle stringhe si pu usare in sia per singoli caratteri sia per sottostringhe. ESEMPI >>> nozze = ‘pizza e Bchiò >>> 'a' in nozze True >>> IA in nozze False >>>00 in nozze True >>> 'Pchi'in nozze True 4/19 5/15/25, 5:51 PM ‘about:blank Informatica prof rughetti >>> ‘ostriche’ notin nozze True INPUT | programmi solitamente sono parametrici: “ producono un risultato che dipende da un insieme di dati di partenza (input) * descrivono la soluzione non di un singolo problema, ma di unÒintera classe di problemi strutturalmente equivalenti Le istruzioni fanno riferimento a variabili, il cui valore non * Pssato a priori ma cambia a seconda della situazione elaborativa in cui esecutore si trova. Esistono pi» funzioni per ottenere IOinput inserito dall'utente e memorizzaro allOintemo di una variabile: * input) che memorizza, senza valutario, quanto inserito dallÒutente in una variabile Python. * evallinput()) che valuta quanto inserito dallOutente e lo memorizza in una variabile Python. ESEMPI dato il seguente programma: # salva in x il valore inserito dallOutente x = input("Inserisci una espressione:") print (2) Ripetere I0esercizio nel seguente modo: x = int(input("Inserisci una espressione:")) print (x"2) CONDIZIONALI pioggia or nuvoloso: testo = "con >>> print (’usciamo * + testo +" l'ombrello") Output usciamo con I0ombrello IF ELSE else permette di debnire le istruzioni da eseguire se la condizione dell'i - False (0 le condizi elif sono False). Sintassi if condizione: istruzioni else: Istruzionie IF ELIF ELSE Elif permette di esprimere un numero arbitrario di condizioni alternative. Sintassi: if condizionet: istruzioni1 elif condizione2: istruzioni elif condizione8: istruzioni8 eis truzionia 5/19 5/15/25, 5:51 PM ‘about:blank Informatica prof rughetti * Avete 5 interi in input. Un numero per linea. (dovete utilizzare input{) almeno 5 volte) Calcolate la ‘somma di questi numeri. * pari: la somma diviso 2 * dispari: la somma diviso 5 +Y4Z4+W+Q else: print(s/5) INDENTAZIONE LOindentazione + la modalit utilizzata da Python per raggruppare le istruzioni in blocchi pur facilmente capire quando un blocco inizia e Pnisce in base alla sua indentazione: * Un blocco inizia quando aumenta Idindentazione - Un blocco pu” contenere altri blocchi (indentati) + Un blocco Pnisce quando [indentazione si riduce a zero o allOindentazione di un blocco che lo contiene Ogni riga dello stesso blocco deve essere indentata allo stesso livello. LISTE Una lista contiene un elenco di valori (gli elementi della lista) separati dalla virgola e racchiusi tra parentesi quadre. Le liste possono contenere elementi di diversi tipi, ma di solito gli elementi hanno tutti lo stesso tipo. Per leggere una lista passata in input si usa: lista = evallinput() E da input si specibcano gli elementi della lista separati dalla virgola e racchiusi tra parentesi quadre: (1,35,79] OPERAZIONI SULLE LISTE € possibile accedere a porzioni della lista nello stesso modo delle stringhe (tramite [Oindice dellOelemento o tramite lo slicing con due indici separati da >). La lunghezza di una lista, cio- il numero dei suoi elementi, + fornita dalla funzione len Le liste supportano anche la concatenazione. € possibile testare l'appartenenza di un elemento alla lista tramite |Goperatore ir ESEMPI >>> quadrati = [1, 4, 9, 16, 25] >>> quadrati[0] 1 >>> quadrati[-1] 25 >>> quadrati[-3:] 8, 16,25] >>> len(quadrati) 5 >>> quadrati + [36, 40, 64, 81, 100] 11, 4,9, 16, 25, 36, 49, 64, 81, 100] 35> 5 in quadrati False 35> 16 in quadrati True € possibile annidare le liste (creare liste contenenti altre liste) 355 lettere = ['a',‘b', >>> numeri ] >>» lista = [lttere, numeri] >>> lista ['a', b', ‘01, [1, 2,91 7/19 5/15/25, 5:51 PM ‘about:blank Informatica prof rughetti >>> lista[0] fa, 'b', 01 >>> lista(0][1] db Differentemente dalle stringhe, le liste sono un tipo mutabile, cio: lista specibcando IÒindice 0 lo slice degli elementi da cambiare. possibile modibcare il contenuto della >>> stringa = >>> stringalo] ‘Typetror: "str' object does not support item assignment >>> cubi = [1, 8, 27, 65, 125] >>> cubifg] = 43 ESEMPI >>> lettere = ['a', b', ‘e’, 'e', 1, ‘91 353 lettere[2:5] >>> lettere['a, re: D ‘°D ‘E # cambio 3 valori VE I. 9] 35» lettere[2:5] 355 lettere ['a', [] # rimozione 3 elementi +91 >>» letteref] = [] # cancellazione della lista 35 lettere [] METODI SULLE LISTE te prevedono altri metodi: yppendfxinserisce un nuovo elemento x alla Pne della lista insert(i, x): inserisce ad una data posizione i un nuovo elemento x index(x): restituisce la posizione in cui compare un dato elemento x popl}: rimuove IOultimo elemento della lista 0 quello alla posizione i specibcata removelk]: rimuove un dato elemento x dalla lista restituisce gli elementi in ordine opposto sorti restituisce gli elementi in ordine sequenziale Nota: * anche possibile utilizzare la funzione dell per cancellare uno 0 pi» elementi 0 IOintera lista. ESEMPI >>> lista = [0, 2, 4, 6,8] 35» lista. append(g) >>> lista(0, 2, 4, 6,8, 9] 35» lista. pop(a) 353 lista(0, 2, 4, 8] >>> lista Insert(9, 9) 9, >>> lista.pop(2) DI 353 lista.remove(6) DI 353 lista.index(4) 353 lista.reverse() 35» listal8, 6, 4, 2, 0] 35» lista.sort) >>> lista[o, 2, 4, 6, 8] 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) Pno al secondo (escluso). Se il primo argomento non viene specibcato la lista partir* dal numero 0. La funzione range + molto utilizzata nei cicl. 8/19 5/15/25, 5:51 PM ‘about:blank Informatica prof rughetti * Scrivere un programma che stampi il numero di cifre decimali di un numero intero positivo ‘specibcato in input numero = int(input() count while numero>=1 numero = numero / 10 count = count + 1 print(count) * Scrivere un programma che legge da input una lista di numeri e stampa il numero minimo lista_numeri = eval(input0) minimo = lista_numeri[0] for numero in lista_numeri: if numero < minimo: minimo = numero print (minimo) * Scrivere un programma che legge un numero da input e, se diverso da 0, continua a leggeme altri ‘sommandoli Pnch2 non viene letto il numero "0" momento in cui viene restituita la somma dei numeri letti somma=0 numero = int(input("inserisci l primo numero:*)) while numero!=0: ‘somma = somma + numero print (somma) + Scrivere un programma che legge da input una coppia di numeri e stampa il loro prodotto senza utilizzare Idoperatore della moltiplicazione ma attraverso la somma intfiputo) secondo = int{input() conteggio = 0 prodotto = 0 while conteggio < secondo: prodotto = prodotto + primo conteggio = conteggio + 1 print(prodotto) * Scrivere un programma che legge da input un numero intero positivo e visualizza se * un numero primo o meno numero = int(input() if numero > 1 prime = True fori in range(?, numero): # range (2, numero/2+1) if (numero%i==0): prime = Falsi if prime: print(strnumero) + “e' un numero primo") else: print (str(numero) + "NON e' un numero primo" else: print (str(numero) + * NON e' un numero primo*) #1 non e' primo! * Scrivere un programma che legge da input due numeri interi e visualizza il loro quoziente ed il resto della loro divisione senza utilizzare IOoperatore della divisione dividendo = int{input('inserire ll dividendo: ‘) divisor intnput('inserire il divisore: ') quoziente = 0 10/19 5/15/25, 5:51 PM Informatica prof rughetti ‘about:blank 11/19 5/15/25, 5:51 PM Informatica prof rughetti ‘about:blank 13/19 5/15/25, 5:51 PM Informatica prof rughetti ‘about:blank 14/19 5/15/25, 5:51 PM Informatica prof rughetti ‘about:blank 16/19 5/15/25, 5:51 PM Informatica prof rughetti ‘about:blank 17/19 5/15/25, 5:51 PM Informatica prof rughetti ‘about:blank 19/19