Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Esempi esercizi phyton, Esercizi di Sistemi di Elaborazione dell'Informazione

qualche esempio ed esercizio svolto in phyton

Tipologia: Esercizi

2022/2023

In vendita dal 06/05/2023

xame9788
xame9788 🇮🇹

4 documenti

1 / 12

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
ESERCITAZIONI IN PYTHON:
Lezione del 1° ottobre:
La versione attualmente in uso da me è la 3.9, che puoi comodamente scaricare dal Microsoft Store.
Una volta scaricata dovrai aprire l’IDLE. Abbiamo per prima cosa familiarizzato con la prima
interfaccia del programma, quindi senza aprire una nuova finestra.
Stringhe:
I primi comandi imparati sono abbastanza semplici. Abbiamo visto che una stringa (quindi un
insieme di caratteri) riportata tra gli apici (‘) o tra le virgolette (“) restituisce i caratteri dati tra gli
apici.
>>> “casa”
‘casa’
>>> ‘banana’
‘banana’
Con la funzione len() si possono contare i caratteri che formano una stringa:
>>> len(“casa”)
4
Prendiamo in considerazione la frase “Oggi abbiamo giocato alla gara dei byte compressi.”. Tramite
il comando .split() possiamo dividere la frase in base al contenuto delle parentesi:
>>> “Oggi abbiamo giocato alla gara dei byte compressi”.split()
[‘Oggi’, ’abbiamo’, ’giocato’, ’alla’, ’gara’, ’dei’, ’byte’, ’compressi.’]
In questo caso, dato che nelle parentesi non compare nulla, il comando split divide seguendo gli
spazi che compaiono all’interno della frase. Se ad esempio mettessimo come argomento delle
parentesi la lettera o, la separazione diventerebbe la seguente:
>>> “Oggi abbiamo giocato alla gara dei byte compressi.”.split(“o”)
[‘ ‘, ‘ggi abbiam’, ‘ gi’, ‘cat’, ‘ alla gara dei byte c’, ‘mpressi.’]
La funzione len() può essere usata, ovviamente, anche sulle frasi, in quanto anche loro insieme di
caratteri. Può inoltre essere combinata con il comando .split(). Sempre facendo riferimento
all’argomento tra parentesi nello split, la funzione len conta quanti gruppi di caratteri vengono
separati:
>>> len(“Oggi abbiamo giocato alla gara dei byte complessi.”)
50
>>> len(“Oggi abbiamo giocato alla gara dei byte complessi”.split())
8
In questo caso, dato che l’argomento dello split è vuoto e che dividerà i caratteri in base agli spazi,
la funzione len() conterà semplicemente le parole che compongono la frase.
pf3
pf4
pf5
pf8
pf9
pfa

Anteprima parziale del testo

Scarica Esempi esercizi phyton e più Esercizi in PDF di Sistemi di Elaborazione dell'Informazione solo su Docsity!

ESERCITAZIONI IN PYTHON:

Lezione del 1° ottobre: La versione attualmente in uso da me è la 3.9, che puoi comodamente scaricare dal Microsoft Store. Una volta scaricata dovrai aprire l’IDLE. Abbiamo per prima cosa familiarizzato con la prima interfaccia del programma, quindi senza aprire una nuova finestra. ▪ Stringhe: I primi comandi imparati sono abbastanza semplici. Abbiamo visto che una stringa (quindi un insieme di caratteri) riportata tra gli apici (‘) o tra le virgolette (“) restituisce i caratteri dati tra gli apici. >>> “casa” ‘casa’ >>> ‘banana’ ‘banana’ Con la funzione len() si possono contare i caratteri che formano una stringa: >>> len(“casa”) 4 Prendiamo in considerazione la frase “Oggi abbiamo giocato alla gara dei byte compressi.”. Tramite il comando .split() possiamo dividere la frase in base al contenuto delle parentesi: >>> “Oggi abbiamo giocato alla gara dei byte compressi”.split() [‘Oggi’, ’abbiamo’, ’giocato’, ’alla’, ’gara’, ’dei’, ’byte’, ’compressi.’] In questo caso, dato che nelle parentesi non compare nulla, il comando split divide seguendo gli spazi che compaiono all’interno della frase. Se ad esempio mettessimo come argomento delle parentesi la lettera o, la separazione diventerebbe la seguente: >>> “Oggi abbiamo giocato alla gara dei byte compressi.”.split(“o”) [‘ ‘, ‘ggi abbiam’, ‘ gi’, ‘cat’, ‘ alla gara dei byte c’, ‘mpressi.’] La funzione len() può essere usata, ovviamente, anche sulle frasi, in quanto anche loro insieme di caratteri. Può inoltre essere combinata con il comando .split(). Sempre facendo riferimento all’argomento tra parentesi nello split, la funzione len conta quanti gruppi di caratteri vengono separati: >>> len(“Oggi abbiamo giocato alla gara dei byte complessi.”) 50 >>> len(“Oggi abbiamo giocato alla gara dei byte complessi”.split()) 8 In questo caso, dato che l’argomento dello split è vuoto e che dividerà i caratteri in base agli spazi, la funzione len() conterà semplicemente le parole che compongono la frase.

