Anteprima
Vedrai una selezione di 5 pagine su 16
Appunti di Informatica (primo anno) Pag. 1 Appunti di Informatica (primo anno) Pag. 2
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Appunti di Informatica (primo anno) Pag. 6
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Appunti di Informatica (primo anno) Pag. 11
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Appunti di Informatica (primo anno) Pag. 16
1 su 16
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

ISTRUZIONE

Le keyword ed servono per creare costrutti condizionali in Python. Alcuni costrutti, come l'istruzione

if else

sono compound statement, che consistono in un'intestazione e un blocco di istruzioni. Questi richiedono

if,

un ":" alla fine dell'header e il blocco di istruzioni deve essere indentato. Il blocco:

 Inizia sulla riga successiva all'header

 Contiene istruzioni indentate

 Si conclude quando si trova un'istruzione meno indentata I blocchi possono essere annidati

all'interno di altri.

Operatori relazionali

Gli operatori relazionali sono: maggiore (>), maggiore o uguale (>=), minore (<), minore o uguale (<=),

uguale (==) e non uguale (!=).

Errore – Floating point

I numeri in floating-point hanno precisione limitata, e i calcoli su di essi possono causare errori di

approssimazione. Per confrontare questi numeri, si possono usare due metodi:

1. Uso di una costante EPSILON: Si verifica se la differenza tra due numeri è abbastanza piccola,

usando un valore molto piccolo (ad esempio, 10 )

-14

ε [Pagina 5]

Politecnico di Torino Riassunto di Informatica

2. Uso di La funzione del modulo permette di confrontare due

math.isclose(): isclose() math

numeri con un margine di errore

Ordine alfabetico

Per confrontare due stringhe alfabeticamente si utilizza un operatore relazionale, come string1 < string2.

Alcuni dettagli importanti:

 Le lettere maiuscole vengono prima delle minuscole (es. 'A' < 'a').

 Lo spazio viene prima di tutti i caratteri stampabili.

 I numeri (0-9) vengono prima delle lettere.

 L'ordine delle lettere è definito dal codice ASCII (Subset di Unicode), ma l'ordine delle lettere

accentate potrebbe non essere sempre logico o corretto.

Precedenze degli operatori

Gli operatori aritmetici hanno la precedenza sugli operatori relazionali, quindi i calcoli vengono eseguiti

prima del confronto. Generalmente, i calcoli si trovano a destra degli operatori di confronto o

assegnazione.

Istruzione pass

Durante lo sviluppo del codice, è utile scrivere prima lo "scheletro" della logica e riempirlo in seguito. La

keyword pass consente di creare un blocco if, else o elif senza alcuna istruzione, mantenendo la sintassi

corretta. In fase di sviluppo, pass non fa nulla, ma sarà poi sostituito da codice effettivo.

H -

AND TRACING

Hand-tracing è un metodo per verificare il corretto funzionamento di un programma, tracciando

manualmente l'evoluzione delle variabili. Si crea una tabella con le variabili principali e si annotano i loro

valori. Utilizzando il codice o pseudocodice, si simula l'esecuzione del programma con dati di input di

esempio che producano un risultato prevedibile, testando tutti i rami del codice.

V O B

ARIABILI E PERATORI OOLEANI

Nel 1847 George Boole introdusse un nuovo tipo di formalismo logico, basato esclusivamente su enunciati

che potevano essere veri o falsi.

Variabili booleane

Una variabile Booleana può solo essere Vera o Falsa (1 o 0). Una variabile booleana è spesso utilizzata

come flag (indicatore) proprio perché può essere solo vera o falsa. bool è un tipo di dato in Python (può

avere i valori True e False). La condizione di un’istruzione if è un valore Booleano.

Operatori booleani

Ci sono tre diversi operatori Booleani principali: and, or, not.

Legge di de morgan

La legge di De Morgan spiega come negare una combinazione di and e or:

è la stessa cosa di

 not(A and B) not(A) or not(B)

è la stessa cosa di

 not(A or B) not(A) and not(B)

[Pagina 6]

Politecnico di Torino Riassunto di Informatica

CICLI

C ICLO WHILE

Il ciclo viene utilizzato per ripetere lo stesso blocco di istruzioni finché una determinata condizione

while

rimane vera. Esistono diversi tipi di cicli while in base a come viene controllata la condizione.

Un ciclo controllato da un contatore si basa su un valore numerico che conta il numero di ripetizioni. Il

ciclo si ferma quando è stato raggiunto un numero predefinito di iterazioni. In informatica, è comune

inizializzare il contatore a 0, sebbene a volte possa partire da 1. È importante fare attenzione agli off-by-

one errors, che si verificano quando il ciclo supera o non raggiunge il numero desiderato di iterazioni.

Un ciclo controllato da un evento, invece, continua finché una condizione diventa falsa, ma il numero di

iterazioni non è noto in anticipo. Il ciclo si interrompe solo quando la condizione specificata non è più vera.

Per interrompere anticipatamente un ciclo, possiamo usare:

 che interrompe immediatamente il ciclo e fa proseguire l'esecuzione del programma dalle

break,

istruzioni successive.

 che salta l'iterazione corrente e passa direttamente alla successiva, senza completare

continue,

quella in corso.

V ALORI SENTINELLA

Quando si legge una sequenza di input, spesso è necessario un metodo per indicare la fine della

sequenza. Quando non si sa quanti elementi ci sono un una lista, si può utilizzare un carattere o un valore

speciale per identificare l’ultimo della lista. Questo valore si chiama “sentinella”, che identifica la fine dei

