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


Fondamenti di Programmazione Python: Guida Completa - Prof. Benedetto, Schemi e mappe concettuali di Fondamenti di informatica

Una panoramica dei concetti fondamentali della programmazione in python, con un focus particolare sulle variabili, i tipi di dati, le operazioni, le stringhe, i moduli della standard library (random, os, json), le funzioni (definizione, richiamo, variabili locali e globali), la gestione delle eccezioni (try-except-finally), i costrutti condizionali (if-elif-else), le liste, le tuple, i dizionari e i costrutti interattivi (cicli while e for). Il documento include esempi di codice per illustrare i concetti trattati, rendendolo utile per chi si avvicina per la prima volta alla programmazione in python o per chi desidera ripassare le basi. Approfondisce la gestione degli errori e le strutture dati fondamentali, offrendo una solida base per lo sviluppo di applicazioni più complesse. Fornisce una guida completa e dettagliata per comprendere e applicare i concetti chiave della programmazione in python, arricchita da esempi pratici e spiegazioni chiare.

Tipologia: Schemi e mappe concettuali

2023/2024

Caricato il 26/06/2025

davide-c-296
davide-c-296 🇮🇹

4.3

(4)

7 documenti

1 / 15

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Prof. Francesco Benedetto [email protected]
PW file = xyz
A BRIEF HISTORY OF ICT
1837 --> telegrafo (Samuel Morse)
1.
1876 --> telefono (Meucci)
2.
1894 --> radio (Guglielmo Marconi, 1901 prima trasmissione transatlantica)
3.
1928 --> televisione
4.
5.
1966 --> fibra ottica
6.
1973 --> cellulari
7.
1974 --> internet
8.
1990 --> wireless internet (Wi-fi)
9.
--> converged devices (tablet)
10.
BIG DATA
Se ne parla da circa 10 anni (picco di ricerca nel 2017)
Avere I big data senza fare data analystic, non serve a nulla
Prima dei big data, I dati erano risorse scarse (che andavano trovati o addirittura creati)
Nei Big Data esistono due approcci:
Delle 3 "V", ovvero:
Volume
1.
Velocità
2.
Varietà
3.
Delle 6 "V", ovvero:
Veridicità
1.
Valenza
2.
Visualizzazione
3.
Volume
4.
Velocità
5.
Varietà
6.
DATA SPHERE --> permette di raccogliere ed accedere a tanti tipi diversi di dati
Negli anni il suo volume cresce esponenzialmente, si prevede che nel 2025 sia pari a 160 zettabyte (1021 giga).
Negli anni la quantità di dati non strutturati aumenta sempre più anche in confronto alla quantità di dati strutturati.
Dalla qualità del dato dipende anche la qualità dell'output. Se il dato non è qualitativamente affidabile, neanche la nostra analisi tramite IA lo sarà
BIAS --> errore sui dati o sulla loro interpretazione
CATENA DEL VALORE --> raffigura come I dati impattano
ENTRY BARRIERS --> le barriere hanno causato la chiusura del mercato dei Big Data (per chi rimane indietro è difficile che torni al livello dei competitori)
I S.O. rappresentano un canale privilegiato per la raccolta dei dati (nei social vince facebook)
DATA CENTER --> insieme di hard disk che memorizzano tutta la datasphere
Durante gli anni I dati mobili hanno raggiunto e superato I dati fissi (non ancora in Italia, dove maca poco al raggiungimento)
INTRODUZIONE 06/03
giovedì 14 marzo 2024
09:09
Nuova sezione 1 Pagina 1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Anteprima parziale del testo

Scarica Fondamenti di Programmazione Python: Guida Completa - Prof. Benedetto e più Schemi e mappe concettuali in PDF di Fondamenti di informatica solo su Docsity!

