Python - Base
Python - Base
Installazione ...................................................................................................................................... 3
Linguaggio Python..................................................................................................................... 3
Primo programma.................................................................................................................... 5
Installazione dell'IDE PyCharm ......................................................................................................... 6
Fondamenti .............................................................................................................................. 11
Commenti............................................................................................................................ 11
Variabili
Comandi di Ingresso e Uscita................................................................................................. 12
Operatori.............................................................................................................................. 13
Lista degli esercizi A ................................................................................................................ 15
Strutture condizionali ........................................................................................................... 18
Lista di esercizi B ................................................................................................................ 20
Strutture di ripetizione........................................................................................................... 22
Lista di Esercizi C ................................................................................................................ 23
Arrays.......................................................................................................................................... 26
Funzioni principali dell'array ..................................................................................................... 27
Alcuni esempi pratici........................................................................................................ 30
Array multidimensionali........................................................................................................ 31
Lista di esercizi D ................................................................................................................ 34
Funzioni ....................................................................................................................................... 36
Caratteristiche......................................................................................................................... 38
Esempio 01.............................................................................................................................. 39
Esempio 02.............................................................................................................................. 39
Esempio 03.............................................................................................................................. 40
Esempio 04.............................................................................................................................. 41
Esempio 05.............................................................................................................................. 41
Lista di esercizi E................................................................................................................. 42
Struttura dei Dati...................................................................................................................... 44
Dizionario dei dati................................................................................................................. 45
Esempio: Relazionare i meta-dati con i dati.................................................................... 49
Lista di esercizi F................................................................................................................. 50
Python e SQLite
Manipolando il database.............................................................................................. 53
1
Comando INSERT..................................................................................................................... 53
Comando AGGIORNA................................................................................................................... 57
Comando DELETE .................................................................................................................... 58
Comando SELECT..................................................................................................................... 59
Comando WHERE.................................................................................................................... 60
Lavorare con più di un tavolo .................................................................................... 61
Lista di esercizi G.................................................................................................................. 63
Gestione delle Eccezioni............................................................................................................... 64
Gerarchia delle eccezioni........................................................................................................... 65
Azione di pulizia ...................................................................................................................... 67
Comando raise ........................................................................................................................ 67
Lista di esercizi H.................................................................................................................. 68
Archivi ...................................................................................................................................... 70
Python e Arduino
Riferimento Bibliografico .............................................................................................................. 72
2
Instalação
Linguaggio Python
Installazione personalizzata.
3
Ogni opzione selezionata ha il seguente significato:
installa la documentazione del linguaggio;
pip: installa o pip che è usato per scaricare librerie sviluppate in Python;
tcl/tk e IDLE: installa la biblioteca Python per la creazione di interfacce grafiche;
4
Primo programma
python –V
python
Utilizza il comando print per stampare qualcosa sullo schermo. Prova la seguente riga di comando:
print("Ciao mondo")
Il comando presentato riguarda una funzione. Per definizione, ogni funzione deve possedere
parentesi. Nel caso presentato la funzione print ha ricevuto un contenuto di tipo testo. A
seguire con i seguenti comandi:
La funzione print consente di stampare diversi valori. Nota che ogni valore
deve essere separato da virgola. È consentito presentare valori di altri tipi che non
Il termine finale: sep=" ", definisce quale carattere sarà utilizzato come
separatore dei valori presentati.
5
Ora digita i seguenti comandi:
[Link]/pycharm/download
6
Esegui il file, nella schermata che definisce la Cartella di Destinazione installa l'applicazione
no seguente indirizzo:
lancier 64-bit;
Aggiungi la directory del lanciatore al PATH;
.py
e fai clic sul pulsante Avanti.
7
Dopo aver completato l'installazione, apri il programma. Scegli l'opzione Crea
Nuovo progetto.
Sarà disponibile una schermata per definire il percorso del progetto e quale macchina virtuale
da utilizzare per il progetto.
8
EmLocationcree il seguente percorso:
c:\sviluppo\workspace\python\corso\primo
Nell'opzione Interprete del Progetto lascia selezionata la macchina virtuale consigliata. Clicca su
bottoneCrea.
Con il progetto creato, fai clic con il pulsante destro del mouse sul nome del progetto e scegli l'opzione
9
Digitare il seguente codice:
Per eseguire clicca sul menu Esegui Premi i tasti Alt + Maiusc + F10. Il
il risultato sarà visualizzato nell'angolo in basso dello schermo dell'applicazione.
10
Fondamenti
Sviluppata da Guido van Rossum, la lingua Python è emersa nel 1991. Questa
la lingua ha le seguenti caratteristiche:
Interpretata: non utilizza le risorse direttamente dalla macchina;
Alto livello: basato su altre lingue;
Script: supporta la creazione di descrizioni;
Commenti
Un commento consente allo sviluppatore di scrivere qualcosa nel programma che non
sarà interpretato dal linguaggio. Questo commento può essere di una sola riga,
exemplo:
O di più linee:
´´´
Andai al mercato e digitai
´´´
O comentário de múltiplas linhas deve estar envolvido por três aspas simples no início
e chiusura.
Variabili
In Python una variabile deve avere solo un nome e un valore. Il tipo del
una variabile è definita attraverso il valore ricevuto, ovvero il linguaggio offre la creazione di
variabili non tipizzate, che non hanno un tipo predefinito.
11
Essendo così una variabile essere un numero o un testo. Se è un numero,
questa potrebbe contenere valori:
Le variabili che contengono valori di tipo testo devono essere racchiuse tra virgolette singole
o coppie. Esempio:
Per nominare una variabile, è permesso utilizzare qualsiasi carattere che non sia
simbolo chiave del linguaggio. Una variabile può avere qualsiasi nome, ad eccezione
le parole riservate del linguaggio.
12
Lo sviluppatore potrà stampare un'uscita tramite il comando print. Questo
il comando può essere utilizzato nel seguente modo:
print("Ciao", nome)
Operatori
Operatore di assegnazione
Operatori Aritmetici
13
Descrizione Símbolo
Addizione +
Sottrazione -
Divisione /
Moltiplicazione *
Resto %
Operatori Relazionali
Descrizione Simbolo
Maior >
Minore <
Maggiore o uguale >=
Minore o uguale <=
Uguaglianza ==
Diverso !=
Operatori Logici
Partecipano alla costruzione di una sentenza logica. Sono utilizzati anche nei
strutture condizionali e di ripetizione. Essi sono:
Descrizione Símbolo
È logico e
OU logico oppure
NON logico non
e
P Q Pe Q
Vero Vero Vero
14
Vero Falso Falso
Falso Vero Falso
Falso Falso Falso
o
P Q Pe Q
Vero Vero Vero
Vero Falso Vero
Falso Vero Vero
Falso Falso Falso
non
P non P
Vero Falso
Falso Vero
Lista di esercizi A
Calcolo dell'ipotenusa:
h² = ca² + co²
co ca co
petto cosseno tangente
h h ca
, dove:
h = hipotenusa;
ca = cateto adiacente;
co = cateto opposto.
15
2) Sviluppa un programma in Python che generi un numero casuale di quattro cifre (M
– Milhar, C – Centina, D – Dezena, U - Unità) variando tra 1000 e 9999. Il programma deve
calcolare e stampare la seguente espressione matematica:
U randi(M*10)
x
C 2 D
3) Sviluppa un programma in Python nel quale l'utente digiterà il raggio di un cerchio, la base e
l'altezza di un triangolo. Il programma deve calcolare l'area del cerchio e del triangolo e stampare
la differenza dell'area del triangolo rispetto all'area del cerchio.
4) L'IF Goiano - Campus Trindade desidera verificare quale sia stato il punteggio ottenuto da un
candidato determinato iscritto nel processo elettorale per coordinatore di corso. Il team di
gli sviluppatori hanno deciso di aiutare in questo compito creando un programma Python. In questo
l'algoritmo è necessario affinché l'utente inserisca: il numero di voti validi del segmento
docente al candidato; il totale dei voti validi dei docenti; il numero di voti validi del
segmento discente al candidato; e il numero di voti validi degli studenti. Il programma dovrà
eseguire il seguente calcolo:
2VDo1VDi
Vt , essendo:
3Do3Di
16
5) Sviluppa un programma in Python nel quale l'utente digiterà un angolo. Il programma
dovrà calcolare e stampare il seno, il coseno e la tangente di questo angolo.
9) Sviluppa un programma in Python nel quale l'utente dovrà inserire due numeri (n1 e n2).
il programma dovrà calcolare e stampare la seguente formula:
risultato n1 n2 3
Suggerimenti:
Calcolare la potenza di un numero. Esempio:
2 ** 5 = 32
4 ** (1/2) = 2
importa casuale
[Link](1, 9)
Genera PI
importa matematica
[Link]
importa matematica
17
x = [Link](85) #converte l'angolo da gradi a radianti
[Link](x) #seno
[Link](x) #cosseno
z = [Link](x) #tangente
y = [Link](z) #converte l'angolo da radiante a grado.
Strutture condizionali
Una struttura condizionale mira a verificare una frase relazionale e a partire da questa
La verifica avviene nella presa di decisione. Quest'azione si verifica quando la sentenza relazionale
per vera (True). È anche possibile eseguire azioni sul risultato della sentenza
relazionale sia falso (False).
La struttura IF
se condizione:
comandi
onde:
se corrisponde al nome della struttura di condizione;
condizione sentenza relazionale da testare;
comandi tutti i comandi da eseguire da
struttura.
La struttura ELIF
18
comandoB
elif condizioneC:
comandoC
dove:
se corrisponde al nome della struttura di condizione;
elif utilizzato per testare un'altra condizione oltre alla
principale
condicaoA; condicaoB; condicaoC frasi relative a
saranno testati;
comandoA; comandoB; comandoC tutti i comandi da eseguire
executados nos diferentes blocos.
La struttura ELSE
se condizione:
comandoA
altro:
comandoB
onde:
se corrisponde al nome della struttura di condizione;
altro utilizzato per eseguire un comando quando la condizione
contenuta nel if falso;
condizione sentenza relazionale da testare;
comandoA; comandoB tutti i comandi da eseguire
i nostri diversi blocchi.
19
Lista di esercizi B
1) Sviluppa un programma in Python in cui l'utente digiterà una lettera (da A a E) relativa
a un concetto di voto. Il programma dovrà convertire la lettera digitata in un voto secondo
con la tabella sottostante:
CONCEITO NOTA
A 95
B 85
C 75
D 65
E 30
Qualsiasi lettera digitata diversa da quella proposta nella tabella sopra, verrà stampata la seguente
mensagem “Conceito inválido”. Imprima a nota convertida.
1 se x 1
2se1 x 2
f(x)
x²se2 x 3
x³se x 3
3) Sviluppa un programma in Python nel quale l'utente digiterà un valore numerico variando
tra 1 e 7. Il programma dovrà convertire questo numero in giorno della settimana secondo la
tabella seguente.
VALORE SAÍDA
1 DOMENICA
2 LUNEDÌ
3 MARTEDÌ
4 MERCOLEDÌ
5 GIOVEDÌ
6 VENERDÌ
7 SABATO
4) Sviluppa un programma in Python che legga un peso sulla Terra e il numero di un pianeta e
stampa il valore del tuo peso su questo pianeta. La relazione dei pianeti è data qui sotto insieme
con il valore delle gravità relative alla Terra:
20
# GRAVITÀ RELATIVA Pianeta
1 0,37 MERCURIO
2 0,88 VENERE
3 0,38 MARTE
4 2,64 JÚPITER
5 1,15 SATURNO
6 1,17 URANO
p m g, essendo che:
p: peso;
m: massa;
g: gravità.
21
Condizione Situazione
Frequenza fino al 75% REPROVATO
Frequenza tra il 75% e il 100% e Voto fino a 3.0 REPROVATO
Frequenza tra il 75% e il 100% e Voto da 3.0 a 7.0 ESAME
Frequenza tra il 75% e il 100% e Voto tra il 7.0 e il 10.0 APPROVATO
Strutture di ripetizione
La struttura WHILE
O WHILE esegue un blocco di comandi N volte fino a quando la sua condizione non è soddisfatta.
mentre condicao:
comandi
onde:
mentre parola chiave che definisce la struttura;
condicao sentenza relazionale che definisce la quantità di
volte in cui i comandi saranno ripetuti;
comandos insieme di istruzioni da eseguire.
Esempio:
lifeRock = 5000;
iron = 0;
batida = 200;
mentre lifeRock >= 0:
ferro += 5
lifeRock -= batida
Stampa('Hai preso {0} ferro'.format(ferro))
La struttura FOR
22
per variabile in lista:
comandi
dove:
per parola chiave della struttura;
variabile variabile che riceverà ogni elemento della lista;
lista lista di elementi;
comandi insieme di istruzioni.
Esempio:
Lista di Esercizi C
01) Sviluppa un programma in Python nel quale l'utente digiterà due valori interi (AeB).
Il programma dovrà generare 100 numeri casuali. Ogni valore generato dovrà essere compreso tra
intervallo digitato dall'utente (AeB). Stampa il valore maggiore generato dal programma.
02) Sviluppa un programma in Python nel quale l'utente digiterà il nome e i voti di 35
alunni. Ogni alunno ha cinque voti. Il programma dovrà stampare la media aritmetica di ciascuno
aluno è il nome dello studente che ha la media più alta.
03) Sviluppa un programma in Python nel quale l'utente inserirâ i seguenti dati di un
produto: o nome de um alimento; sua categoria (P – Proteína; C – Carboidrato; G – Gordura); e
il suo valore calorico. L'utente digiterà quanti alimenti desidera. La digitazione si concluderà quando il
Il valore calorico digitato è uguale a zero. Stampa il valore calorico totale di ciascuna categoria.
04) Sviluppa un programma in Python nel quale l'utente digiterà i seguenti dati di un
produto: o nome de um alimento; sua categoria (P – Proteína; C – Carboidrato; G – Gordura); e
il suo valore calorico. L'utente digiterà quanti alimenti vorrà. La digitazione terminerà quando il
valore calorico digitato è uguale a zero. Stampa:
23
Quale categoria ha il valore calorico più alto;
Qual è il nome del cibo con il maggior valore calorico.
05) Sviluppa un programma in Python che calcoli la velocità media di 100 veicoli. Il
il programma dovrà calcolare e stampare la percentuale di veicoli la cui velocità media
ultrapassò gli 80 km/h. Ecco la formula della velocità media:
d
Vm , essendo che:
t
Vm velocidade média;
d distanza
t tempo.
06) Sviluppa un programma in Python che simuli il lancio di un dado a sei facce 2500
vezes. O programa deverá calcular e imprimir a porcentagens de números: uns; dois; três;
quattro; cinque e sei che sono stati ottenuti durante le 2500 giocate.
kWh Bandiera
Fino a 172 kWh Verde
Tra 173 e 280 kWh Amarela
Ma che 281 kWh Rossa
24
09) Un lucchetto ha 10 serrature. Si desidera creare un
programma che verifica quante tentativi una persona spenderà
fino a quando si apre il lucchetto. Sviluppa un programma in Python
25
Array
Per definire una lista, dichiara una variabile e fai in modo che riceva parentesi quadre.
Esempio:
x = []
In questo momento la variabile x memorizza un array senza elementi. Nel caso sia necessario
x = [5, 6, 7, 2, 4]
5 6 7 2 4
↑ ↑ ↑ ↑ ↑
0 1 2 3 4
Per accedere a un elemento della lista, utilizza il nome della variabile e inserisci tra parentesi quadre l'indice
desiderato.
x[3]
Sarà ottenuto il valore 2
Per sostituire un valore, fai in modo che la variabile all'indice desiderato riceva il nuovo
valore.
x[2] = 35
26
5 6 35 2 4
↑ ↑ ↑ ↑ ↑
0 1 2 3 4
Caso seja necessário descobrir quantos elementos existem na lista, utilize a função
len().
len(x)
[Link](69)
5 6 35 2 4 69
↑ ↑ ↑ ↑ ↑ ↑
0 1 2 3 4 5
[Link](2, 24)
27
5 6 24 35 2 4 69
↑ ↑ ↑ ↑ ↑ ↑ ↑
0 1 2 3 4 5 6
[Link](4)
5 6 24 35 2 69
↑ ↑ ↑ ↑ ↑ ↑
0 1 2 3 4 5
[Link](1)
# Il valore 6 sarà restituito. Lo stesso sarà escluso dalla lista.
5 24 35 2 69
↑ ↑ ↑ ↑ ↑
0 1 2 3 4
Esempio:
[Link](35)
# Il valore restituito sarà 2
[Link](69)
Il valore restituito sarà 1
28
[Link]() Inverte i valori della lista. Esempio:
[Link]()
69 2 35 24 5
↑ ↑ ↑ ↑ ↑
0 1 2 3 4
[Link]()
2 5 24 35 69
↑ ↑ ↑ ↑ ↑
0 1 2 3 4
[Link](reverse=True)
69 35 24 5 2
↑ ↑ ↑ ↑ ↑
0 1 2 3 4
[Link]()
[Link]
29
Alcuni esempi pratici
importa casuale
x = []
i=0
mentre i <= 14:
[Link]([Link](100, 1000))
i += 1
[Link]()
stampa(x)
stampa(x[0])
stampa(x[14])
corredor = []
i=0
mentre i <= 2:
inscricao = input('Digite a inscrição: ')
tempo = int(input('Digite se tempo na corrida: '))
dados = [inscricao, tempo]
[Link](dati)
i += 1
[Link](key = lambda corredor:corredor[1])
count = 1
per i in corredor:
30
stampa(count, 'º luogo: ', i[0], ' -> Tempo: ', i[1], sep='')
count += 1
Array multidimensionali
Gli array multidimensionali, noti anche come matrici, corrispondono a un elenco che
riceve una collezione di dati. Questa collezione di dati è rappresentata da un altro array.
Esempio:
Linea
0 1 4
1 3 6
2 2 4
↑ ↑
0 1
Colonna
Per accedere a un dato di questa struttura utilizzare due parentesi quadre aggiungendo l'indirizzo della
linea e colonna.
31
x[1][0]
'''
Il valore restituito sarà 3 che è presente nella riga 1 e colonna 0
'''
tabela = [
[69, 'denecley@[Link]', '******', True],
[124, 'pepy@[Link]', 'pepylegal', True],
[548, '[Link]@[Link]', '123321', False],
[96, 'primopato@[Link]', 'primim2018', True],
[56, '[Link]@[Link]', 'alunos2019', False]
]
32
Linea
0 69 denecley@[Link] ****** Vero
1 124 pepy@[Link] pepylegal Vero
2 548 [Link]@[Link] 123321 Falso
3 96 primopato@[Link] primim2018 Vero
4 56 [Link]@[Link] alunni2019 Falso
↑ ↑ ↑ ↑
0 1 2 3
Colonna
tu
onde:
lambda parola chiave utilizzata per creare una variabile di
filtro
valore nome della variabile di filtro. Questa variabile riceverà
ogni valore della lista;
33
Ora, come possiamo catturare tutti gli account dogmail?
Lista di esercizi D
1) Crea un programma in Python che legga un elenco di 40 posizioni. Contare e scrivere quanti
valori pari egli possiede.
2) Crea un programma in Python che legga due liste di 20 posizioni e calcoli un'altra lista
contenendo, nelle posizioni pari i valori del primo e nelle posizioni dispari i valori del
secondo.
3) Fai un programma in Python che determini quanti numeri maggiori di 100 ci sono in una
lista di interi con 20 elementi. Riempire la lista con numeri casuali varianti tra 1 e
200.
5) Crea un programma in Python che legga quindici numeri dall'utente e li memorizzi in una lista.
radice quadrata di ogni numero. Se il valore inserito è inferiore a zero, il numero -1 deve essere
attribuito all'elemento della lista. Dopo di che, il programma deve stampare tutti i valori
archiviati.
7) Scrivere un programma in Python che contenga un elenco G(13) che è il modello di un test
di lotteria sportiva, contenente i valori: A, B o C per ogni posizione di G. Leggere, poi, il
numero della carta di un scommettitore e un'altra lista risposta R (13). Verificare il numero di successi
e scrivere il numero del scommettitore e il suo numero di risultati. Se ci sono 13 risultati, aggiungere la
mensagem: "GANHADOR, PARABENS".
[Link]
34
una lista che mostra il valore dell'operazione eseguita. Ad esempio, supponiamo che A[1] = 10, B[1] = 3
e C[1] = '*', allora D[1] = 30.
11) Crea un programma in Python nel quale l'utente digiterà una matrice con dimensioni M × N.
Per la matrice digitata, stampa a schermo i numeri pari contenuti nella matrice, considerando
separarli per riga. Vedi l'esempio per una matrice 4×4:
Ingresso:
1 2 3 4
5 6 7 8
10 11 23 21
1 2 3 1
Uscita:
2 4 6 8 10 2
12) Crea un programma in Python che legga una matrice quadrata 10x10 di numeri interi.
Verificare quanti numeri della diagonale principale sono dispari, scrivere anche, la somma e la
media di questi elementi.
13) Implementa un programma, utilizzando il Linguaggio Python, che legga 30 nomi e cognomi.
di persone. Ad ogni nome e cognome letto, controlla se le parole hanno la stessa lunghezza.
14) Fare un programma in Python che legga alla fine della mattina la chiusura della cassa di un
loja, cioè, il tuo rendimento alla fine della mattina. Lo stesso dovrà essere fatto alla fine del pomeriggio.
Questo rilievo deve essere effettuato tutti i giorni della settimana (dal lunedì al venerdì). A
fine della settimana, dopo aver effettuato tutte le letture, scoprire e scrivere il giorno e il turno che ha avuto maggiore
35
Funzioni
In questo capitolo impareremo che cos'è e qual è lo scopo di una funzione. Considera la
situazione seguente:
i = 0
mentre i < 3:
Stampa('Scegli tre numeri')
n1 = int(input('Numero 1: '))
j = 1
fat = 1
mentre j <= n1:
grasso *= j
j += 1
stampa('Fattoriale: {0}'.format(fat))
n2 = int(input('Numero 2: '))
j = 1
fat = 1
mentre j <= n2:
grasso *= j
j += 1
print('Fattoriale: {0}'.format(fat))
n3 = int(input('Numero 3: '))
j = 1
fat = 1
mentre j <= n3:
grasso *= j
j += 1
print('Fattoriale: {0}'.format(fat))
i += 1
In questo esempio, lo sviluppatore chiede all'utente di inserire tre numeri tre volte.
Per ogni numero viene calcolato il suo fattoriale (esempio: 4! = 4 x 3 x 2 x 1) e stampato nella
tela. Nota che questo codice presenta una ripetizione delle seguenti istruzioni:
36
j = 1
fat = 1
mentre j <= n1:
grasso *= j
j += 1
stampa('Fattoriale: {0}'.format(fat))
Per evitare situazioni come queste, i linguaggi di programmazione offrono una risorsa
denominato funzione.
La funzione corrisponde a un blocco di codice che può essere invocato quante volte
forem necessarie. Essa definisce un problema. L'uso delle funzioni ha come obiettivo:
Minimizzare la quantità di codice scritto;
Facilitare la comprensione del codice sorgente;
def fattoriale(n):
j = 1
fat = 1
mentre j <= n:
grasso *= j
j += 1
stampa('Fattoriale: {0}'.format(fat))
i = 0
mentre i < 3:
print('Scegli tre numeri')
n1 = int(input('Número 1: '))
fattoriale(n1)
n2 = int(input('Numero 2: '))
fattoriale(n2)
37
n3 = int(input('Numero 3: '))
fattoriale(n3)
i += 1
Nel primo scenario, il codice scritto conteneva 25 righe, con l'applicazione della funzione c'è stata
j = 1
fat = 1
mentre j <= n1:
grasso *= j
j += 1
stampa('Fattoriale: {0}'.format(fat))
è stata scritta solo una volta, all'interno della funzione fattoriale. Nel codice principale la funzione è stata
fattoriale(n1)
fattoriale(n2)
fattoriale(n3)
Caratteristiche
def nomeFunzione(parametri):
comandos
ritorna valore
onde:
38
def comando utilizado para definir uma função;
nomeFuncao il nome della funzione. Evita caratteri speciali e
espaço;
parametros definisci un'entrata di valori esterni. Se la
se la funzione non c'è, basta aprire e chiudere le parentesi. Se c'è
più di uno, sarà necessario separarli con una virgola;
comandi insieme di istruzioni che mirano a risolvere il
problema;
ritorna comando utilizzato per restituire un valore. Il return
permette di restituire un solo valore;
È importante sottolineare che un codice può avere quante più funzioni possibile.
necessarie.
Esempio 01
*
**
***
****
*****
L'utente deve scegliere quante righe desidera stampare nel formato presentato.
Risoluzione:
def stampa(linee):
per i in range(1, righe + 1):
print('*' * i)
Esempio 02
39
Sviluppa una funzione in Python che riceve una lista contenente il nome e
cognome. Questa funzione dovrebbe restituire un'altra lista contenente il nome completo delle
Risoluzione:
def filtro(lista):
f = list(filter(lambda item : item[0][:1] == 'A', lista))
r = []
per i in f:
[Link](i[0] + ' ' + i[1])
ritorna r
Esempio 03
Sviluppa una funzione in Python che riceve un elenco di ordini. Ogni elemento
possiede uno dei seguenti valori:
Risoluzione:
def ordine(lista):
itens = ['CREME', 'CHOCOLATE', 'FLOCOS', 'NAPOLITANO']
maior = 0
sabor = ''
per elemento in articoli:
40
Esempio 04
Sviluppa una funzione in Python che restituisca gli elementi della diagonale principale di una
matrice di ordine N.
Risoluzione:
def dPrincipale(matrice):
indice = 0
diagonal = []
per linea in matrice:
[Link](linha[index])
indice += 1
ritorna diagonale
Esempio 05
Risoluzione:
def cartelas(quantità):
saida = []
per i in range(1, quantità + 1):
jogo = []
count = 0
mentre Vero:
num = [Link](1, 60)
se num non è in jogo:
[Link](num)
count += 1
se count == 6:
pausa
[Link]()
41
[Link](jogo)
ritorno uscita
Lista di esercizi E
1) Sviluppa una funzione in Python che riceva un numero intero. La funzione deve restituire
um boolean indicando: true se o número for primo; e false se o número não for primo. Utilize a
seguente firma.
defisPrimo(numero)
2) Sviluppa una funzione in Python che riceva una matrice di testo e un attributo in più
anche del tipo testo. La funzione dovrà restituire un elenco contenente tutti i testi che
contenga il valore di input. Ecco la firma del metodo:
Exemplo:
valores:
rio
Retorno:
3) Sviluppa una funzione in Python che riceva quattro interi: il primo indica la quantità
di righe; il secondo indica la quantità di colonne; il terzo l'intervallo iniziale; e il quarto il
intervallo finale. La funzione dovrà restituire una matrice in base alla dimensione specificata e
preenchida com o valores aleatórios de acordo com o intervalo estipulado. Segue assinatura da
função:
42
Esempio:
Ingresso:
Saída:
45 32 56
31 50 41
43
Struttura dei Dati
44
Matrice La tabella Matrice è responsabile di correlare ogni disciplina con il suo
professore di stato.
Creeremo una struttura dati che permetterà allo sviluppatore di accedere al modello
relazionale presentato. I file che contengono il modello e i dati sono separati
in due categorie: dati per file csv che archiviano i dati; e meta-dati
per i file txt che memorizzano la logica strutturale di come i dati sono
organizzati.
Id bigint.
NomeCurso varchar.
Istituzione varchar.
Ogni dato è separato da punto e virgola (;), che corrisponde a una colonna della
tabella costruita.
Dicionário de dados
Anche conosciuto come mappa o array associativo, il dizionario dei dati ha come
funzione ricevere una struttura di dati astratta e relazionarla con le varie entrate di
dati.
Per creare un dizionario dei dati segui una delle seguenti sintassi.
45
dicionario = {
'Curso': []
}
Dove:
dizionario nome do dicionário de dados;
corso nome da estrutura da tabela a ser buscada.
tu
dicionario = dict()
dicionario['Curso'] = []
dicionario = {
'Curso': [
('Id', 'bigint'),
('NomeCurso', 'varchar'),
('Instituicao', 'varchar')
]
}
La chiave (key) sarà composta dai nomi delle entità ([Link], [Link],
[Link], [Link]) e il loro contenuto attraverso i campi che definiscono ogni entità.
importa os
46
per file in [Link]('data/meta-data'):
stampa(file)
[Link]
[Link]
[Link]
[Link]
Sebbene abbiamo i nomi dei file contenuti nei meta-dati, nota che questi
posseggono il nome con la sua estensione. Dobbiamo rimuovere l'estensione .txt. Possiamo rimuovere
def ritirareEstensione(arquivo):
return [Link]('.')[0]
Avendo il percorso e il nome dei file, ora dobbiamo creare una funzione che consenta
caricare tutto il contenuto. Creeremo quindi la seguente funzione:
def leggiMetaData(arquivo):
dados = open('data/meta-data/' + arquivo, 'rt')
metaData = []
per riga in dati:
i = [Link]('\t')
[Link]((i[0], i[1].split('.')[0]))
[Link]()
return metaData
La funzione open apre il file, a essa deve essere inviato il percorso del file e il
tipo di apertura, nel caso è aperto solo per lettura. Un file può essere aperto
secondo i caratteri:
47
'w' abre para escrita;
'x' apre per la creazione. Se esiste già un file con lo stesso nome, si verificherà un
erro;
'a' apre per scrittura, aggiungendo il contenuto alla fine del file se esistente;
'b' modo binario;
't' modo testo (standard);
'+' apre il file su disco aggiornando (leggendo e scrivendo);
'U' modo nuova riga (non aggiornato).
La variabile data riceve tutto il contenuto del file nella funzione open. Quando lo chiudi è
è necessario utilizzare la funzione close().
importa os
def ritirareEstensione(archivo):
return [Link]('.')[0]
def leggiMetaDati(archivo):
dati = open('data/meta-data/' + file, 'rt')
metaData = []
per linea in dati:
i = [Link]('\t')
[Link]((i[0], i[1].split('.')[0]))
[Link]()
restituire metaDati
dicionario = {}
per file in [Link]('data/meta-data'):
tabela = retirarExtensao(file)
dicionario[tabela] = lerMetaData(file)
48
Le informazioni contenute in questa entità sono definite dal nome di tupla. Una tupla è
creata con parentesi e a differenza della lista (parentesi quadre), la tupla è immutabile, questo
significa che una volta che il contenuto è definito, non sarà possibile modificarlo.
Entidade: Curso
Atributos: [
('Id', 'bigint'),
('NomeCurso', 'varchar'),
('Instituicao', 'varchar')
]
Nel caso del Corso abbiamo tre tuple. Nel nostro esempio, una tupla è costituita da due
dados: nome do campo; e tipo do campo.
49
# Crea il dizionario ed estrae le informazioni
# in una tupla
dicionario = {}
dicionario['Curso'] = lerMetaData('[Link]')
tupla = []
per t in dizionario['Corso']:
[Link](t[0])
[Link]()
Lista di esercizi F
1) Sviluppa un codice Python che crei le tuple dell'entità Server. Collega ogni tupla
con i tuoi dati.
2) Sviluppa un codice Python che crei le tuple dell'entità Disciplina. Relaziona ogni tupla.
con i tuoi dati.
3) Basato sull'esercizio 2, sviluppa un codice Python che visualizzi solo le discipline del
1º e 3º periodo.
50
In questo esercizio sarà necessario collegare le entità Corso e Disciplina.
Scegli un'opzione:
1) Elencare corsi
2) Listar disciplinas
3) Elencare i server
4) Listar disciplina por período
5) Elencare le discipline per corso
51
Python e SQLite
01 importare sqlite3
02 conn = [Link]('[Link]')
03 cursore = [Link]()
04 [Link]('SELECT * FROM prodotto')
05 stampera([Link]())
06 [Link]()
dati.
52
Manipolando il database
In questo argomento impareremo come manipolare i dati all'interno del database. Per questo
Nel modello presentato abbiamo tre tabelle: prodotto; acquisto; acquisto_prodotto. Ognuna
la tabella ha la seguente funzione:
produto:armazena todos os produtos. Registra-se a descrição do produto e seu
preço unitário;
compra:armazena todas as compras realizadas. Registra-se a data de
realizzazione dell'acquisto e il luogo in cui è stato effettuato l'acquisto;
Comando INSERT
Il comando INSERT viene utilizzato quando si desidera inserire un dato nel database.
L'INSERT ha la seguente sintassi:
Dove:
INSERISCI IN: comando da istruzione;
tabela: nome da tabela que receberá o dado;
campi: nome dei campi separati da virgola (,);
VALORI: comando da istruzione;
53
dados: dados relativo a cada campo. Cada dado deverá ser separado por vírgula
(,). I dati di tipo testo devono essere racchiusi tra virgolette singole.
I comandi sarebbero:
Per ogni insieme di dati è stato effettuato un INSERT. Tuttavia è possibile anche
inserire nel seguente modo:
01 import sqlite3
02 conn = [Link]('[Link]')
03 cursore = [Link]()
04 [Link](
05 'INSERIRE IN prodotto (descrizione, precounit) VALORI (?, ?), (?, ?
06 ('Cupim Bovino', 12.89, 'Costelinha Suína Sadia ou Perdigão', 10.99))
07 [Link]()
08 [Link]()
54
Linea 03: La funzione cursore è responsabile di eseguire qualsiasi manipolazione con il
database. Ogni volta che c'è la necessità di lavorare con una tabella, sarà
necessario chiamare questa funzione;
Linee 04, 05 e 06: Il comando esegui riceve quale comando deve essere eseguito.
In questo caso eseguiremo il seguente comando:
Il simbolo di interrogazione (?) indica che sarà necessario passare un parametro come
riferimento. In questo caso sarà necessario passare quattro parametri:
Linea 07: Il comando commit registra l'istruzione passata in execute. Questo comando
01 import sqlite3
02 conn = [Link]('[Link]')
03 cursore = [Link]()
04 [Link](
05 'INSERISCI IN prodotto (descrizione, precounit) VALORI (?, ?)'
06 ('Filé di Tilapia Geneseas', 7.79)
07 [Link]()
08 [Link]()
55
[Link]
56
Comando AGGIORNA
Il comando UPDATE è responsabile della modifica di un dato che esiste già nella tabella. Esso
Dove:
AGGIORNARE SET: comando da istruzione;
tabela: nome da tabela a ser utilizada;
campo: nome do campo a ser editado. Se houver mais campos a serem
alterati utilizza la virgola (,) per separarli;
novoValor: novo valor do campo;
DOVE: condizione di aggiornamento;
campoChave: código da tabela;
valor: valor do código.
per R$ 21,99.
01 importare sqlite3
02 conn = [Link]('[Link]')
03 cursore = [Link]()
04 [Link](
05 AGGIORNA prodotto SET precounit = ? DOVE id = ?
06 [Link]()
07 [Link]()
57
Esempio 04: Cambia la descrizione e il prezzo unitario del prodotto:
per
01 import sqlite3
02 conn = [Link]('[Link]')
03 cursore = [Link]()
04 [Link](
05 UPDATE produto SET descricao = ?, precounit = ? WHERE id = ?
06 ('Camarão DellMare', 8.99, 23))
07 [Link]()
08 [Link]()
Comando DELETE
Il comando DELETE viene utilizzato per rimuovere un dato da una tabella del database
Dati. Ha la seguente sintassi:
Dove:
DELETE FROM: comando da istruzione;
tabela: nome da tabela a ser manipulada;
DOVE: condizione di rimozione;
campoChave: código da tabela;
valor: valor do código.
58
CANCELLA DA prodotto DOVE id = 23
01 importa sqlite3
02 conn = [Link]('[Link]')
03 cursore = [Link]()
04 [Link]('DELETE FROM prodotto WHERE id = ?', (23,))
05 [Link]()
06 [Link]()
Comando SELECT
Il comando SELECT è utilizzato per eseguire query sulle tabelle del database
dati. Ha la seguente sintassi di base:
Dove:
SELECT: seleziona i campi da visualizzare;
campos: campos escolhidos para exibição;
DA: seleziona le tabelle utilizzate;
tabelas: tabelas escolhidas.
01 importare sqlite3
02 conn = [Link]('[Link]')
03 cursore = [Link]()
04 [Link]('SELEZIONA descricao DA produto')
05 per riga in [Link]():
06 stampa(linha[0])
07 [Link]()
08 [Link]()
59
SELEZIONA * DA prodotto
01 importare sqlite3
02 conn = [Link]('[Link]')
03 cursore = [Link]()
04 [Link]('SELECT * FROM prodotto')
05 per linea in [Link]():
06 stampa('{0} - R$ {1}'.format(linha[1], linha[2]))
07 [Link]()
08 [Link]()
Per visualizzare tutti i campi di una tabella, utilizza il simbolo asterisco (*). Nel caso
sarà emessa una lista contenente: (id, descrizione, precounit).
Posição 0 id
Posizione 1 drescrizione
Posizione 2 precounit
Comando WHERE
Il comando WHERE è utilizzato per testare una determinata condizione. Può essere
costruito all'interno dei comandi: INSERT; UPDATE; o WHERE.
Esempio 07: Mostra tutti i prodotti il cui prezzo unitario è superiore a 500,00 €.
01 importare sqlite3
02 conn = [Link]('[Link]')
03 cursore = [Link]()
04 [Link]('SELECT * FROM prodotto WHERE precounit > 500')
05 per linea in [Link]():
06 stampa('{0} - R$ {1}'.format(linha[1], linha[2]))
07 [Link]()
08 [Link]()
Esempio 08: Mostra tutti i prodotti la cui descrizione inizia con la lettera 'F'.
60
01 importare sqlite3
02 conn = [Link]('[Link]')
03 cursore = [Link]()
04 [Link]("SELECT * FROM prodotto WHERE descrizione LIKE ?", ('F%',))
05 per riga in [Link]():
06 print('{0} - R$ {1}'.format(linha[1], linha[2]))
07 [Link]()
08 [Link]()
SELEZIONA
descricao
DA
produto, compra, compra_produto
DOVE
[Link] = compra_produto.idcompra E
[Link] = acquisto_prodotto.id E
[Link] = 1
[Link] = compra_produto.idcompra E
[Link] = acquisto_prodotto.id
61
01 import sqlite3
02 conn = [Link]('[Link]')
03 cursore = [Link]()
04 [Link](
05 'SELECT descricao FROM prodotto, acquisto, acquisto_prodotto ' +
06 'DOVE [Link] = compra_produto.idcompra E ' +
07 '[Link] = compra_prodotto.id E [Link] = 1')
08 per linea in [Link]():
09 stampa('{0}'.format(linha[0]))
10 [Link]()
11 [Link]()
Esempio 09: Presenta l'importo totale da pagare per l'acquisto il cui id è uguale a 1.
SELEZIONA
Descricao, precounit, quantidade
DA
produto, compra, compra_produto
DOVE
[Link] = compra_produto.idcompra E
[Link] = compra_produto.id E
[Link] = 1
01 import sqlite3
02 conn = [Link]('[Link]')
03 cursore = [Link]()
04 [Link](
05 'SELEZIONA descrizione, precounit, quantità DA prodotto, acquisto,
06 acquisto_prodotto DOVE [Link] = acquisto_prodotto.idacquisto E ' +
07 '[Link] = acquisto_prodotto.id E [Link] = 1')
08 totale = 0
09 per riga in [Link]():
10 stampa('{0} (R$ {1}) QUANT: {2}'.format(linha[0], linha[1], linha[2]))
11 totale += riga[1] * riga[2]
12 print('Totale da pagare: R$ {0}'.format(total))
62
13 [Link]()
14 [Link]()
Linee 08 e 11: crea una variabile e successivamente accumula la somma della moltiplicazione di
Lista di esercizi G
Scegli un'opzione:
1) Creare un nuovo prodotto
2) Creare un nuovo acquisto
3) Aggiungere un prodotto all'acquisto
6) Escludere un acquisto
7) Uscire
63
Trattamento delle Eccezioni
Quando si scrive un codice, lo sviluppatore può commettere tre tipi di errori: errore logico;
erro di sintassi; errore di esecuzione.
L'errore di sintassi si verifica nel momento in cui il codice viene scritto. Questo tipo di errore
x = 1/0
In questa istruzione il sistema non segnala errori e consente che il codice venga eseguito. Nel
Durante l'esecuzione, verrà visualizzato il seguente messaggio:
In questo capitolo vedremo come gestire gli errori di esecuzione attraverso la gestione di
seguente forma:
prova:
x = 1/0
eccetto BaseException:
Errore di divisione per zero
print('Continua...')
64
Anche se si verifica l'errore, l'esecuzione non viene interrotta.
importa zipfile
prova:
banco_zip = [Link]("[Link]")
banco_zip.extractall(path="banco")
banco_zip.chiudi()
eccetto FileNotFoundError:
Stampa("File inesistente")
eccetto PermissionError:
Errore di permesso
In questo caso il codice gestisce due tipi di eccezione: il primo caso in cui non trova il file
(FileNotFoundError); e in secondo luogo, nel caso non ci sia autorizzazione per l'estrazione del
arquivo (PermissionError).
Per ogni errore è possibile specificare il suo tipo, ad esempio, quando un numero è diviso
per zero l'errore sollevato sarà ZeroDivisionError. In Python esiste una gerarchia
di errori.
BaseException
o SystemExit
o KeyboardInterrupt
o GeneratorExit
o Eccezione
. StopIteration
. ErroreAriaMetica
Errore di punto flottante
OverflowError
Eccezione di divisione per zero
. AssertionError
. AttributeError
. Errore di buffer
. Errore EOF
. ImportError
. Errore di ricerca
65
IndexError
KeyError
. Errore di memoria
. NameError
UnboundLocalError
. OSError
BlockingIOError
ChildProcessError
Errore di Connessione
o BrokenPipeError
ErroreConnectionAborted
o ConnectionRefusedError
o ConnectionResetError
FileExistsError
FileNotFoundError
Errore di interruzione
IsADirectoryError
NotADirectoryError
Errore di autorizzazione
ProcessLookupError
TimeoutError
. Errore di riferimento
. RuntimeError
NonImplementatoErrore
. Errore di sintassi
Errore di indentazione
o Errore di Tabulazione
. SystemError
. TypeError
. ValueError
Errore Unicode
o UnicodeDecodeError
o UnicodeEncodeError
o UnicodeTranslateError
. Attenzione
Avviso di deprecazione
Avviso di deprecazione in sospeso
RuntimeWarning
Avviso di sintassi
AvvisoUtente
Avviso di futuro
Avviso di importazione
Avviso Unicode
BytesWarning
AvvisoRisorsa
Nel caso ci siano dubbi su quale eccezione utilizzare, è possibile invocare il trattamento degli errori.
66
Azione di pulizia
Quando si scrive un codice che contiene la gestione delle eccezioni, può capitare che
sviluppare è necessario pulire qualche variabile, chiudere qualche file o procedura che
sii aperto. Considerando questi casi, esiste un comando opzionale che può essere
utilizzato insieme con try/except. Questo comando è conosciuto come finally.
Il comando finale eseguirà sempre il codice, indipendentemente dal fatto che si sia verificato un errore o meno.
no. Esempio:
def leggiMetaData(archivo):
prova:
dati = open('data/meta-data/' + file, 'rt')
metaData = []
per linea in dati:
i = [Link]('\t')
[Link]((i[0], i[1].split('.')[0]))
eccetto FileNotFoundError:
Stampa('File non trovato.')
finalmente
[Link]()
return metaData
Comando alza
Questo comando viene utilizzato quando lo sviluppatore ha bisogno di provocare un errore controllato.
Segui la sintassi:
solleva Erro
dove:
alza parola chiave utilizzata per provocare l'errore;
Errore errore a essere invocato.
Esempio:
def verificare(sapore):
67
se sabor non in ('CREME', 'CHOCOLATE', 'NAPOLITANO'):
solleva BaseException
provare:
sabor = input('Escolha o sabor de picolé: ')
verificare(sapore)
Ottima scelta
eccetto BaseException:
Non lavoriamo con questo sapore.
Lista di esercizi H
x = [1, 3, 5, 6, 7, 8]
i = 0
mentre i <= len(x):
stampa(x[i])
i += 1
2) Crea un programma in Python che riceva n numeri e sommi questi numeri finché la somma
non superiore a 100. Il programma dovrà stampare il valore sommato (prima di raggiungere il numero
maggiore di 100) e dovrà informare quanti numeri sono stati sommati e qual è la media. Rifai il tuo
68
4) Supponiamo che l'utente effettui transazioni nel suo conto corrente. Sviluppa un codice nel
qual utente digiterà il proprio saldo iniziale. Potrà effettuare un Addebito o un Accredito. Effettua una
eccezione nel caso in cui il saldo del cliente diventi negativo. L'importo del saldo non deve diventare negativo.
69
File
CROCE
70
Python e Arduino
71
Riferimento bibliografico
CRUZ, [Link]: Scrivi i tuoi primi programmi. 1ª ed. Casa do Código: São
Paulo. 1998.
72