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 informatica e programmazione in Python, Sintesi del corso di Fondamenti di informatica

Documento riassuntivo di tutti gli argomenti trattati al corso di informatica di base per il primo anno di ingegneria meccanica (laurea triennale). Comprende tutti i fondamentali per la programmazione in linguaggio Python (sufficienti per superare l'esame), conversione dati in binario, ottale ed esadecimale e una sezione riassuntiva sull'architettura del calcolatore

Tipologia: Sintesi del corso

2021/2022

In vendita dal 31/12/2022

Giulio2301
Giulio2301 🇮🇹

5

(1)

2 documenti

1 / 37

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INTRODUZIONE ALLA PROGRAMMAZIONE
SOFTWARE: viene tipicamente sviluppato sotto forma di «programma applicativo» (App). È una sequenza di
istruzioni e decisioni implementata in qualche linguaggio e tradotta in una forma che possa essere eseguita
nel computer.
ALGORITMO: sequenza di istruzioni passo-passo per risolvere un problema.
FONDAMENTALI PYTHON
Python è case sensitive: distingue le lettere maiuscole dalle minuscole, sono due cose differenti
Gli spazi sono importanti per l’identazione (come impostare il codice in maniera grafica per rendere un
senso logico)
Le righe precedute dal # sono commenti
Python è un linguaggio interpretato e non compilato. Significa che il compilatore traduce in binario le
istruzioni al momento di eseguire il codice e non prima come nel compilato.
Una STRINGA è una sequenza di caratteri racchiusi tra apici, virgolette o doppi apici (in sostanza solo testo).
Funzione PRINT() una delle funzioni base, stampa a video quello che si inserisce come argomento
VARIABILI
Una variabile è una zona di memoria dotata di un nome in un programma che fa riferimento ad un valore
specifico.
Per definire una variabile bisogna assegnarle un nome e un valore iniziale (es. lattine = 0)
Per attribuire un valore ad una variabile usare l’istruzione di assegnazione = Attenzione: il segno = NON
rappresenta un confronto
Diversi tipi di dato per le variabili:
integer o int (valore intero) es. 7
float (valore a virgola mobile) es. 8.82
string (sequenza di caratteri, stringa) es. “bob”
Bisogna definire (e inizializzare) una variabile prima di usarla: deve essere definita da qualche parte sopra la
linea di codice dove la si usa per la prima volta, altrimenti non la si può usare in quanto il compilatore non
sa a cosa ci riferiamo.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25

Anteprima parziale del testo

Scarica fondamenti di informatica e programmazione in Python e più Sintesi del corso in PDF di Fondamenti di informatica solo su Docsity!

INTRODUZIONE ALLA PROGRAMMAZIONE

SOFTWARE : viene tipicamente sviluppato sotto forma di «programma applicativo» (App). È una sequenza di istruzioni e decisioni implementata in qualche linguaggio e tradotta in una forma che possa essere eseguita nel computer. ALGORITMO : sequenza di istruzioni passo-passo per risolvere un problema.

FONDAMENTALI PYTHON

Python è case sensitive : distingue le lettere maiuscole dalle minuscole, sono due cose differenti Gli spazi sono importanti per l’identazione (come impostare il codice in maniera grafica per rendere un senso logico) Le righe precedute dal # sono commenti Python è un linguaggio interpretato e non compilato. Significa che il compilatore traduce in binario le istruzioni al momento di eseguire il codice e non prima come nel compilato. Una STRINGA è una sequenza di caratteri racchiusi tra apici, virgolette o doppi apici (in sostanza solo testo). Funzione PRINT() una delle funzioni base, stampa a video quello che si inserisce come argomento

VARIABILI

Una variabile è una zona di memoria dotata di un nome in un programma che fa riferimento ad un valore specifico. Per definire una variabile bisogna assegnarle un nome e un valore iniziale (es. lattine = 0) Per attribuire un valore ad una variabile usare l’ istruzione di assegnazione = Attenzione: il segno = NON rappresenta un confronto Diversi tipi di dato per le variabili: integer o int (valore intero) es. 7 float (valore a virgola mobile) es. 8. string (sequenza di caratteri, stringa) es. “bob” Bisogna definire (e inizializzare ) una variabile prima di usarla: deve essere definita da qualche parte sopra la linea di codice dove la si usa per la prima volta, altrimenti non la si può usare in quanto il compilatore non sa a cosa ci riferiamo.

Usare sempre lo stesso tipo di valore in una variabile dopo averla inizializzata, la IDE restituisce errore se i tipi non coincidono (non posso sommare un numero ad una lettera). PER NOMI VARIABILI:  No caratteri speciali o parole riservate a Python (parola spesso usata sbagliando “max”)  Non iniziare mai con un numero e usare lettera maiuscola (convenzione)  Se nome composto da più parole si possono usare 2 tipi di separazione: o Snake case (parola_parola) o Camel case (parolaParolaParola) Esempio. taxRate = 5

COSTANTI

 Variabile del quale non andrebbe cambiato il contenuto  Usare tutte lettere maiuscole per il nome (convenzione)  Python permette di cambiare il valore di una costante (consigliabile non farlo) Esempio. BOTTLE_VOLUME =

ARITMETICA

Supporta tutte le operazioni elementari: + - * / ** potenza L’ordine di esecuzione è uguale a quello di calcolo, usare le parentesi quando necessario Int + int = int int + float = float float + float = float (anche per le alter operazioni) Divisione reale ( / )  restituisce valore float Divisone intera ( // ) restituisce valore intero, ignora la parte frazionaria Resto della divisione ( % )  restituisce il resto della divisione (utile per capire se numero pari o dispari)

Per importare moduli:  From “nome modulo” import “nome funzione (o elenco di funzioni separate da virgola)”  From “nome modulo” import * (importa tutte le funzioni del modulo)  Import “nome modulo” (importa il modulo e da accesso alle funzioni bisogna mettere il prefisso “nome modulo.” davanti alla funzione. Esempio. import math y = math.sqrt() ) Si possono usare le funzioni int() e float() per convertire tra numeri interi e a virgola mobile (non c’è arrotondamento).

STRINGHE

La stringa è una sequenza di caratteri. Le stringhe sono immutabili: non possono essere modificate dopo la loro creazione. Si possono sommare due stringhe, il risultato sarà una nuova stringa con le parole attaccate  se si necessita di spazio tra le parole sommare una stringa vuota. Esempio. a = “mario” b = “luca” print(a+b) “marioluca”  c = “ ” print(a+b+c) “mario luca” Ammette sia le virgolette che gli apici. La funzione len() calcola la lunghezza della stringa, ovvero il numero di caratteri. La stringa vuota risulta avere 0 caratteri  “” oppure ‘’ Esempio. length = len("World!") # length è 6 Una stringa può essere moltiplicata per un numero per averla ripetuta più volte. Esempio. dashes = "-" * 50 Usare string() per convertire un numero in stringa.

Quando una stringa contiene la rappresentazione di un numero (intero o float), la si può convertire in un valore numerico usando le funzioni int() e float(). Per estrarre un carattere da una stringa usare l’operatore [ ] preceduto dal nome della variabile. All’interno delle parentesi va inserito l’indice del carattere che vogliamo avere indietro. All’interno delle parentesi possiamo aggiungere anche inizio e fine della sezione che volgiamo e il passo con cui estrarre i caratteri secondo la sintassi: NomeVariabile[start : stop : step] ATTENZIONE: in python si parte sempre a contare da 0 quindi il 6° carattere ad esempio sarà quello di indice n-1 = 5 Notazioni  Nome[ : 6] parte da indice zero fino al 6 (7° carattere)  Nome[6 : ] parte dal 6° fino alla fine  Nome[ : ]  tutti gli elementi, fa una copia, operazione inutile per le stringhe Usando step negativo il percorso viene effettuato in maniera inversa. Occorre che start sia maggiore di stop. Esempio. nome[6 : : -1]  parte da 6 e va a ritroso SEQUENZE DI ESCAPE ▪ Come visualizzare le virgolette? Anteporre a " il carattere “\”, all’interno della stringa virgolettata Esempio. print("He said "Hello"") ▪ Come visualizzare il backslash? Anteporre a \ un altro
Esempio. print("C:\Temp\Secret.txt") ▪ Caratteri speciali nelle stringhe Andare a capo con ‘\n’ Esempio. print("\n\n**")

f-string: è una stringa preceduta dal carattere ‘f’ oppure ‘F’. possono contenere campi sostituibili nelle parantesi graffe. Esempio. f ”il risultato è {result}” f ”la somma è {a+b}” f ”il risultato è {result=5}” È possibile modificare il formato in cui vengono stampati i valori, utilizzando degli specificatori di formato Quando occorre stampare un numero reale con un determinato numero di cifre decimali, l’ideale è utilizzare il formato: Esempio. print(f’{pi:10.3f}’) .... .3. Notare la differenza con: print(round(pi,3)) arrotonda alla terza cifra e non posso controllare l’ampiezza complessiva e non allinea a destra. Round() meglio per le formula matematiche mentre f’{:f}’ per stampare a video..

Altro modo per avere output formattato: operatore %

ISTRUZIONE IF

Due parole chiave per la funzione: if (vera) e else (falsa) Può essere usata anche solo con il ramo if, se la domanda non è verificata il programma procede. La funzione if è un compound statement quindi richiede l’uso dei : alla fine dell’header (la prima riga della funzione)

OPERATORI RELAZIONALI

Or: serve per verificare una sola delle condizioni (in un if ad esempio). se una qualunque delle due condizioni è vera il programma procede sul ramo “vero”. Not: serve per negare una delle condizioni (in un if ad esempio). Esempio. Nota!  if not (a == b): #è come scrivere if a != b: LEGGE DI DE MORGAN Spiega come negare una combinazione di and o or Not (a and b) è uguale a not (a) or not (b) Not (a or b) è uguale a not (a) and not (b)

ANALISI STRINGHE

Potrebbe essere utile a volte analizzare una stringa per sapere se un certo carattere è presente in essa. Usare l’operatore in (oppure not in se si vuole il suo contrario). Operatore .endswith() può essere usato in un if per sapere se la stringa termina con la esatta estensione. Esempio. if filename.endswith(“.html”) : Print(“è un file HTML”)

CONFRONTO TRA FLOAT

Hanno una precisione limitata, questo può causare errori nel loro confronto. Usare la funzione isclose() del modulo math per i confronti float. Esempio. from math import isclose If isclose(r*r , 2.0):  aggira il problema dell’approssimazione confrontando valori vicini

CONFRONTO ORDINE ALFABETICO

Usare la formula string1 <string Nota ordine: spazio, numeri, maiuscole, minuscole (le accentate seguono diverso ordine non sempre logico)

CICLO WHILE

Usati per ripetere diverse volte lo stesso blocco di istruzioni, finché una condizione rimane vera. Per determinare quante volte il ciclo while deve ripetere l’operazione si può usare un contatore che andrà incrementato ogni volta che il corpo del while viene eseguito. Esempio. conta = 1 #inizializza il contatore While conta <=10 : #controlla il contatore print(conta) conta = conta + 1 #incrementa

DEFINIRE FUNZIONI

Una funzione è una sequenza di istruzioni a cui viene dato un nome. Le funzioni possono ricevere diversi argomenti ma è possibile avere anche funzioni senza argomenti. Generalmente una funzione restituisce un solo valore ma può anche non restituire nulla o nel caso di tuple o liste anche più di un valore. STRUTTURARE UNA FUNZIONE Scegliere un nome e dichiarare la variabile per ogni argomento Esempio. Suggerimento !! non modificare le variabili parametro, potrebbe creare confusione  creare una nuova variabile Esempio. sbagliato  corretto, senza modificare variabile parametro Suggerimento! Commentare le funzioni create per avere chiaro quali sono i suoi passaggi All’interno dell’argomento si possono avere due tipi di parametri:  i positional parameters che risentono dell’ordine e necessitano di essere scritti in maniera ordinata  i named parameters che possono essere scritti in qualsiasi ordine Esempio.

Le funzioni possono (opzionalmente) restituire un valore. Per questa operazione aggiungere l’istruzione return (termina subito la funzione e passa il valore di ritorno alla funzione che l’ha chiamata). Esmepio. Per avere più di un valore in restituzione usare una tupla  esempio. return( x, y) La funzione può usare più return  se ben strutturata la funzione , si può evitare di avere due return Esempio. Se non serve avere indietro un valore è sufficiente scrivere return senza affiancarlo dalla variabile che deve restituire. Se l’enunciato return non viene incontrato durante l’esecuzione della funzione, è equivalente ad avere un return vuoto dopo l’ultima istruzione della funzione.  esempio di funzione senza return

Differenze tra liste e stringhe:  in entrambe si può accedere ad un elemento tramite [] ma nelle liste questo elemento si può variare diversamente dalla stringa.  La stringa può contenere esclusivamente caratteri mentre la lista qualsiasi tipo di dato.  Stampare una lista con la funzione print() come una normale variabile.  Determinare la lunghezza della lista con la funzione len() come una normale stringa. Differenza tra: values[4] accede all’elemento 4 values = [4] crea una lista formata dal numero 4 iterazione sugli elementi senza la variabile i: Quando si vuole creare una copia della lista, ovvero una nuova lista che abbia gli stessi elementi nello stesso ordine rispetto ad una lista data si usa la funzione list() In python si possono inserire indici negativi nelle liste così da poter accedere dal fondo: esempio. lista[-1] accede all’ultimo elemento lista[-2] accede al penultimo elemento per aggiungere elementi alla lista usare la funzione .append() Esempio. Se la posizione del nuovo elemento dovesse essere importante usare la funzione

.insert(posizione, elemento) Esempio. friends.insert(1, ‘cindy’) parola cindy inserita nella pos. di indice 1 Con la funzione in si può sapere se un elemento si trova nella lista. Con la funzione .index() si trova l’indice dell’elemento desiderato sempre se questo è presente nella lista- .pop() rimuove l’elemento nella posizione data: La lunghezza della lista sarà ridotta di 1, gli elementi si spostano indietro di una posizione. La concatenazione di liste aggiunge dopo gli elementi di una lista quelli di un’altra. Si attua con il + come una semplice somma. In questo caso si genera una nuova lista con entrambi i componenti. .extend() aggiunge i termini di una seconda lista ad una prima ma modificando quella esistente sum()  somma tutti i termini della lista max()  trova il massimo della lista min()  trova il minimo della lista .sort() ordina in maniera crescente sorted()  ordina in maniera crescente creando una nuova lista per ordinare in maniera decrescente inserire nelle parentesi reverse=Truesorted(lista, reverse=True) lista[ start : stop : step ]  per accedere a determinati elementi, come nelle stringhe .join()  unisce automaticamente gli elementi di una lista usando una stringa come separatore split() restituisce una lista delle sottostringhe risultanti dalla divisione della stringa in corrispondenza di ciascuno spazio.

Passando una tabella ad una funzione, è necessario estrarre le dimensioni della tabella. Data una tabella chiamata values:  len( values ) è il numero delle righe  len( values[0] ) è il numero di colonne esempio. somma degli elementi di una tabella

FILE E GESTIONE DI ECCEZIONI

FILE

LETTURA FILE

Per leggere le info di un file è necessario prima aprirlo  fornire nome file e stringa ‘r’ (r=reading) alla funzione open() Il file deve esistere ed essere accessibile all’utente Deve essere salvato in una variabile Viene restituito un “oggetto file” che useremo per leggere/scrivere il contenuto SCRITTURA FILE Al posto della variabile ‘r’ si scrive ‘w’ che indica la scrittura = writing Se il file non esiste ne viene creato uno nuovo (vuoto) Se esiste già un file il suo contenuto viene svuotato Il ogni caso il file alla fine deve essere chiuso con la funzione .close()  infile.close()

In alternativa usare il comando with che non necessita di essere chiuso, lo fa in automatico. Tutte le operazioni (lettura/scrittura devono avvenire dentro il blocco del with) Se il file contiene caratteri speciali specificare Metodi per leggere un file:  infile.read(1) legge un solo carattere  infile.read(N) legge n caratteri  infile.readline() oppure for line in infile legge una riga  infile.readlines() oppure infile.read() legge tutte le righe Dopo la lettura, il cursore viene fatto avanzare fino al primo carattere non ancora letto. Salvare il contenuto in una variabile Il cursore leggerà tutta la riga fino al termine indicato da ‘\n’ che fa parte della riga e viene memorizzato Se il file contenesse una riga vuota, in tal caso readline() restituirebbe una stringa contenente unicamente il carattere newline "\n” È possibile leggere il file con un ciclo while fino ad un valore sentinella: I DATI SONO ESCLUSIVAMENTE STRINGHE E VANNO QUINDI CONVERTITI IN CASO DI DATI NUMERICI Si può scrivere in un file (aperto in scrittura) utilizzando il metodo write() :  usare il carattere di fine linea per andare a capo Può essere comodo per stringhe formattate con metodo f’-string