Prof. Francesco Benedetto [email protected] PW file = xyz A BRIEF HISTORY OF ICT

  1. 1837 --> telegrafo (Samuel Morse)
  2. 1876 --> telefono (Meucci)
  3. 1894 --> radio (Guglielmo Marconi, 1901 prima trasmissione transatlantica)
  4. 1928 --> televisione
  5. 1962/63 --> sistemi satellitari
  6. 1966 --> fibra ottica
  7. 1973 --> cellulari
  8. 1974 --> internet
  9. 1990 --> wireless internet (Wi-fi)
  10. --> converged devices (tablet) BIG DATA Se ne parla da circa 10 anni (picco di ricerca nel 2017) → Avere I big data senza fare data analystic, non serve a nulla Prima dei big data, I dati erano risorse scarse (che andavano trovati o addirittura creati) Nei Big Data esistono due approcci: Delle 3 "V", ovvero: _1. Volume
  11. Velocità
  12. Varietà_ → Delle 6 "V", ovvero: _1. Veridicità
  13. Valenza
  14. Visualizzazione
  15. Volume
  16. Velocità
  17. Varietà_ → DATA SPHERE --> permette di raccogliere ed accedere a tanti tipi diversi di dati Negli anni il suo volume cresce esponenzialmente, si prevede che nel 2025 sia pari a 160 zettabyte (10^21 giga). Negli anni la quantità di dati non strutturati aumenta sempre più anche in confronto alla quantità di dati strutturati. Dalla qualità del dato dipende anche la qualità dell'output. Se il dato non è qualitativamente affidabile, neanche la nostra analisi tramite IA lo sarà BIAS --> errore sui dati o sulla loro interpretazione CATENA DEL VALORE --> raffigura come I dati impattano ENTRY BARRIERS --> le barriere hanno causato la chiusura del mercato dei Big Data (per chi rimane indietro è difficile che torni al livello dei competitori) I S.O. rappresentano un canale privilegiato per la raccolta dei dati (nei social vince facebook) DATA CENTER --> insieme di hard disk che memorizzano tutta la datasphere Durante gli anni I dati mobili hanno raggiunto e superato I dati fissi (non ancora in Italia, dove maca poco al raggiungimento)

INTRODUZIONE 06/

giovedì 14 marzo 2024 09:

É principalmente per elaborare matrici, che integra funzioni di calcolo matematico, visualizzazione grafica (con struttura modulare) e programmazione. --> liste = vettori (grandezza monodimensionale, tabelle matrici) --> matrici 1xm = vettore riga --> matrici mx1 = vettore colonna CARATTERISTICHE

  • Semplice e veloce da usare
  • Linguaggio ad alto livello per operazione matricali
  • Fornisce molte funzioni grafiche
  • Permette di definire velocemente un problema e di creare un algoritmo REGOLE DI SCRITTURA: → La linea che inizia con >> si chiama: "LINEA DI COMANDO" → COMMAND HISTORY: ci mostra lo storico dei comandi, e memorizza del workspace Non usare numeri, lettere accentate o caratteri speciali all'inizio del nome di una variabile, usare la "TECNICA DEL CAMMELLO" → → Nome di alcune variabili sono già salvati nel sistema, evitare di chiamare le variabili con nomi già presenti → MatLab è key sensitive (pi PI) →^ I commenti si scrivono con il simbolo della percentuale % → l'accento viene sostituito da due apici successivi MATLAB giovedì 14 marzo 2024 09:

FOR INDICE = INIZIO : STEP : FINE

BLOCCO DI ISTRUZIONI

END

Indice = inizio

Indice <= fine

V F

Blocco di istruzioni

Indice = indice + step

Incremento

La var. indice

Inizializzo

La var. indice

INDICE --> 1 : 1 : 5 , STEP = 1 #potremmo anche scrivere 1:1:5, ma cosi é più compatto (meglio)

i Inizio step fine

FOR i = 1 : 5 #inizializza i 1 ed incrementa di step (1) finché non é <= a 5

DISP(i)

END

i = 1

i <= 5

DISP (i)

i = i + 1

END

i = 1

i = 2

i = 3

i = 4

i = 5

END

V F

END

2 MAGGIO giovedì 2 maggio 2024 09:

FOR i = 5 : - 1 : 1

DISP(i)

END

i = 5

i >= 1

DISP (i)

i = i - 1

END

V F

ESEMPIO --> stampa tutti I numeri pari da 0 a 10 (inclusi)

FOR i = 0 : 2 : 10

DISP(i)

END

i =0 + 2 = 2

i =8 + 2 = 10

FATTORIALE DI UN NUMERO

