Corso Di Python
Corso Di Python
Introduzione 1.1
Dovresti imparare Python 1.2
Iniziando con Python 1.3
Deviazioni condizionali, facendo prendere decisioni al tuo programma 1.4
Valori None, Stringhe e Liste 1.5
Liste 1.6
Lacci di Ripetizione - I 1.7
Legami di Ripetizione - II 1.8
Dizionari 1.9
Modularizzazione del codice con funzioni 1.10
Espressioni Lambda 1.11
Conclusione 1.12
Risoluzione degli esercizi 1.13
2
Introduzione
Prefazione
Il mondo è sempre più connesso, la necessità di sviluppare il pensiero
computazionale e la capacità di risolvere problemi attraverso la programmazione è
crescente.
Sobre o autor
Gabriel Schade Cardoso è sviluppatore di software sulla piattaforma .NET dal 2008,
inoltre, lavora come docente nel corso di scienza della computazione e sistemi per
internet.
Master in computer science applied with a focus on artificial intelligence and bachelor's degree in Science
da Computazione. Consumatore e creatore di giochi nel tempo libero, appassionato di tecnologia,
letteratura fantastica e giochi di carte.
Linkedin
Github
Blog personale
3
Introduzione
Inoltre, è fortemente suggerito che gli esercizi siano fatti immediatamente dopo la
lettura del capitolo, per garantire la pratica insieme alla teoria.
Spero che tu possa goderti questo viaggio nel mondo della programmazione utilizzando uno dei
linguaggi più semplici disponibili!
4
Dovresti imparare Python
Se hai una comprensione di base (molto base) dell'inglese e desideri iniziare con una
linguaggio di mercato, suggerisco vivamente il linguaggio Python. Perciò, lo utilizzeremo.
in questo libro.
Mas como eu disse antes, nem tudo é preto no branco, dependendo da sua experiência e
noções do idioma inglês, eu sugiro dar uma olhadinha na linguagem Portugol.
Ma ancora una volta, vale la pena sottolineare che, nonostante il suo ottimo valore educativo, Portugol non è
Di solito dico che sia C# che F# sono linguaggi di programmazione di scopo generale, cioè
possono essere applicate a vari scenari, ma nessuna di esse è così versatile come
Python.
5
Dovresti imparare Python
Come se ciò non fosse sufficiente, Python è ancora un linguaggio con una sintassi super
semplice. Facendo in modo che il codice assomigli molto a una versione semplificata di
inglese.
stampa("Ciao Mondo")
E questo è tutto! Non c'è niente di omesso nel codice, non c'è dichiarazione di nessun nome complicato
Un altro punto molto interessante su Python è che utilizza una sintassi basata su
spaziatura, qualcosa che F# ha riutilizzato e ha fatto anche.
Questo rende il linguaggio considerevolmente più snello, perché non è necessario utilizzare punti e
virgole, parentesi graffe e tutto il rumore normalmente presente nei codici che i programmatori
scrivono.
6
Iniziando con Python
È importante sottolineare che per questo libro sto utilizzando la versione 3.6 di Python e il Visual
Studio 2017 come IDE, puoi scegliere un ambiente diverso, ma ti consiglio
utilizzare lo stesso per evitare possibili conflitti.
Dichiarando Variabili
La cosa più basilare che possiamo trovare in un linguaggio di programmazione sono le
variabili. Ma cosa sono le variabili?
In modo semplice, le variabili sono i dati manipolati dal tuo programma. Questi dati
sono memorizzati temporaneamente nella memoria del tuo computer.
Anticamente era necessario avere molta piu attenzione nell'utilizzare troppe variabili, a causa di
da limitazione della memoria dei computer, oggigiorno questo deve ancora essere preso in considerazione.
Ma come sappiamo, le variabili sono memorizzate nella memoria? -Bene, la memoria del
il computer funziona in modo simile al nostro sistema sociale.
7
Iniziando con Python
Risolviamo questo problema creando nomi per i paesi, le città e le strade. Nello stesso
logica, non utilizziamo il sistema di indirizzamento della memoria del computer, esso è
troppo complicato e non abbiamo il pieno controllo di dove le cose vengono memorizzate (e questo
è ottimo).
Aspetta, tipo? -Sì, tipo, ma per ora non devi preoccuparti di questo.
Andiamo al codice!
Come creare una variabile in Python? -È molto semplice, basta darle un nome e assegnarle un valore.
un valore utilizzando l'operatore= , guarda:
valor =42
E questo è tutto.
O interessante è che puoi eseguire operazioni anche con questi valori, guarda:
valor =42
risultato = 42 + 10
Così come in molte altre lingue, puoi utilizzare una variabile come un valore.
Cioè, ovunque metteresti un valore, puoi sostituirlo con una
variabile.
valor =42
risultato = valore +10
valor =42
resultado = valor +10
stampa(risultato)
8
Iniziando con Python
Pratichiamo
Fai un algoritmo per risolvere l'equazione z = x + y - 4, memorizzando il risultato nella
variabile z. Considera che i valori iniziali di x e y sono, rispettivamente, 10 e 5.
Dopo di ciò, mostra il risultato.
Attenzione
Ora che hai già effettuato alcuni piccoli test, parliamo dei tipi.
Ricorda che abbiamo detto che una variabile è composta da: identificatore, dato e tipo? Ecco.
Credo che sia molto chiara la questione dell'identificatore e del valore, ma forse il tipo
ancora possa essere confuso, ma calma, ti spiego.
Il tipo è ciò che definisce la caratteristica del dato che la variabile memorizza, in Python non
precisamos dizer explícitamente isso em nenhum momento, mas podemos deduzir.
Negli esercizi abbiamo fatto alcune operazioni matematiche, ma non tutti i dati sono.
numeri. A volte dobbiamo memorizzare valori di altri tipi, conosciamoli:
Una cosa molto interessante sui tipi è che, dopo averli conosciuti, possiamo
semplicemente lavorare come abbiamo fatto con i numeri prima. Forse non hai nemmeno
riparato, ma nel secondo esercizio abbiamo utilizzato sia numeri interi che float.
9
Iniziando con Python
Puoi utilizzare qualsiasi di essi e il tuo programma capirà che si tratta di una
stringa.
print("Ciao Python!")
Particolarmente preferisco utilizzare la sintassi con virgolette doppie, ma sentiti libero di usare la
che più ti aggrada.
Dobbiamo insieme creare un programma che richieda il nome dell'utente e poi lo mostri.
console! Per richiedere un'informazione all'utente utilizza la funzioneinput, conforme codice:
Legale, vero? - Nota che puoi utilizzare la funzioneinputper ottenere dati di qualsiasi tipo,
non solo per i testi, ma negli altri casi sarà necessario trasformare il tipo.
Avremo un capitolo complementare sul tipo stringa, che presenta diverse caratteristiche
specifiche. Quindi per ora passiamo al prossimo tipo: Il tipo logico!
Le variabili di tipo logico o booleano sono utilizzate per definire verità (Vero) e menzogne
(Falso). Questo tipo di variabile può memorizzare solo questi due valori.
Ecco un esempio:
verdade =True
mentira =False
Geralmente nelle altre lingue i valori di questo tipo sono scritti in lettere minuscole,
ma in Python questi valori iniziano con la lettera maiuscola, ma le differenze finiscono qui.
Allo stesso modo dei valori numerici, è possibile eseguire operazioni anche con i valori
logici. In questo caso utilizziamo gli operatori: non (not ),e(e) eou(o).
10
Iniziando con Python
sole_al_mattino =Vero
chuva_pela_tarde =False
Hojenãodeu sol pela manhã -> se a primeira afirmação era verdade, esta afirmação é
menzogna
Hojenãochoveu pela tarde -> se a segunda afirmação era mentira, esta afirmazione è
verità
L'operatore di negazione inverte il valore di un valore logico! Ciò che prima era vero ora è falso.
menzogna e viceversa.
sole_bella_mattina =Vero
chuva_pela_tarde =False
Il secondo operatore è l'operatore. Questo operatore mette in relazione due valori diversi per
produrre un nuovo. In questo caso, affinché il risultato di un'operazione sia vero, i due
i valori correlati devono essere veri.
Oggi ha fatto sole al mattino e ha piovuto nel pomeriggio -> sarà una bugia, poiché abbiamo stabilito che
non c'è stata pioggia nel pomeriggio.
Oggi ha fatto sole al mattino e non ha piovuto nel pomeriggio -> sarà vero, perché negando il
valore della pioggia, i due valori correlati restituiranno vero.
L'operatore funziona in modo abbastanza simile all'e, ma in questo caso il valore prodotto
sarà vero ogni volta che uno dei valori sia vero. Questo caso è quello che funziona
peggiore rispetto alla nostra lingua, ma penso che aiuti ancora a capire:
Oggi ha fatto sole al mattino o ha piovuto al pomeriggio -> se una delle affermazioni è
11
Iniziando con Python
Per aiutare a capire queste operazioni abbiamo le famose "Tabelle della Verità", guarda:
Negazione (non)
Valor Risultato
Vero Falso
Falso Vero
E (e)
Primo Valore Secondo Valore Risultato
Vero Vero Vero
Ou (o)
Primo Valore Secondo Valore Risultato
Oltre a questi operatori, anche i tipi logici possono essere prodotti confrontando
valori di qualsiasi tipo, ad esempio: 5 > 3 (cinque è maggiore di tre?), questa espressione
restituisce un valore logico!
12
Iniziare con Python
Operatore Descrizione
Percepisci che per confrontare i valori utilizziamo due uguali.== , questo perché quando
utilizziamo solo un uguale stiamo assegnando un valore. Vedi:
x = 5
y = 10
x = y # -> stiamo facendo in modo che la variabile x riceva lo stesso valore della variabile y
Facciamo pratica
1. Fai un algoritmo che richieda un numero all'utente
2. Fai un algoritmo che richieda il nome dell'utente e poi scriva il nome della persona
nessuna console.
13
Iniziando con Python
Attenzione
14
Deviazioni condizionali, facendo prendere decisioni al tuo programma
Ora che hai già visto i tipi di base e hai già lavorato abbastanza con valori logici, procederemo
introdurre una complessità nei nostri programmi.
Così come quasi tutto ciò di cui sto parlando qui, la sintassi per creare una deviazione
Il condizionale in Python è piuttosto semplice.
La prima cosa che dobbiamo capire è: quando parliamo di una condizione, significa
che dobbiamo sapere se qualcosa è vero o falso, cioè dobbiamo utilizzare un tipo
logico.
L'idea dietro i salti condizionali è utilizzata tutto il tempo nelle nostre conversazioni.
giorno dopo giorno, guarda questo esempio:
Poiché Python utilizza l'inglese come lingua predefinita, le condizioni sono tradotte in
comandose, guarda:
leite_em_estoque =True
ifleite_em_estoque:
Ho comprato latte
altrimenti:
Ho comprato acqua
Esegui questo algoritmo, poi modifica il valore della variabile inFalsoe eseguilo
di nuovo!
15
Desvii condizionali, facendo prendere decisioni al tuo programma
Percepisci anche che dopo la condizione è necessario mettere i due punti, questo è
necessario per la sintassi di Python.
Crea una variabile numerica per rappresentare un voto di un esame, dopo di che
exiba a mensagem "Aprovado"casoa nota seja maior ou igual à 7, caso contrário
exiba a mensagem "Reprovado".
nota =5
se nota >=7:
Approvato
altro:
Riprovato
In questo caso puoi optare per due approcci distinti: salvare il risultato del
confronto in una variabile logica e confrontarla o utilizzare l'espressione direttamente nel
comandose.
Succede anche che dobbiamo trattare più di due casi, ovvero ci sono situazioni in cui
umsee umsenaonão non sono sufficienti per soddisfare tutte le condizioni, guarda questo esempio:
Un alunno che ottiene più di 7 è già approvato, se ottiene 7 o 6 andrà in recupero e
Sotto questo ci sarà un'insufficienza. Come fare?
nota =6
se nota >7:
Approvato
altrimenti:
se nota ==7 o nota ==6:
print("Recupero")
altro:
Reprovato
16
Deviazioni condizionali, facendo prendere decisioni al tuo programma
Per i casi in cui è necessaria un'espressione: altrimenti se, utilizza il comandoelif. Questo
il comando è una mescola dei due precedenti. Funziona come unif , ma sarà solo
testato caso oseanterior ter resultado inFalso, guarda:
se nota >7:
Approvato
altrimenti:
Reprovato
Valori affidabili
Un concetto interessante in Python è la questione dei valori veritieri, questo concetto definisce
quando i valori sono affidabili o veri per l'uso. Ad esempio, nel caso di un
numero, qualsiasi valore che sia diverso da zero è un valore affidabile (inclusi numeri
negativi).
Lo stesso vale per i testi (stringhe), qualsiasi testo diverso da vuoto è considerato
come affidabile, ovvero, solo il valore "" non lo è.
Questa funzionalità consente che la variabile venga valutata direttamente, senza dover
fare il confronto, vedi l'esempio con un valore intero:
valor =4
se valor != 0:
print("Il valore non è zero")
ifvalor:
print("Il valore non è zero")
I due codici faranno la stessa cosa, ma la seconda forma è ancora più semplice! O
stesso serve per le stringhe:
17
Deviazioni condizionali, facendo prendere decisioni al tuo programma
testo
se testo !="":
print("Il testo non è vuoto")
iftexto:
print("Il testo non è vuoto")
Un'altra cosa che possiamo esplorare normalmente è la questione delle multiple condizioni.
Possiamo utilizzare gli operatorinon, eeoper creare una condizione della stessa
forma che usiamo per l'attribuzione di un valore logico.
nota1 =7
nota2 =10
deu_sol =True
se nondeu_sol:
print("È piovuto")
Questa altra forma è conosciuta come condizione ternaria. Viene utilizzata principalmente per
condizioni brevi e consente una sintassi più agile, generalmente di una sola riga.
L'ordine delle cose cambia un po', ma assomiglia ancora molto al linguaggio naturale.
Guarda questa frase:
nota =6
se nota >= 7:
Approvato
altrimenti:
Reprovato
Ora guarda come questa stessa operazione risulta utilizzando una condizione ternaria
nota =6
stampa("Approvato" se nota >= 7 altrimenti "Respinto" z)
18
Deviazioni condizionali, facendo prendere decisioni al tuo programma
L'ordine delle parole cambia un po', ma non ti spaventare, andiamo con calma che presto
Ti abitui.
Andiamo a praticare
2. Fai un algoritmo che richieda l'anno in cui l'utente è nato, dopodiché fai il
programma descrivere se l'utente compirà o ha già compiuto 18 anni quest'anno.
Bambino da 0 a 11 anni;
Adolescente para 12 até 18 anos;
Giovane da 19 a 24 anni;
Adulto tra i 25 e i 40 anni;
Mezza età da 41 a 60 anni;
Anziano sopra i 60 anni.
4. Faça um programa que solicite ao usuário 2 valores, utilize uma condição ternária para
escrever qual o maior valor: o primeiro ou o segundo (caso os valores sejam iguais,
considera il secondo)
Attenzione
19
Valori None, Stringhe e Liste
ValoriNessunosono utilizzati per descrivere variabili che sono state create, ma che non
non hanno alcun valore associato a loro. Aspetta, come così?
Io spiego.
Per utilizzare una variabile, devi dichiararla prima, giusto? Facciamo un test!
Esegui il codice qui sotto:
stampa(teste)
Questo codice, per quanto semplice e innocuo possa sembrare, genera un errore nel suo
applicazione.
Questo errore si verifica perché la variabiletestnon è stata creata prima, quindi cosa succede
chiamiamo diNameError.
Ma se non vogliamo che questo errore si verifichi, ma allo stesso tempo anche non
vogliamo allocare memoria per la variabiletesta, come fare? - Usa ilNessuno!
teste =None
stampa(teste)
Problema risolto!
teste =None
ifteste:
stampa(teste) # -> non verrà eseguito
Semplice, vero?
20
Valori None, Stringhe e Liste
Este tipo permite uma série de operações diferentes. Podemos verificar se o texto contém
Solo numeri, mettere la prima lettera maiuscola, sostituire una lettera nel testo e molte
altre cose.
Tutte queste operazioni sono chiamate funzioni. Questo è un concetto piuttosto potente.
nelle lingue di programmazione.
Per definizione, una funzione è un comportamento che appartiene a qualcosa, mentre una
variabile è una caratteristica di qualcosa.
Come così? - Immagina un'auto. Alcune caratteristiche della tua auto sono: quantità di
porte, colore, marca, anno e così via. Tutte queste caratteristiche possono essere
trascritte per un programma sotto forma di variabili.
Ma la tua auto accende, accelera e frena. Tutte queste cose sono comportamenti, o
sia, sono azioni dell'auto. Le azioni sono tradotte in un programma attraverso delle funzioni.
nome ="gabriel"
nome_maiusculo = [Link]()
print(nome_maiuscolo)# -> Gabriel
Nota che quando eseguiamo una funzione è necessario utilizzare() , questo accade perché
esistono casi in cui dobbiamo comunicare valori per eseguire un'azione, per sostituire
una lettera con la funzionesostituire, per esempio.
In questo caso dobbiamo fornire due valori diversi: il primo indica la lettera che sarà
sostituita e il secondo indica la lettera che la sostituirà, vedi:
nome ="gabriel"
nome_com_letra_alterada = [Link]('e','a')
print(nome_com_letra_alterata)# -> gabrial
Un'altra funzione molto utile nelle stringhe è la funzioneformato, consente, come suggerisce il nome,
formattare testi.
21
Valori None, Stringhe e Liste
Quindi posso mettere un testo in corsivo? - No, non stiamo parlando di questo tipo di
formattazione.
Come si può vedere nel codice, tutte le occorrenze di questa formattazione sono sostituite
per il parametro!
In realtà, esiste un secondo modo per mescolare testo libero con variabili, esso si
chiama interpolazione di stringhe.
Con questa notazione, la sintassi non è più basata sulla posizione del parametro, basta
mettiamo direttamente il nome della variabile tra parentesi graffe.
22
Valori None, Stringhe e Liste
Questa funzione è molto utile e abbastanza popolare. In questo caso, abbiamo scelto un carattere per
spezzare il testo in parti diverse. Ad esempio, immagina una variabile con il seguente
valor: prato,forchetta, .
bicchiere
Questa variabile contiene il nome di alcuni utensili da cucina, ma cosa succederebbe se dovessimo separarli?
itens_cozinha ="prato,garfo,copo"
print(itens_cozinha.split(','))# -> ["piatto", "forchetta", "bicchiere"]
Cosa sono questi parentesi quadre? Cerchiamo di capire cosa sta succedendo.
Ma se possiamo memorizzare solo un valore in una variabile, come faremmo a conservare i 3 articoli?
Per nostra fortuna c'è un tipo speciale chiamato chamadolista. Questo tipo funziona come una collezione.
itens = itens_cozinha.split(",")
Non ti preoccupare, è molto semplice, dopotutto hai già lavorato con gli indici nella funzioneformat ,
esatto, gli indici sono numeri sequenziali che nel caso di Python iniziano da zero
(0).
Nel caso delle liste utilizziamo le parentesi quadre per definire gli indici, vedi:
itens = itens_cozinha.split(",")
stampa(itens[0])# -> piatto
print(itens[1])# -> forchetta
print(itens[2])# -> copo
Dobbiamo sempre fare attenzione quando accediamo a un indice, poiché quando accediamo agli indici
oltre i limiti della lista viene generato un errore!
23
Valores None, Strings e Listas
Tieni presente che l'indice maggiore della lista sarà sempre uguale alla sua dimensione - 1, nel
Nel nostro esempio abbiamo tre articoli diversi, quindi l'ultimo indice valido è 2.
Facciamo pratica!
1. Fai un programma che chieda il nome dell'utente e poi faccia un saluto
Ciao {nome digitato dall'utente}
3. Fai un programma che richieda l'età dell'utente, verifichi se il testo fornito è solo
contiene numeri. Se contiene solo numeri mostra il messaggio: "Hai "
{idade digitada} anni.
invalida.
4. Fai un programma che richieda il nome completo dell'utente e mostri solo il suo
secondo nome/primo cognome.
Attenzione
Alcuni esercizi utilizzano funzioni che non sono state mostrate in questo post, puoi
cercale tramite internet, documentazione di Python o semplicemente digita la stringa
nel Visual Studio e premi ctrl + spazio (mostrerà le funzioni disponibili).
24
Liste
Non è necessario creare una variabile per ogni elemento della lista! Come abbiamo visto nel capitolo
passato, puoi manipolare più valori sotto un'unica variabile. Queste variabili si
chamamListas!
Così come gli esempi descritti in precedenza, ogni tipo di informazione che deve essere
raggruppata in qualche tipo di insieme utilizza questa risorsa, un esempio di questo è stata la funzione
dividereche abbiamo visto nel capitolo precedente.
Iniziamo vedendo come creare una lista vuota, ovvero una variabile che si identifichi
con il tipo lista, anche se non contiene nulla al suo interno, così come molte altre cose,
è molto facile definire una lista in Python, basta dichiarare il nome della variabile e utilizzare
colchetes vuoti, vedi:
lista_de_compras = []
Semplice così! Inoltre, puoi anche creare la lista già includendo alcuni elementi al suo interno!
Basta separare ogni elemento della lista con una virgola!
lista_de_compras = ["Pão","Água","Leite","Ovos"]
Perceba che ogni elemento della lista è inizializzato individualmente e separato da una virgola. Tu
Ricordi come accediamo a ogni elemento della lista? -Attraverso il suo indice!
È importante ricordare che l'indice inizia sempre da zero, provare a ottenere il primo elemento
utilizzare l'indice 1 è un errore molto comune tra i principianti, ma col tempo ci si
abituati.
Un punto interessante in Python è che puoi anche accedere alla lista da dietro per
fronte, ma ora l'indice inizia da -1:
25
Liste
stampa(lista_de_compras[-1])
print(lista_de_compras[-2])
print(lista_de_compras[-3])
stampa(lista_de_compras[-4])
Puoi modificare il valore di un elemento in una lista tanto facilmente quanto ottenerlo, basta utilizzare il
indice e fare la modifica come una variabile normale.
Il codice cambia l'elemento "Latte" in "Succo d'Arancia", funzionando allo stesso modo di
una variabile comune.
Fino ad ora abbiamo solo modificato il valore di elementi già esistenti, ma se dovessimo aggiungere un
nuovo elemento, come facciamo?
Cosa succede se proviamo ad accedere alla posizione dopo la fine dell'elenco? -Nel nostro caso, la
posizione 4. Vedi:
lista_de_compras[4] ="Café"
Questo codice non funzionerà, poiché questa assegnazione deve essere utilizzata solo per modificare il
valore di articoli già esistenti!
Per includere un nuovo elemento è necessario utilizzare la funzioneallegaree informando l'oggetto che
sarà aggiunto nella lista, secondo esempio.
lista_de_compras.append("Caffè")
26
Liste
Ora sì!
Utilizzando ilallegare, aggiungiamo un elemento alla fine della lista, cioè sarà l'ultimo
elemento. Oltre aappiattireesistono diverse altre funzioni e risorse per lavorare
con liste. Una delle risorse disponibili è la parola riservatain.
Possiamo usare questo comando per controllare se un elemento è nella lista, basta usare il
seguente sintassi:voce nella lista, ciò restituirà un valore booleanoVerooFalso,
a seconda se l'elenco contiene o meno l'elemento indicato.
se "Caffè" in lista_de_compras:
Devo comprare caffè
Un altro compito molto comune è la necessità di contare quanti elementi ci sono in un certo elenco.
possiede, per fare questo utilizziamo la funzionelunghezzaembutita nel linguaggio.
deve ricevere una lista come parametro e restituirà un intero con la quantità di
elementi.
Percepisci che la quantità di elementi non è la stessa cosa della posizione massima del
indice. Nel nostro esempio, l'elenco contiene cinque elementi, quindi abbiamo come indici validi
0 até 4.
Abbiamo già visto come aggiungere elementi a una lista, come verificare se un elemento è contenuto in essa e
fino a verificare la quantità di articoli, ma non abbiamo ancora visto come rimuovere un articolo dall'elenco.
Qualche suggerimento?
lista_de_compras[2] =None
Facendo l'operazione sopra, dirai che l'elemento nella posizione 2 non contiene nulla e non
che non c'è alcun elemento nella posizione 2. Noti la differenza sottile?
27
Liste
Nel primo caso dici che la posizione 2 esiste, ma non c'è nulla in essa, mentre nel
nel secondo caso, la rimuovi dalla lista.
Ok, ma come facciamo a rimuoverla dalla lista? Nello stesso modo in cui abbiamo una
abbreviazione parallela c'è anche un'abbreviazione per delete. Questo comando si chiama
del.
dellista_de_compras[3]
Semplice così.
Ora è importante notare che la posizione 3 non smetterà di esistere. Ciò che accade di
Il fatto è che tutti gli elementi che erano in una posizione maggiore rispetto all'elemento escluso sono
Facciamo pratica
1. Fai un programma che inizializzi un elenco con i nomi delle persone della tua famiglia.
2. Fai un programma che inizializzi una lista vuota e richieda all'utente 3 nomi di
città, una alla volta, ogni volta che l'utente digita un nome, il programma deve includere
questo nome nella lista delle città.
3. Fai un programma che inizializzi una lista con diversi numeri, poi
Disso, richiedi all'utente un numero, verifica se il numero è o non è nella lista e visualizzalo.
uma mensagem notificando o usuário do resultado.
4. Faça um programa que inicialize uma lista vazia e a preencha com 5 nomes diferentes
digitati dall'utente, dopo di che chiedi un numero da 0 a 4 e rimuovi l'elemento
da questa posizione.
Attenzione
28
Liste
29
Lacci di Ripetizione - I
Nel capitolo precedente è stato spiegato il funzionamento delle liste, quindi continueremo a utilizzare
liste qui.
attraverso il suo indice! Facciamo un esempio creando una lista di dieci numeri, guarda:
numeros = [10,20,30,40,50,60,70,80,90,100]
numeros = [10,20,30,40,50,60,70,80,90,100]
stampa(numeros[0])
print(numeros[1])
print(numeri[2])
stampa(numeros[3])
print(numeri[4])
print(numeros[5])
stampa(numeri[6])
print(numeros[7])
stampa(numeros[8])
stampa(numeros[9])
Perceba que esta tarefa é bastante trabalhosa, além disso, podemos ter problemas com
listas maiores. Este tipo de tarefarepetitivapode ser substituída por um laço derepetição!
numeros = [10,20,30,40,50,60,70,80,90,100]
fornumeroinnumeros:
stampa(numero)
30
Lacci di Ripetizione - I
Quindi dichiariamo una variabile, seguita dal comandoine do nome di una variabile che
essere una lista.
Con questa struttura definiamo che, la variabile che abbiamo creato (numero, nel nostro esempio)
riceverà un elemento della lista ad ogni interazione del ciclo, ovvero prima la variabilenumero
riceve il primo valore della lista, esegue tutte le operazioni del ciclo di ripetizione (questo
Caso appena un print) e torna all'inizio del blocco, modificando il valore della variabile per il
prossimo elemento della lista.
Questo avviene fino a quando l'elenco non arriva alla fine, a questo punto il ciclo di ripetizione viene terminato e il
Ma quindi possiamo usare il ciclo di ripetizione solo per attraversare le liste? - Definitivamente,
no.
Possiamo usarli anche per ripetere una serie di istruzioni, anche se non c'è una
lista coinvolta, per fare ciò abbiamo la funzionegammadisponibile in Python.
valor =0
perindiceinrange(5):
valor +=10
stampa(valor)
In questo caso verranno mostrati i valori: 10, 20, 30, 40 e 50. Questo perché la funzioneintervallo
indica che il ciclo deve essere ripetuto 5 volte. Per garantire ciò, crea un elenco con i
valores [0, 1, 2, 3, 4].
Questa funzione crea un elenco in questo formato per impostazione predefinita, ma è possibile modificare questo
pervaloreinrange(5,10):
stampa(valor)
Neste caso a lista criada conterá os valores: [5, 6, 7, 8, 9]. Note que o valor limite nunca é
incluso nella lista, definisce di fatto il suo limite e non il suo valore finale.
31
Laços di Ripetizione - I
Un ultimo modificatore possibile nella funzionegammaè il salto tra ogni valore. Possiamo
specificare che i valori aumentano di due in due, dieci in dieci e così via. Basta
inseriamo un ultimo parametro!
print(valor)
Ora che abbiamo già visto le variazioni delgammaE da questo comando, pratichiamo!
Andiamo a praticare
1. Fai un programma che inizializzi un elenco della spesa con 5 articoli diversi e mostri
tutti utilizzando un ciclo di ripetizione.
3. Fai un programma che mostri tutti i valori dispari tra 50 e 100 utilizzando il
intervallo.
4. Fai un programma che inizializzi una lista vuota, richieda all'utente 10 numeri
diversi, uno alla volta. Se il numero inserito è pari, aggiungi uno al suo valore.
Dopo di ciò, mostra i 10 numeri digitati.
5. Fai un programma che mostri le tavole di moltiplicazione da 1 a 10 nel formato: "2 x 3 = 6", (utilizza
due comandiper)
Attenzione
32
Laços di Ripetizione - II
La sua sintassi è un po' diversa dalla sintassi delper, ma molto simile alla sintassi di
comandose, ma non farti ingannare, le somiglianze tra ilsee omentrefinisce qui.
numeros = [10,20,30,40,50,60,70,80,90,100]
Il programma ritornerà all'inizio del blocco dopo che l'ultima istruzione di questo comando sarà
eseguita, facendo di nuovo il confronto.
numeros = [10,20,30,40,50,60,70,80,90,100]
posicao =0
mentreposicao < len(numeros):
print(numeri[posizione])
posizione +=1
Nota che alla fine risulta un po' diverso dal comandoper. In questo caso abbiamo bisogno
memorizzare la posizione della lista in una variabile e modificarla manualmente ad ogni ripetizione del
laccio.
Questo può causare un grave problema nel tuo programma! Se per caso dimentichiamo di
modificare i valori che fanno il confronto delmentrepossiamo rimanere bloccati in un loop
infinito, ossia, il nostro programma non finirà mai!
Vamos fazer a experiência! Retire a instrução que adiciona 1 para a variável posizionee
esegui il programma:
33
Lacci di Ripetizione - II
numeros = [10,20,30,40,50,60,70,80,90,100]
posicao =0
mentreposicao < len(numeros):
print(numeri[posizione])
Se per qualche motivo casuale, decidi di voler fare un ciclo di ripetizione infinito,
basta utilizzare il comando in questo modo:
mentre Vero:
INFINITO
Ora andiamo a due nuovi comandi che possono essere utilizzati in un ciclo di
ripetizione, devo dire che, non mi piacciono nessuno di loro, ma esistono e non intendo
ignorali.
Sono loro:continuae opausa, entrambi interferiscono nelle interazioni del ciclo di ripetizione.
34
Laços de Repetição - II
Facciamo un esempio per scrivere tutti gli elementi della lista di numeri, tranne il
posição 5:
posicao =0
mentre posicao < len(numeros):
posicao +=1
ifposicao ==5:
continua
stampa(numeros[posizione-1])
Ecco la questione che mi fa non gradire questa istruzione, puoi semplicemente riallocare
le istruzioni affinché non sia necessario utilizzare ilcontinua, guarda:
posicao =0
mentre posicao < len(numeros):
posicao +=1
seposicao !=5:
print(numeri[posizione-1])
Il risultato finale è lo stesso e in questo caso non interrompi il flusso principale del
programma.
posicao =0
mentre posicao < len(numeros):
posizione +=1
ifposizione ==5:
pausa
print(numeri[posizione-1])
Con il codice sopra, verrebbero visualizzati i numeri dalla posizione 0 fino alla posizione 4. Nessuno
il numero dopo la posizione 4 sarà visualizzato nella console, perché ilpausainterruppe tutto il
ciclo di ripetizione.
35
Laços di Ripetizione - II
posizione:
posicao =0
mentreposicao <5:
print(numeri[posizione])
posizione +=1
Andiamo a praticare
1. Fai un programma che inizializzi un elenco della spesa con 5 articoli diversi e li mostri
tutti utilizzando un ciclo di ripetizionementre.
2. Fai un programma che inizializzi una lista con i valori da 1 a 10 e poi mostri
solo i numeri pari utilizzandomentre.
3. Fai un programma che inizializzi una lista vuota, chieda all'utente 10 numeri
numeri dispari diversi, uno alla volta. Se il numero inserito è pari, chiedi di nuovo
un numero, fino a quando il valore non è un numero dispari. Dopo di che, mostra i 10 numeri
digitati.
4. Fai un programma che mostri un menu per l'utente per selezionare una delle tre opzioni:
1 - Ciao mondo
2 - Programmo in Python
3 - Laçõs di ripetizione
Il programma deve richiedere all'utente una delle 3 opzioni, nel caso in cui l'utente inserisca un valore.
diverso dalle opzioni (1, 2 o 3), il programma deve presentare di nuovo il menu di
opzioni fino a che una di esse venga scelta. Infine, il programma deve mostrare un messaggio
differente per ogni opzione.
numeros = [1,2,3,4,5,6,7,8,9,10]
posicao =0
mentre posicao < len(numeros):
posizione +=1
seposizione == 3:
continua
elifposicao == 6:
interrompere
print(numeros[posizione-1])
36
La chiusura di ripetizione - II
Attenzione
37
Dizionari
Se hai mai visto un oggetto inJSON, vedrai che ci sono molte somiglianze
tra queste due cose, vedi come appare un dizionario in Python:
pessoa = {
"nome":"Gabriel",
"sobrenome":"Schade",
"idade":27
}
Nel nostro caso, le chiavi sono valori di tipostringa, ma non c'è un obbligo
nisso (nonostante sia piuttosto comune) mentre i valori variano comunemente da
tipi.
Così come nelle liste, possiamo modificare e ottenere i valori di un dizionario, ma in questo
Nel caso in cui invece di utilizzare un indice, utilizziamo una chiave. Questo fa sì che i dizionari
siano estremamente semplici da lavorare, guarda il codice seguente:
Questo codice è molto simile a cambiare il valore di un elemento nella lista e fa la stessa cosa,
ma questa volta modificando un valore di un dizionario.
38
Dizionari
Possiamo fare lo stesso processo per ottenere un valore dal dizionario e memorizzarlo in
un'altra variabile, vedi:
nome_da_pessoa = pessoa["nome"]
Quando si utilizzano i dizionari, è necessario fare attenzione, perché se la chiave non esiste, l'applicazione
cpf = pessoa["cpf"]
Sapendo questo, c'è un altro modo in Python per ottenere un valore da un dizionario.
Possiamo farlo attraverso la funzioneottenere. Per questa funzione dobbiamo inviare due
informações: a chave e um valor padrão para o caso da chave não existir.
cpf = [Link]("cpf",None)
stampa(cpf)# -> Nessuno
chaves = [Link]()
forchaveinchaves:
stampa(chave)
valores = [Link]()
forvalorinvalores:
print(valor)
39
Dizionari
Possiamo utilizzare queste funzioni per scrivere ogni chiave e il suo rispettivo valore, per
exemplo:
chaves = [Link]()
forchaveinchaves:
valor = pessoa[chave]
texto = chave +": "+ str(valor)
stampa( testo )
Il codice sopra è stato separato per chiarire il passo dopo passo delle istruzioni, ma tu
puoi includere tutte queste istruzioni in una sola riga di codice se lo ritieni più
confortável:
chaves = [Link]()
forchaveinchaves:
stampa( chiave, ":", str( persona[chiave]) )
Infine, così come abbiamo fatto con le liste, possiamo anche eliminare un elemento dal
dizionario con il comandodelÈ importante dire che ildelrimuovi completamente o
elemento chiave-valore del dizionario.
delpessoa["sobrenome"]
stampa(pessoa["cognome"])
Il codice sopra genererà un errore, perché a partire dal momento in cui il comandodelfu
applicata alla chiave-valore "cognome", essa cessa di esistere nel dizionario, quindi prendi
Attenzione!
Andiamo a praticare
1. Fai un programma che crei un dizionario per definire un prodotto, contenente il suo
descrizione e il suo prezzo.
2. Fai un programma che inizi una lista della spesa con 5 articoli diversi, dove
ogni elemento è un dizionario contenente la descrizione e il prezzo del prodotto. Dopo di ciò,
percorri la lista e mostra le informazioni di ogni elemento.
3. Utilizza la lista della spesa del programma precedente per identificare quale sia il prodotto più
barato e qual è il prodotto più caro della lista della spesa.
40
Dizionari
4. Fai un programma che abbia un elenco di 5 persone, dove ogni persona ha il suo
Nome e cognome memorizzati in un dizionario, dopodiché visualizza tutti i nomi
e cognomi. Per complicare un po' le cose, simuleremo che questi dati
sono stati ottenuti dal web e con ciò abbiamo ricevuto alcune incongruenze. Due delle cinque
le persone possiedono il dizionario dove le chiavi sono in maiuscolo e gli altri tre in
minuscule.
Attenzione
41
Modularizzazione del codice con Funzioni
Questo capitolo potrebbe essere un po' più teorico dei precedenti, ma non ti preoccupare,
programmiamo molto qui anche!
La creazione di soluzioni più complesse e di programmi più grandi diventa un compito piuttosto
è difficile continuare a programmare nel modo in cui siamo. Dobbiamo fare in modo che il
programma sia separato in pezzi più piccoli.
In questo modo, ogni volta che avremo bisogno di risolvere un problema più complesso,
possiamo collegare questi pezzi per formare una soluzione.
Per questo, abbiamo bisogno che questi pezzi siano riutilizzabili, proprio come i pezzi dei lego.
42
Modularizzazione del codice con Funzioni
In realtà, durante gli esercizi precedenti, abbiamo già utilizzato funzioni disponibili in Python
varie volte. Ilstampae oinputsono esempi di funzioni disponibili, ma il più
interessante di questo è che possiamo definire le nostre stesse funzioni!
In generale, ogni funzione dovrebbe eseguire solo un'azione. In questo modo diventa più
riutilizzabile e utile per i tuoi programmi.
Ogni volta che hai una funzione che svolge più di un compito, fai attenzione, questo
probabilmente è un segno di codice cattivo. Forse questa funzione dovrebbe essere suddivisa in due
o più funzioni.
Vediamo come possiamo definire una funzione nel nostro codice Python!
defola_mundo():
print("Ciao mondo")
43
Modularizzazione del codice con Funzioni
Ma c'è una differenza importante: quando definiamo una funzione non facciamo in modo che quegli
i comandi saranno eseguiti, stiamo solo descrivendo cosa accadrà quando
eseguire la funzione.
Per eseguire una funzione è necessario utilizzare il suo nome seguito da parentesi, vedi:
Puoi inserire all'interno di una funzione quanti comandi desideri e tutti saranno
eseguiti non appena la funzione viene eseguita.
Dopo che una funzione è definita, è come se la chiamata per eseguirla fosse un nuovo
comando di Python, da ora in poi stiamo creando le nostre istruzioni e esse
si comportano allo stesso modo delle funzioni di Python.
Guarda come risulta il flusso di esecuzione del programma considerando che questa chiamata è
realizzata tra operazioni che abbiamo già visto prima.
numero =10
numero2 =15
ola_mondo()
risultato = numero + numero2
Quando ciò accade, l'esecuzione del codice principale si "gela" per eseguire tutte le
istruzioni della funzione. Dopodiché torna alla prossima istruzione.
44
Modularizzazione del codice con Funzioni
Parametri
È comune avere bisogno di dati per eseguire qualche tipo di operazione. Guarda la funzionestampa
ad esempio, il compito di questa funzione è scrivere qualsiasi cosa nella console giusto? -Giusto.
defelevar_ao_quadrado(numero):
stampa(numero * numero)
45
Modularizzazione del codice con Funzioni
Basta mettere il parametro tra le parentesi nella definizione della funzione! Come già
abbiamo utilizzato la funzione diverse voltestampadevi immaginare come abbiamo passato un numero
per questa funzione, vero?
eleva_al_quadrato(9)
È interessante notare che possiamo anche passare variabili ed espressioni nel parametro,
guarda un po':
elevar_ao_quadrato(9)
eleva_al_quadrato(4+5)
nove =9
eleva_al_quadrato(nove)
In tutti i casi il risultato della funzione sarà lo stesso, dopotutto stiamo passando lo stesso
parametro!
Ora creiamo una funzione che sommi due numeri diversi! Sì, puoi creare
multipli parametri! Basta separarli con una virgola, guarda:
defsoma(numero1, numero2):
stampa(numero1 + numero2)
somma(2,5)# -> 7
soma(3,3)# -> 6
soma(10,5)# -> 15
Legale, vero?
Inoltre, non ci sono restrizioni sul tipo inviato come parametro, ecco un altro esempio:
defsaudacao(nome):
print("Ciao", nome)
Ritorni
Oltre a ricevere informazioni (parametri), le funzioni possono anche produrre risultati.
Questi risultati sono chiamati ritorni.
46
Modularizzazione del codice con le funzioni
D'altra parte, non ha molto senso la funzionesomascrivere solo il risultato della somma.
La funzione diventerebbe molto più riutilizzabile producendo un risultato. In questo modo il
lo sviluppatore potrebbe fare ciò che meglio crede con il risultato, incluso scriverlo.
Ogni volta che dobbiamo creare un ritorno utilizziamo la parola riservataritorno. Lei fa
affinché la funzione produca un risultato, così come un'espressione.
defsoma(numero1, numero2):
returnnumero1 + numero2
Basta pensare che la funzione comincia a comportarsi come un'espressione, quindi riusciamo
eseguire attribuzioni, somme e qualsiasi altra operazione che potremmo fare con una
espressione. Guarda:
risultato = somma(1,2)
print(resultado)# -> 3
resultado = soma(2,2) *3
stampa(resultado) # -> 12
stampa(soma(3,7))# -> 10
defesempio(valore):
numero = valore * 2
se numero > 10:
returnnumero
valor = valor +5
valore di ritorno
In questo esempio, nel caso in cui la variabilenumerose è maggiore di 10, la funzione verrà interrotta.
Altrimenti verrà restituito il valore della variabilevaloresomato a 5.
47
Modularizzazione del codice con Funzioni
defesempio(valore):
resultado =None
numero = valore * 2
se numero >10:
risultato = numero
altro:
risultato = valore +5
ritorna risultato
defesempio(valore):
numero = valore *2
ritorna numero se numero > 10 altrimenti valore + 5
Con questo abbiamo coperto tutti i concetti coinvolti nella creazione di una funzione!
Andiamo a praticare
1. Crea un programma che scriva "La mia prima funzione", questa scritta deve essere
realizzata a partire dalla chiamata di una funzione.
3. Fai un programma che richieda due numeri all'utente e mostri il loro prodotto.
La moltiplicazione deve essere calcolata in una funzione.
4. Fai un programma che richieda all'utente tre numeri diversi e mostri il doppio di
numero maggiore. Per farlo separa il tuo codice in due funzioni diverse: Una
funzione per restituire il maggiore dei tre numeri e un'altra funzione per raddoppiare il numero.
48
Modularizzazione del codice con Funzioni
5. Fai un programma che inizializzi una lista vuota, dopodiché chiedi 5 nomi
diversi per l'utente (utilizzare un ciclo di ripetizione). Ogni nome digitato deve essere
aggiunto alla lista e infine, tutti i nomi devono essere scritti sulla console. Utilizza una
funzione per richiedere e restituire il nome digitato, una funzione per aggiungere il nome a
lista (passando il nome e la lista come parametro) e un'altra funzione per scrivere tutto
nomi nella console.
Attenzione
49
Espressioni Lambda
Per comprendere questo post è essenziale che tu abbia prima compreso l'argomento del
capítulo anterior:funções.
Tutte le caratteristiche di una funzione lambda sono molto simili alle funzioni
comuni che abbiamo già visto, ad eccezione di due cose: non hanno una definizione in
codice, cioè, sono dichiarate come variabili e non possiedono undefproprio; e esse sono
funzioni di una linea, che funzionano come se ci fosse l'istruzionerestituireprima di
comando.
defsoma(numero1, numero2):
returnnumero1 + numero2
La funzione sopra è una funzione di somma normale, poiché è una funzione di una riga possiamo
trasformala in una funzione lambda, o in un'espressione lambda. A tal fine, utilizza il
comandolambdaconforme codice:
Ricordando che il corpo dell'espressione deve contenere sempre solo una riga di comando e
essa funziona come se ci fosse un'istruzione direstituireprima di questa linea.
Pertanto, le due funzioni di somma sono definizioni diverse per la stessa funzione:
stampa(soma(1,2)) # -> 3
print(soma_lambda(1,2))# -> 3
Possiamo avere anche una funzione lambda senza parametri, quando necessario, basta
omettiamo normalmente la dichiarazione dei parametri:
obter_valor =lambda:3+2
50
Espressioni Lambda
Nella pratica questa funzione non ha molto senso, ma è un buon esempio per capire il
que está acontecendo. Nesse caso criamos uma função chamada ottieni_valoreche
sempre restituisce il numero cinque. La definizione standard di questa funzione sarebbe la seguente
modo
defobter_valore():
ritorna3+2
Percepisci che uno dei punti di forza delle espressioni lambda è la loro sintesi, sono una forma
rapida definire funzioni semplici.
Vedi che stiamo utilizzando una funzione lambda che non ha né ritorno né parametri!
Ma tutto funzionerà correttamente.
Forse ti sembrerà strano, del resto, avevo scritto prima che le espressioni lambda
funzionano come se ci fosse unritornaprima dell'istruzione e la funzionestampanon genera
ritorni. Allora come fa a capire?
Nella pratica puoi ottenere il valore di ritorno della funzionestampa, mas ele será um valor do
tipoNessuno! Pertanto, la stessa sintassi delle lambda continua a funzionare normalmente.
Utilizzo
Ok, ho capito il concetto, ma a cosa serve? Ora arriva la parte più complicata
Da questa lezione, ci sono funzioni che possono ricevere altre funzioni come parametro!
Sì, non hai letto male, una funzione riceve come parametro un'altra funzione. Questi sono i
esempi in cui le espressioni lambda sono più utilizzate.
51
Espressioni Lambda
numeros = [0,2,3,4,5,7]
pares = []
fornumeroinnumeros:
se numero % 2 == 0:
[Link](numero)
# Mostra i numeri
perparens:
stampa(par)
In questo ciclo di ripetizione otteniamo i numeri uno per uno, verifichiamo se è pari o no e
caso sia, lo aggiungiamo alla lista delle coppie.
Questo comportamento di filtrare una lista è abbastanza comune, per questo motivo, il linguaggio
offre una funzione per semplificare questa implementazione. Questa funzione èfiltro!
Questa funzione riceve due parametri: uno di essi è la lista che verrà filtrata, chiaro e l'altro
il parametro è la funzione che esegue il filtro della lista!
Questa funzione di filtro deve avere solo un parametro (dello stesso tipo di ogni elemento)
da lista) e deve restituire unbooleano.
In questo modo, tutte le liste, di qualsiasi tipo, possono utilizzare la stessa funzionefilter .
Nel nostro caso, abbiamo un elenco di numeri, quindi la nostra funzione deve ricevere un
numero e restituire un valore logico, nella pratica, è la stessa comparazione che abbiamo già fatto nella
implementazione precedente:numero % 2 == 0, guarda come facciamo la stessa cosa utilizzando il
filter:
numeros = [0,2,3,4,5,7]
pares = filter(lambda valor: valor % 2 == 0, numeros)
forparinpares:
stampa(par)
Trasformiamo tutto il nostro ciclo di ripetizione con un deviazione condizionale in uno unico
Istruzione! Bello, vero?
Andiamo a praticare
52
Espressioni Lambda
Fai un programma che scriva "La mia prima funzione", questa scrittura deve essere
realizzata a partire dalla chiamata di una funzione che è stata dichiarata come un'espressione
lambda.
3. Faça um programa que solicite dois números ao usuário e exiba a multiplicação deles.
La moltiplicazione deve essere calcolata in una funzione lambda.
4. Fai un programma che richieda cinque numeri all'utente, dopo di che, mostra solo
i numeri maggiori di 10. Utilizza la funzionefiltroper fare questo.
5. Fai un programma che richieda dieci numeri all'utente, dopodiché mostra tutti.
números pares e só então exiba todos os números ímpares. Utilize a função filtro
per fare questo.
Attenzione
53
Conclusione
Conclusão
L'obiettivo di questo libro è essere un trampolino di lancio per il mondo della programmazione, ci sono
moltitopic che non sono stati affrontati qui, come: programmazione orientata agli oggetti, programmazione
Non prendere questo libro come unica fonte di studio in alcun modo, ci sono diversi
materiali disponibili online.
Spero che sia stata una buona fonte di studio e sentiti libero di inviarmi qualsiasi
tipo di feedback!
54
Risoluzione degli esercizi
2. Fai un algoritmo che chieda all'utente quanti anni ha, dopo di che, scrivi
Veronessuna console, nel caso in cui abbia già raggiunto la maggiore età (18 anni), altrimenti
scriviFalso.
approvato).
55
Risoluzione degli esercizi
se il media >=7:
Approvato
altrimenti:
Reprizzato
2. Fai un algoritmo che richieda l'anno in cui l'utente è nato, dopodiché fai il
programma descrivere se l'utente compirà o ha già compiuto 18 anni quest'anno.
se età == 18:
L'utente compirà 18 anni quest'anno.
3. Fai un programma che chieda all'utente la sua età, poi mostra la classificazione
età in base alle fasce di valori:
Bambino da 0 a 11 anni;
Adolescente da 12 a 18 anni;
Giovani da 19 a 24 anni;
Adulto da 25 a 40 anni;
Mezza Età da 41 a 60 anni;
Anziano sopra i 60 anni.
56
Risoluzione degli esercizi
elifidade >60:
Anziano
4. Fai un programma che richieda all'utente 2 valori, utilizza una condizione ternaria per
scrivere qual è il valore più grande: il primo o il secondo (nel caso i valori siano uguali,
considera il secondo).
57
Risoluzione degli esercizi
3. Fai un programma che richieda l'età dell'utente, verifica se il testo fornito è solo
contiene numeri. Se contiene solo numeri, mostra il messaggio: "Hai {età"
digitada} anos.", caso contrário exiba a mensagem: "Você digitou uma idade inválida".
[Link]():
Hai {età} anni.
altro:
Hai inserito un'età non valida
4. Fai un programma che chieda il nome completo dell'utente e mostri solo il suo
secondo nome/primo cognome.
familia = ["Gabriel","Anderson","Luluzinha","Mariazinha","Joãozinho"]
stampa(famiglia)
2. Fai un programma che inizializzi una lista vuota e chieda all'utente 3 nomi di
città, una alla volta, ogni volta che l'utente digita un nome, il programma deve includere questo
nome na lista de cidades.
cidades = []
3. Fai un programma che inizializzi una lista con diversi numeri, dopo di che,
richiedi all'utente un numero, verifica se il numero è nella lista o meno e mostra una
mensagem notificando o usuário do resultado.
58
Risoluzione degli esercizi
numeros = [1,3,6,10,5,23]
numero_digitado = int(input("Digite um número: "))
ifnumero_digitatoinnumeri:
print(f"Il numero {numero_digitado} è nella lista")
altrimenti:
print(f"Il numero {numero_digitado} non è nella lista")
4. Fai un programma che inizializzi una lista vuota e la riempia con 5 nomi diversi
digitati dall'utente, dopodiché chiedi un numero da 0 a 4 e rimuovi l'elemento
da questa posizione.
nomes = []
[Link](input("Digita il primo nome: "))
[Link](input("Inserisci il secondo nome: "))
[Link](input("Inserisci il terzo nome: "))
[Link](input("Inserisci il quarto nome: "))
[Link](input("Inserisci il quinto nome: "))
posicao_para_excluir = int( input("Escolha uma posição de 0(zero) até quatro para excl
uir dalla lista: "))
delnomes[posicao_para_excluir]
stampa(nomi)
itens_compra = ["Arroz","Leite","Ovos","Feijão","Tomate"]
foriteminitens_compra:
stampa(oggetto)
se numero % 2 == 0:
stampa(numero)
3. Faça um programa que exiba todos os valores ímpares entre 50 e 100 utilizando o range.
pernumeroinrange(51,101,2):
stampa(numero)
59
Risoluzione degli esercizi
4. Fai un programma che inizializzi una lista vuota, chieda all'utente 10 numeri
diversi, uno alla volta. Se il numero inserito è pari, aggiungi uno al suo valore.
Dopo di ciò, visualizza i 10 numeri digitati.
numeros = []
pernumeroinrange(10):
item_digitado = int ( input("Digite um valor: ") )
se(item_digitado %2==0):
item_digitato +=1
[Link](item_digitato)
fornumeroinnumeros:
stampa(numero)
5. Fai un programma che mostri le tavole di moltiplicazione da 1 a 10 nel formato: "2 x 3 = 6".
comandiper)
peroperatore_2inrange(1,11):
risultato = operatore * operatore_2
stampa(f"{operador} X {operador_2} = {risultato}")
itens_compra = ["Arroz","Leite","Ovos","Feijão","Tomate"]
posicao =0
mentreposicao < len(itens_compra):
stampa(itens_compra[posizione])
posizione+=1
2. Fai un programma che inizializzi una lista con i valori da 1 a 10 e poi la mostri.
solo i numeri pari utilizzandomentre.
numeros = [1,2,3,4,5,6,7,8,9,10]
posicao =0
mentre posizione < len(numeri):
numero = numeri[posizione]
se numero % 2 == 0:
stampa(numero)
posicao+=1
60
Risoluzione degli esercizi
3. Fai un programma che inizializzi una lista vuota, richieda all'utente 10 numeri dispari
diversi, uno alla volta. Se il numero digitato è pari, richiedi nuovamente un numero, fino a
che il valore sia un numero dispari. Dopo di che, mostra i 10 numeri digitati.
numeros = []
numero =0
quantidade_sobrando =10
mentrequantidade_sobrando >0:
numero =0
whilenumero %2==0:
numero = int( input("Digita un numero dispari: " ) )
[Link](numero)
quantidade_sobrando -=1
posicao =0
4. Fai un programma che mostri un menu per l'utente per selezionare una delle tre opzioni:
1 - Ciao mondo
2 - Io programma in Python
3 - La necessità di ripetizione
Il programma deve chiedere all'utente di scegliere una delle 3 opzioni, se l'utente digita un valore.
diverso dalle opzioni (1, 2 o 3), il programma deve presentare di nuovo il menu di
opzioni fino a che una di esse venga scelta. Infine, il programma deve visualizzare un messaggio
diverso per ogni opzione.
opcao =0
opcoes = [1,2,3]
mentreopcaonon inopcoes:
Seleziona una delle opzioni qui sotto:
1 - Ciao mondo
print("2 - Io programma in Python ")
print("3 - Laços di ripetizione ")
opcao = int ( input ("Selecione a opção: ") )
ifopcao ==1:
print("Ciao mondo!")
elifopcao == 2:
Sto già alla mia sesta lezione di Python!
altrimenti:
In questa lezione sto studiando il ciclo di ripetizione While
61
Risoluzione degli esercizi
numeros = [1,2,3,4,5,6,7,8,9,10]
posicao =0
mentreposicao < len(numeros):
posizione +=1
ifposicao ==3:
continua
elifposicao == 6:
interrompere
print(numeri[posizione-1])
numeros = [1,2,3,4,5,6,7,8,9,10]
posicao =0
mentreposicao <5:
ifposicao !=2:
stampa(numeri[posizione])
posicao +=1
produto = {
"descrição":"Água",
"preço":2.00
}
2. Crea un programma che inizializzi una lista della spesa con 5 articoli diversi, dove ciascuno
item é um dicionário contendo a descrição e preço do produto. Depois disso, percorra a lista
e mostra le informazioni di ciascun elemento.
lista_compras = [
{"descrição":"Água","preço":2.00},
{"descrição":"Leite","preço":3.00},
{"descrição":"Carne","preço":18.00},
{"descrição":"Pizza","preço":9.00},
{"descrição":"Chocolate","preço":6.50},
]
foritem_comprainlista_compras:
print("Prodotto:", item_acquisto["descrizione"],"per", str(item_acquisto["prezzo"]),"rea
è.)
62
Resolução dos exercícios
3. Utilizza la lista della spesa del programma precedente per identificare qual è il prodotto più economico
E qual è il prodotto più costoso dell'elenco della spesa.
mais_barato =None
mais_caro =None
indice =0
mentre indice < len(lista_compras):
item_compra = lista_compras[indice]
se indice == 0:
mais_caro = item_compra
mais_barato = item_compra
altrimenti:
ifitem_compra["prezzo"] > mais_caro["prezzo"]:
mais_caro = item_compra
indice = indice + 1
4. Fai un programma che abbia un elenco con 5 persone, dove ogni persona ha il suo
nome e cognome memorizzati in un dizionario, dopo di che visualizza tutti i nomi e
cognomi. Per complicare un po' le cose, simuleremo che questi dati siano stati
ottenuti dal web e con questo abbiamo ricevuto alcune incongruenze. Due delle cinque persone
possuem o dicionário onde as chaves estão em maiúsculo e os outros três em minúsculo.
pessoas = [
{"nome":"Joãozinho","sobrenome":"da Silva"},
{"NOME":"Mariazinha","SOBRENOME":"de Souza"},
{"nome":"Gabriel","sobrenome":"Schade"},
{"NOME":"Joana","SOBRENOME":"da Silva"},
{"nome":"Everton","sobrenome":"Schmit"},
]
forpessoainpessoas:
nome = [Link]("nome",None)
sobrenome = [Link]("sobrenome",None)
se nonnome:
nome = [Link]("NOME", None)
se nonsobrenome:
sobrenome = [Link]("SOBRENOME",None)
stampa(nome, cognome)
63
Risoluzione degli esercizi
defmia_funziona():
print("La mia prima funzione")
mia_funzione()
scrivere_nome_eta(nome_digitato, eta_digitata)
3. Fai un programma che richieda due numeri all'utente e mostri la loro moltiplicazione. A
la moltiplicazione deve essere calcolata in una funzione.
4. Fai un programma che richieda all'utente tre numeri diversi e mostri il doppio del
maggiore numero. Per fare ciò separa il tuo codice in due funzioni diverse: Una funzione
per restituire il maggiore dei tre numeri e un'altra funzione per raddoppiare il numero.
64
Risoluzione degli esercizi
defdobrar(numero):
returnnumero *2
maior = obter_maior(numero,numero2,numero3)
print(dobrar(maior))
5. Fai un programma che inizializzi una lista vuota, dopo di che richiedi 5 nomi diversi.
al utente (utilizzare un ciclo di ripetizione). Ogni nome digitato deve essere aggiunto alla lista e per
fim, tutti i nomi devono essere scritti nella console. Utilizza una funzione per richiedere e
restituire il nome digitato, una funzione per aggiungere il nome alla lista (passando il nome e la
lista per parametro) e un'altra funzione per scrivere tutti i nomi nella console.
defsolicitar_nome():
returnstr ( input("Digite um nome: ") )
definire_nomi(lista):
fornomeinlista:
print(nome)
nomes = []
per contatore in gamma (0,5):
nome = solicitar_nome()
aggiungere_nome_nella_lista(nomi, nome)
escrever_nomes(nomes)
65
Risoluzione degli esercizi
Fai un programma che scriva "La mia prima funzione", questa scrittura deve essere effettuata
a partire dalla chiamata di una funzione che è stata dichiarata come un'espressione lambda.
3. Fai un programma che richieda due numeri all'utente e mostri il loro prodotto. A
la moltiplicazione deve essere calcolata in una funzione lambda.
4. Fai un programma che richieda cinque numeri all'utente, dopodiché mostra solo i
numeri maggiori di 10. Utilizza la funzionefiltroper fare questo.
numeros = []
per indice in intervallo (1,5):
5. Faça um programa que solicite dez números ao usuário, depois disso, exiba todos
numeri pari e solo allora mostra tutti i numeri dispari. Usa la funzionefiltroper
fare questo.
66
Risoluzione degli esercizi
definire_array(array):
forvalorinarray:
stampa(valor)
numeros = []
perindiceinrange(1,10):
numero = int(input("Inserisci un numero: "))
[Link](numero)
67