data ma NON FA PARTE DEI DATI STESSI. Ad esempio: Per input di numeri interi positivi, si può ad esempio

usare 0 o -1.

C ICLO FOR

Il ciclo serve a iterare su tutti i valori di un qualsiasi contenitore. Un contenitore è un oggetto (come

for…in

una stringa) che può memorizzare un insieme di elementi. Python ha diversi tipi di contenitori:

Una stringa è un contenitore di caratteri

 Una lista è un contenitore di valori arbitrari (numerici, stringhe, liste, …)

 Un file è un contenitore di linee di testo

Contenitore Range

È un contenitore speciale di una sequenza di numeri consecutivi. Si genera con la funzione che

range(N)

crea una sequenza di interi da 0 a N-1. Quindi un for con un è equivalente a un ciclo

range() while

controllato da un contatore.

Ciclare sull’indice e valore

La funzione enumerate trasforma un contenitore un qualsiasi contenitore in una sequenza di coppie.

for (indice, valore) in enumerate(nome):

G ENERAZIONE NUMERI CASUALI

Python mette a disposizione un generatore di numeri casuali che produce numeri che sembrano casuali. I

numeri sono in realtà pseudo-casuali. Sono infatti estratti da una sequenza di numeri non consecutivi che

non si ripetono (a meno di continuare nella sequenza per molto tempo). Il generatore di numeri casuali si

trova nel modulo random import

from random random

La funzione ritorna un numero compreso tra 0 e 1. Invece la funzione ritorna un

random() randint(a,b)

numero intero compreso tra a e b. [Pagina 7]

Politecnico di Torino Riassunto di Informatica

FUNZIONI

Le funzioni possono essere viste come "scatole nere": vengono passati loro i dati necessari per eseguire un

compito e, una volta completato, restituiscono un risultato che può essere utilizzato. Una funzione è una

sequenza di istruzioni a cui viene dato un nome, e si invoca per eseguire tali istruzioni. Quando la funzione

termina, il risultato è restituito e può essere utilizzato in un'espressione.

A RGOMENTI

Gli argomenti sono i valori che vengono passati alla funzione al momento della sua invocazione. Le

funzioni possono ricevere uno o più argomenti, e possono anche non richiederne affatto. Le variabili

parametro (parametri formali) ricevono gli argomenti (parametri effettivi o parametri attuali)

dell’invocazione della funzione. Gli argomenti possono essere il valore corrente di una variabile o

un’espressione (funzione o lambda). La variabile parametro è dichiarata nella funzione invocata.

Gli argomenti possono essere associati ai parametri in due modi:

1. Parametri posizionali: Gli argomenti vengono associati ai parametri in base alla loro posizione. Ad

esempio, il primo argomento va al primo parametro, il secondo al secondo, e così via.

2. Parametri nominativi: Gli argomenti sono associati ai parametri tramite il nome del parametro,

per specificare chiaramente a quale parametro assegnare ciascun valore.

Le variabili di default permettono di assegnare un valore predefinito a un parametro, che verrà utilizzato

se nessun argomento è passato per quel parametro. Ad esempio:

def complex(real=0.0, imag=0.0)

Infine, le liste di argomenti variabili consentono di passare un numero arbitrario di argomenti a una

funzione. Questi parametri non sono associati a un nome specifico. La sintassi per definirli è *args, e

viene utilizzata per raccogliere gli argomenti passati alla funzione come una tupla.

R ESTITUZIONE DEI VALORI

L'output che una funzione calcola è chiamato valore restituito. Ogni funzione può restituire un solo valore,

ma se è necessario restituire più valori, è possibile aggirare questa limitazione restituendo una lista o una

tupla. Alcune funzioni, tuttavia, non restituiscono alcun valore. L'istruzione return termina immediatamente

l'esecuzione della funzione e restituisce il valore al chiamante. È importante che tutte le diramazioni del

flusso di esecuzione di una funzione (tutti i percorsi possibili) restituiscano un valore, il che implica che ogni

possibile percorso debba includere un'istruzione return.

R EALIZZAZIONE DI UNA FUNZIONE

Per definire una funzione, è necessario seguire questi passaggi:

 Scegliere un nome per la funzione.

 Dichiarare le variabili per ogni argomento che la funzione riceverà.

 Usare la parola chiave def per unire tutte queste informazioni e formare la prima riga della

definizione della funzione.

L'istruzione def apre un nuovo blocco di codice (un compound statement), all'interno del quale scriveremo

le istruzioni che compongono il corpo della funzione.

L A FUNZIONE MAIN

Quando si definiscono e usano funzioni in Python, è buona pratica che tutte le istruzioni del programma si

trovino all’interno di funzioni, e che una di esse venga indicata come punto di partenza dell’esecuzione.

Sebbene qualsiasi nome possa essere scelto, per convenzione si usa main, un nome comune in altri

linguaggi di programmazione. Ovviamente, è necessario includere un'istruzione che invochi la funzione

main. In generale, l'invocazione della funzione main dovrebbe avvenire:

 Se il programma è eseguito in modalità standalone.

 Non dovrebbe essere eseguita se il programma è importato come modulo in un programma più

grande. [Pagina 8]

Politecnico di Torino Riassunto di Informatica

Per gestire questo comportamento, si controlla la variabile speciale __name__, che contiene il nome del

modulo o la stringa '__main_

Dettagli
A.A. 2022-2023
16 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher maurizio.costa.03 di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Torino o del prof Benso Alfredo.