N! = N * (N-1) * (N-2) … * 3 * 2 * 1

N = input("inserire un numero per il calcolo fattoriale : ")

FATTORIALE = 1;

FATTORIALE = FATTORIALE * 1

FATTORIALE = FATTORIALE * 2;

FATTORIALE = FATTORIALE * 3;

FATTORIALE = FATTORIALE * N

FATTORIALE = 1;

FATTORIALE = FATTORIALE * N

FATTORIALE = FATTORIALE * (N-1)

FATTORIALE = FATTORIALE * 1

FOR i = 1 : N

FATTORIALE = FATTORIALE * I

END

FOR i = N : - 1 :

FATTORIALE = FATTORIALE * i

END

while espressione_logica comandi end ➢ FUNZIONI : f ( fu [ u u 1 u u 2 …] = fu ( u 1 u 2 ..) Risultati argomenti della funzione Esempio: calcola il quadrato di x function f=quadrato(x) f = x^2; Return; % PROGRAMMA CONTENENTE ESEMPI DI CICLI FOR clear all close all clc % programma per la stampa di numeri da 1 a 5 % for i = 1: % disp(i) % end % programma per il calcolo del fattoriale di un numero N immesso da tastiera % % ciclo FOR che parte da 1 % N = input('INSERIRE UN NUMERO DI CUI CALCOLARE IL FATTORIALE: '); % Fattoriale = 1; % for i = 1:N % Fattoriale = Fattoriale * i; % end % % sprintf('IL FATTORIALE DI %d E'' PARI A %d', N, Fattoriale) % % pause % % programma per il calcolo del fattoriale di un numero N immesso da tastiera % % % ciclo FOR che parte da 2 % N = input('INSERIRE UN NUMERO DI CUI CALCOLARE IL FATTORIALE: '); % Fattoriale = 1; % for i = 2:N % Fattoriale = Fattoriale * i; % end % sprintf('IL FATTORIALE DI %d E'' PARI A %d', N, Fattoriale) % programma per il calcolo del fattoriale di un numero N immesso da tastiera (al contrario) % ciclo FOR che parte da N fino a 1 N = input('INSERIRE UN NUMERO DI CUI CALCOLARE IL FATTORIALE: '); Fattoriale = 1; for i = N:-1: Fattoriale = Fattoriale * i; end sprintf('IL FATTORIALE DI %d E'' PARI A %d', N, Fattoriale) pause SULLA LINEA DI COMANDO MATLAB >>x= >>y=quadrato(x) y=

pause % ciclo FOR che parte da N fino a 2 N = input('INSERIRE UN NUMERO DI CUI CALCOLARE IL FATTORIALE: '); Fattoriale = 1; for i = N:-1: Fattoriale = Fattoriale * i; end sprintf('IL FATTORIALE DI %d E'' PARI A %d', N, Fattoriale) % programma per indovinare un numero casuale sorteggiato tra 1 e 90 realizzato con il ciclo WHILE clear all close all clc N_COMP = randi(90, 1, 1); N_TENTATIVI = 1; N_UTENTE = input('INSERISCI UN NUMERO INTERO TRA 1 E 90: '); % INIZIALIZZAZIONE DELLA CONDIZIONE while N_COMP ~= N_UTENTE %CONDIZIONE disp ('MI DISPIACE NON HAI INDOVINATO, RITENTA') if N_UTENTE > N_COMP disp('IL NUMERO DA TE INSERITO è TROPPO GRANDE') else disp('IL NUMERO DA TE INSERITO è TROPPO PICCOLO') end N_UTENTE = input('INSERISCI UN NUMERO INTERO TRA 1 E 90: '); % AGGIORNAMENTO DELLA CONDIZIONE N_TENTATIVI = N_TENTATIVI + 1; end disp('BRAVO, HAI INDOVINATO') % programma per la risoluzione di eq. di II grado % eq. II grado: ax^2 +bx + c = % chiede in input i valori di a, b, c all'utente % restituisce il numero ed il valore delle soluzioni se presenti clear all close all clc % rischiesta dei coeff. a b e c a = input('Inserire il coeff. di II grado: '); b = input('Inserire il coeff. di I grado: '); c = input('Inserire il termine noto: '); % inizio risoluzione sulla base del valore di a if a ~= 0 %l'eq è di II grado delta = b^2 - 4 * a * c; if delta > 0 % 2 soluzioni distinte x1 = (-b + sqrt(delta))/2a; x2 = (-b - sqrt(delta))/2a; sprintf('L''EQUAZIONE HA DUE SOLUZIONI DISTINTE E PARI A: X1 = %0.5g, X2 = %0.5g', x1, x2)

VARIABILI : sono composte da lettere numeri e underscore (primo carattere non può essere un numero) ▪ x = 5 x --> 5 ▪ y = x y --> 5 ▪ x = x + 1 x --> 6 (si può anche scrivere cosi "x =+ 1") ▪ variabili booleane : True = 1 , False = 0 (0, 0.0 , stringa vuota (""), "{}" , "[]", "()", sono sempre falsi)

l'istruzione "print" : stampa il suo argomento trasformandolo in una stringa ▪ Si possono stampare più elementi se separati da una virgola ▪ Si può andare a capo inserendo " \n "

Input() : permette di acquisire dati interattivamente con l'utente → Ordine operazioni : parentesi, potenza ( ) → Operatore modulo : restituisce il resto della divisione quando il primo operando è diviso per il secondo >>resto = 7 % 3 >>pritn(resto) >> Conversione dei dati forniti:int (nome variabile input) --> converte in intero, eliminando i decimali senza arrotondare ▪ float (nome variabile input) --> converte in numero con decimale

STRINGHE : sono racchiuse fra apici singoli o doppi ▪ si possono usare alcuni operatori visti per i numeri >> "ciao" + "mondo" ( concatenazione ) >>"ABC" * 3 ( ripetizione ) >> "ciao mondo" >> "ABCABCABC" ▪ si può accedere ad ogni carattere con l'operatore bracket >>fruit = "banana" >> letter = fruit[1] (restituisce il secondo carattere, perché si parte da 0) ▪ word.find(carattere) : restituisce la posizione del carattere che si cerca ▪ variabile_strinta.strip() : rimuove lo spazio bianco dall'inizio e dalla fine della stringa ▪ variabile.capitalize() : rende maiuscola la prima lettera della stringa ▪ variabile.upper() rende una tutta maiuscola mentre variabile.lower() la rende tutta minuscola ▪ len("stirnga") : restituisce la lunghezza della stringa

MODULI DELLA STANDARD LIBRARY: si importano con l'istruzione import modulo (es. import random) random : permette di generare numeri pseudo-casuali → random() : restituisce numero casuale con la virgola tra [0.0 e 1.0) (es. n_casuale = random.random() ) → randit (a,b): restituisce un numero casuale tra [a,b] (es. numero_intero= random.randit(1,100) ) → choice(seq) : restituisce un elemento casuale da una sequenza (es. x = random.choice(["rosso","verde"]) → shuffle(seq) : mescola casualmente gli elementi di una sequenza (es. Random.shuffle(lista)

math : fornisce funzioni matematiche per operazioni complesse → sqrt(x) ; restituisce la radice quadrata di x (es: math.sqrt(25) ) → pow(x,y) : restituisce x elevato alla potenza y (es: math.pow(2,3)

tkinter : crea applicazioni grafiche multipiattaforma (per importarlo abbreviandolo: import tkinter as tk) finestra = tkinter.Tk() : crea la finestra principale → finestra.geometry("40x40") : stabilisce la dimensione della finestra → button = tkinter.Button(finestra,text="cliccami") → button.pack() : posiziona il bottone nella finestra → finestra.mainloop() : avvia il ciclo principale dell'interfaccia grafica PYTHON martedì 4 giugno 2024 12:

>> x += 2 >> return x >> print(funzione_esempio()

ERRORE : non si ha accesso alla variabile "x"

  1. >> def mia_funzione(): >> val = 24 >> print(val) >> new_val = val + 6 # ERRORE : val non definito ▪ accesso ad una variabile globale da una funzione (modificandola) >> variabile_globale = 10 >> def modifica_var_globale(): >> global variabile_globale >> variabile_globale += 5 >> print("variabile globale prima della modifica: " ,variabile_globale) # stampa 10 >> modifica_var_globale() >>print("variabile globale dopo la modifica: " , variabile_globale) # stampa 15 ▪ variabile locale all'interno di una funzione: >> def stampa_var_locale(): >> var_locale = "sono una var locale" >>print (var_locale) >> stampa_var_locale() # stampa sono una var locale ▪ modifica di una variabile locale all'interno di una funzione: >> def modifica_var_locale(): >>var_locale = 20 >>var_locale += 5 >> print ("var locale interna modificata: ", var_locale) >> modifica_var_locale() # stampa 25 ▪ variabili globale e locale con lo stesso nome: >> variabile = "variabile globale" >> def funzione(): >> variabile = "variabile locale" >>print ("variabile locale: ", variabile) >> print ("variabile : ", variabile) # stampa la variabile globale >> funzione() # stampa la variabile locale interna ECCEZZIONI : ▪ try - except : permette di rilevare le eccezioni (anche multiple) e passare il controllo ad un blocco preposto >> try: >> blocco 1 >> except: >> blocco 2

>> global x >> x += 2 >> return x >> print(funzione_esempio() # stampa 17 >> def mia_funzione(): >> val = 24 >> return val >> new_val = mia_funzione + 6 >>print(new_val) # stampa 30 Viene eseguito il blocco try se genera un errore passa al blocco except

>> try: >> blocco 1 >> except: >> blocco 2 → execpt ZeroDivisionError: gestione di divisioni per zero → except ArithmeticError: gestione di errori aritmetici → except Exception: gestione di altre eccezioni non gestite → raise ExceptionName , Argument : permette di forzare la creazione di un'eccezione → finally : questo costrutto serve a far eseguire un blocco istruzioni in ogni caso COSTRUTTI CONDIZIONALI: istruzione if: → funziona come in matlab → elseif ora diventa elif → istruzione pass permette di lasciare un buco per il futuro cosi che il programma non sia errori

liste : struttura dati che permette di memorizzare una sequenza ordinata di elementi (mutabili) >> mylist = [2,10,3,6,11,5,4] → nome_lista.append(oggetto) : aggiunge in fondo l'oggetto alla fine (es. Lista frutta, aggiunge fragola) → nome_lista.extend(nome_lista2) : aggiunge in fondo gli elementi della lista 2 → nome_lista.insert(index, oggetto) : aggiunge l'oggetto prima di index → nome_lista.pop([index]) : rimuove l'elemento in index e lo ritorna (valore originale sempre - 1) → nome_lista.remove(value) : elimina la prima occorrenza di value → nome_lista.reverse() : inverte la lista → nome_lista.sort() : ordina la lista ATTENZIONE ad appen crea una nuova lista tuple : delimitate da parentesi (omettibili se senza ambiguità), elementi separati dalla virgola (immutabili) → (1,2,3) → (1,) # un solo elemento → () # nessun elemento

→ (1,2,)[0] = 5 # errore! (nelle liste avrebbe cambiato la posizione 0 (ovvero l'1) con 5) dizionari : é una struttura di dati che associa chiavi e valori → nome_dizionario.() : elimina tutti gli elementi del dizionario → nome_dizionario.copy() : restituisce una copia di "nome_dizionario" → nome_dizionario.has_Key(k) : restituisce 1 se "k" e nel dizionario, altrimenti 0 (si può usare anche in) nome_dizionario.items() , nome_dizionario.keys() , nome_dizionario.values() restituiscono: □ Lista con tuple "(chiave, valore)" □ Lista delle chiavi □ Lista dei valori

→ nome_dizionario.update(D2) : aggiunge le chiavi di "nome_dizionario2" in "nome_dizionario" → nome_dizionario.get(k,d) : restituisce nome_dizionario[k] se la chiave é presente, altrimenti d (none)

COSTRUTTI INTERATTIVI:

Ciclo while : funziona come su matlab (finché la condizione é vera) → Per dire finche guess é vero ( while not guess)

for loop : funziona come su matlab (anche cosi: for numero in range( 11 ) ) ▪ break : viene usata per interrompere prematuramente un ciclo ▪ continue : simile a break ma invece di interrompere il ciclo, salta tutto il codice successivo all'istruzione

Viene eseguito il blocco try se genera un errore passa al blocco except