Sempre lavorando con le stringhe, possiamo indicizzare i caratteri, che vuol dire assegnare ad ogni lettera una posizione: >>> “casa”[0] ‘c’ >>> “casa”[1] ‘a’ ▪ Interi: Abbiamo poi iniziato a lavorare con i numeri interi. Assegnato in precedenza un valore ad una variabile, possiamo chiedere al Python di stamparla su schermo semplicemente scrivendola: >>> a = 1 >>> a 1 Se però domandiamo al Python una variabile che non è stata inizializzata, ci darà errore: >>> b Traceback (most recent call last): File "", line 1, in >> b = a + 1 >>> b 2 L’IDLE si ricorda di tutte le variabili già utilizzate in precedenza. Facciamo un esempio: provo a cambiare il valore di a con 4, ma senza cambiare b. Che valore avrà b? >>> a = 4 >>> b 2 b non cambia perché è stata creata quando a valeva 1. Per cambiare il valore di b, dobbiamo riscrivere nuovamente il modo in cui si ottiene: >>> b = a + 1 >>> b 5 Possiamo inoltre incrementare il valore di una variabile all’interno della variabile stessa, e questo si può fare in due modi:

  1. >>> a = a + 1 >>> a 5
  • Risultato atteso. """

Definizione delle costanti

K = 100 import math

Definizione delle funzioni di servizio per ottenere il risultato voluto.

Per definire una funzione occorre:

- definire un identificatore di estensione (nome);

- definire una lista di parametri (a, b);

- definire un risultato.

def somma(a, b): #Qui vanno le istruzioni del corpo della funzione """ Qui va scritta una doc-string che spiega cosa fa la funzione. Esempio: fa la somma dei valori passati nei parametri. """ print("a:", a, "b:", b) risultato = a + b return risultato

Eventuali altre funzioni qui definite...

Scrivere qui il programma principale:

if name == "main": #variabili speciali e private dell'interprete che descrivono l'ambiente in cui si trova. Questa vuol dire che siamo nella #situazione di partenza di Python. x = 36 y = math.sqrt(x) + K #math è la libreria, importata all'inizio del programma. Sqrt calcola la radice quadrata ed esiste già nella libreria

z = somma(x, y) #perché non a e b come nella funzione definita? Sono parametri astratti e prendono dei valori solo quando vengono definiti #In questo caso a e b prendono i valori di x e y #risultato è una variabile temporanea che nasce solo per acquisire il valore totale e poi restituirlo print("Il risultato è:", z) ▪ Primo programma: """ Scrivere un programma in Python che esegua la somma dei primi 5 numeri interi. Dati i primi cinque numeri interi, il programma ne esegue la somma. """ import math def somma(a, b, c, d, e): """ La funzione esegue la somma di cinque valori in ingresso. """ print("a:", a, "b:", b, "c:", c, "d:", d, "e:", e) risultato = a + b + c + d + e return risultato if name == "main": a = 1 b = a + 1 c = b + 1 d = c + 1 e = d + 1 r = somma(a, b, c, d, e) print("Il risultato è:", r) q = a + b + c + d + e print (q)

di Razer, mostrata al CES 2021 di gennaio, è diventata realtà dopo mesi di test e modifiche. Venduta negli Stati Uniti sul sito dell'azienda nota per tastiere, mouse e cuffie, si presenta in due bundle da 99,99 e 149,99 dollari. """ if name == "main": print("Analisi del testo") print("Lunghezza in caratteri:", len(TESTO)) tokens = TESTO.split() print("Numero totale di parole:", len(TESTO.split())) #Elementi che fanno riferimento alla teoria degli insiemi* voc = set(tokens) #sarebbe set(TESTO.split()), che è definita da tokens #Testo.split crea una lista con le parole del testo, ma rendendolo un insieme, gli insiemi non possono contenere elementi uguali, quindi vengono contati una sola volta. print("Larghezza del vocabolario:", len(voc)) for parola in voc: print(parola, tokens.count(parola)) #facciamoci stampare solo quelle che si ripetono di più print(" ") for parola in voc: occorrenze = tokens.count(parola) if occorrenze>2: print(parola, occorrenze) *Abbiamo detto che ci sono degli elementi che fanno riferimento alla teoria degli insiemi. >>> i = set([1, 2, 3]) >>> type(i) >>> >>> i >>> {1, 2, 3} Set è un insieme. Possiamo aggiungere elementi tramite il comando .add() (nelle parentesi ci va l’elemento nuovo da aggiungere): >>> i.add(9) >>> i >>> {1, 2, 3, 9}

Essendo un insieme, però, gli elementi non possono ripetersi. Se volessi aggiungere un altro 1, ad esempio, non posso farlo, perché è già presente. Per fare una cosa del genere avrei bisogno di una lista: >>> l = [1, 2, 3] #l’insieme è contenuto nelle parentesi tonde, oltre alle quadre, mentre le liste solo nelle quadre. >>> l >>> [1, 2, 3] #le liste vengono inoltre stampate a schermo nelle parentesi quadre e non nelle graffe. Per aggiungere un elemento ad una lista si usa il comando .append() (tra parentesi ci va l’elemento nuovo da aggiungere): >>> l.append(1) >>> l >>> [1, 2, 3, 1] In questo caso si possono ripetere anche gli stessi elementi più volte all’interno della stessa lista. ▪ Esercizio in aula sull’analisi del testo: """ Scrivere un programma Python che:

  1. Normalizza tutti i tokens a lettere minuscole;
  2. Stampa i token con frequenza maggiore di 4. Per il punto 1, usare la funzione s.lower(), dove s è una stringa. """ TESTO = """ Project Hazel diventa Zephyr. La mascherina riutilizzabile ad alto tasso tecnologico di Razer, mostrata al CES 2021 di gennaio, è diventata realtà dopo mesi di test e modifiche. Venduta negli Stati Uniti sul sito dell'azienda nota per tastiere, mouse e cuffie, si presenta in due bundle da 99, e 149,99 dollari. Va subito chiarito che Zephyr "non è un dispositivo medico, un respiratore, una maschera chirurgica o un dispositivo di protezione individuale (DPI) e non è pensato per essere utilizzato in contesti medici o clinici", sottolinea Razer. Questa mascherina è registrata presso la FDA (Food & Drug Administration), il che significa sostanzialmente che l'agenzia sa che esiste ma ciò non vuol dire che ne garantisca l'efficacia. Zephyr non è stata specificamente testata contro il COVID- 19 ed è commercializzata come "purificatore d'aria indossabile". """ if name == "main":

AND 0 1 0 0

Si fa l’AND bit sotto bit, quindi 1 & 0, 1 & 1, 0 & 0 e 0 & 0. Il risultato, dato che l’AND è vero solo se entrambi gli input sono veri, è 0100, cioè 4.

  • OR: Es. 0 | 6 (il simbolo per l’OR è |): 0 0 0 0 0 6 0 1 1 0 OR 0 1 1 0 Il risultato è 6, perché facendo l’OR bit sotto bit otteniamo 0110. ▪ Funzione input: """ Funzione INPUT per leggere i valori dell'utente """ if name == "main": #leggo una stringa s = input("Inserisci una stringa:") #leggo un intero n = int(input()) #leggo un valore reale f = float(input()) #Se alla richiesta di intero inserisco una stirnga mi si interrompe il programma. Che faccio? try: n = int(input("Intero: ")) except ValueError: print("Non mi hai dato un numero!")

try: n = int(input("Reale: ")) except ValueError: print("Non mi hai dato un numero reale!") exit(1) #chiude il programma bruscamente ▪ Tabelle verità: """ Tabelle di verità degli operatori logici. """ if name == "main": print("Tabella di verità della porta AND") print("a b c") print("-----") a, b = 0, 0 c = a and b print(a, b, c) a, b = 0, 1 c = a and b print(a, b, c) a, b = 1, 0 c = a and b print(a, b, c) a, b = 1, 1 c = a and b print(a, b, c) print("Tabella di verità della porta OR") print("a b c") print("-----") a, b = 0, 0 c = a or b print(a, b, c) a, b = 0, 1 c = a or b print(a, b, c)