Il 0% ha trovato utile questo documento (0 voti)
42 visualizzazioni67 pagine

Corso Di Python

Il documento è un'introduzione alla programmazione con Python, mirato a demistificare il linguaggio attraverso esempi pratici e esercizi. Viene presentato un approccio passo-passo per apprendere variabili, tipi di dati, e strutture di controllo, enfatizzando l'importanza della pratica immediata. L'autore, Gabriel Schade Cardoso, condivide la sua esperienza e incoraggia i lettori a diventare creatori di tecnologia piuttosto che semplici utenti.

Tradotto da

ScribdTranslations
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
42 visualizzazioni67 pagine

Corso Di Python

Il documento è un'introduzione alla programmazione con Python, mirato a demistificare il linguaggio attraverso esempi pratici e esercizi. Viene presentato un approccio passo-passo per apprendere variabili, tipi di dati, e strutture di controllo, enfatizzando l'importanza della pratica immediata. L'autore, Gabriel Schade Cardoso, condivide la sua esperienza e incoraggia i lettori a diventare creatori di tecnologia piuttosto che semplici utenti.

Tradotto da

ScribdTranslations
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

Tabella dei contenuti

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.

Variose istituzioni in Brasile e nel mondo stanno adottando discipline di programmazione


software nella scuola primaria e secondaria. Tenendo questo in considerazione, questo libro cerca di aiutare il

processo iniziale al mondo dello sviluppo e della programmazione.

L'obiettivo principale è demistificare la programmazione attraverso esempi pratici e


esercizi, affinché possiamo smettere di essere solo utenti della tecnologia, ma anche
diventiamo i creatori di essa.

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.

È abbastanza correlato con la comunità di sviluppo software nazionale, per


La tua contribuzione ha ricevuto il premio Microsoft MVP (Most Valuable)
Professionale) nella categoria Tecnologie di Sviluppo.

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.

Puoi trovare l'autore in:

Linkedin
Github
Blog personale

Cosa troverai in questo libro?


Questo libro è un prodotto gratuito composto da pubblicazioni del blog
[Link] pubblicazioni sono state modificate per migliorare l'esperienza
di lettura.

3
Introduzione

Ogni capitolo affronta in modo diretto un tema di base sulla programmazione di


computer, utilizzando il linguaggio di programmazione Python come esempio.

Tutti i capitoli hanno un elenco di esercizi per la fissazione, è abbastanza raccomandato


che tu cerchi materiali esterni per completare il tuo apprendimento.

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

Dovresti imparare Python


Come già detto in precedenza, programma principalmente sulla piattaforma .NET, ma
considero un errore enorme i programmatori chiudersi nel loro mondino, che sia Java,
.Net o qualsiasi piattaforma che sia.

Le lingue di programmazione in generale hanno diverse caratteristiche, il


L'obiettivo di questo libro è iniziare a farti entrare nell'universo della programmazione, il che ci porta alla domanda:

Se você quer começar a programar, qual a melhor linguagem? - Como sempre,depende.

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.

Questa lingua è mantenuta dall'università UNIVALI e ha l'obiettivo di facilitare l'iniziazione


in programmazione utilizzando termini in portoghese e una sintassi semplificata.

Ma ancora una volta, vale la pena sottolineare che, nonostante il suo ottimo valore educativo, Portugol non è

uma linguagem de mercado, portanto, vamos utilizar Python.

Python è un linguaggio sensazionale, davvero. E possiamo fare molte cose con


lei, molte davvero, arriva ad essere spaventoso.

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.

Puoi usare Python per:

Creare script di automazione, ad esempio, ogni N minuti fai un ping a tutti i


pagine del sito
Grafi
Visione computazionale;
Applicazioni desktop multi-piattaforma;
Applicazioni Android;
Applicazioni Web;
Apprendimento Automatico

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.

In questo primo capitolo arriveremo solo all'inizio dell'inizio, il maiorhitda


computazione, il grande: "Ciao Mondo"!

stampa("Ciao Mondo")

E questo è tutto! Non c'è niente di omesso nel codice, non c'è dichiarazione di nessun nome complicato

come namespace, importazione di pacchetto, funzioneprincipaleniente.

Così semplice, vero?

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.

Non ho messo nulla sull'installazione di Python e sull'ambiente di


sviluppo, questo perché ci sono diversi modi di programmare in Python, da
ambienti web fino a ambienti di sviluppo completi.

Puoi accedere al sito:[Link] e selezionare il linguaggio Python, con ciò già


potrà programmare in Python senza dover installare nulla!

Se volevi uno strumento più completo, puoi utilizzare la documentazione su come


installare lo strumento e il linguaggio Pythonneste link.

6
Iniziando con Python

Capitolo 2 - Iniziare con Python


Bene, cominciamo! Senza troppa teoria ora, mettiamo le mani in pasta!

È 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.

V iniziamo dall'inizio. Proprio dall'inizio. Vedremo variabili, tipi e input.


e uscita (IO).

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.

considerazione, ma abbiamo molta più libertà di prima.

Ma come sappiamo, le variabili sono memorizzate nella memoria? -Bene, la memoria del
il computer funziona in modo simile al nostro sistema sociale.

Cosa fai quando hai bisogno di dire a qualcuno dove abiti?

Tu passi l'indirizzo, giusto?

La memoria del computer fa la stessa cosa, ogni spazio possibile ha un indirizzo


unico, così il tuo computer saprà dove trovare l'informazione.

Immagina che l'indirizzo sia le coordinate di latitudine e longitudine di un luogo, è proprio


specifico e non si ripete. Ma con quale frequenza comunichi il tuo indirizzo nel sistema
di coordinate?

Se non sei molto strano, probabilmente utilizzi poco il sistema di coordinate.


certo? - Facciamo questo perché non è intuitivo per la maggior parte delle persone, così come
gli indirizzi di memoria nel tuo computer.

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).

Per accedere ai dati in memoria, utilizziamo identificatori, ovvero nomi. Una


una variabile alla fine è una composizione di tre cose: identificatore di accesso +
dado memorizzato + tipo.

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

In questo caso, l'informazione memorizzata nella variabilerisultatosarà il risultato della


espressione matematica.

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

Visto che, nonostante il valore memorizzato nella variabilerisultatoessere lo stesso dell'altro

esempio (52), ora stiamo utilizzando la variabile per calcolare.

Puoi mostrare il risultato memorizzato nelle variabili con la funzionestampa, guarda:

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.

Fai un algoritmo per risolvere l'equazione z = a * a - b + c, memorizzando il risultato


nella variabile z. Considera che i valori iniziali di a, b e c sono, rispettivamente, 4, 6.5
e 10.5. Dopo di che mostra il risultato.

Attenzione

È fortemente consigliato che tu provi a fare gli esercizi prima di vedere le


risposte. Puoi trovare le rispostequifai attenzione a non ricevere
spoiler dei prossimi esercizi.

Sei riuscito a rispondere? -Spero di sì! Se non ha funzionato, puoi controllare


le risposte nel link sopra.

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:

Numeri: interi (int) e con decimali (float)


Testi (stringa o str)
Logici (bool)

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.

Bastava dichiarare le variabilibeccon valori decimali.

Andiamo ai testi ora!

Per definire che un valore è una stringa ci sono 3 opzioni:

Tra virgolette singole:testo;

9
Iniziando con Python

"Tra virgolette doppie:"testo;


Tra una trinca di virgolette doppie:"""texto""" ;

Puoi utilizzare qualsiasi di essi e il tuo programma capirà che si tratta di una
stringa.

Facciamo un esempio con la funzione print:

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:

nome = input("Digite seu nome: ")


stampa(nome)

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).

Applichiamo questi operatori in frasi di linguaggio naturale:

Oggi c'è stato sole al mattino


Oggi ha piovuto nel pomeriggio -> considera questa frase come una bugia

Queste affermazioni in portoghese possono essere interpretate come:

10
Iniziando con Python

sole_al_mattino =Vero
chuva_pela_tarde =False

Ora applichiamo gli operatori, iniziando dall'operatore di negazione (no):

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à

Hanno capito qualcosa?

L'operatore di negazione inverte il valore di un valore logico! Ciò che prima era vero ora è falso.
menzogna e viceversa.

Guarda nel codice:

sole_bella_mattina =Vero
chuva_pela_tarde =False

sol =notsol_pela_manha # -> Falso


chuva =notchuva_pela_tarde# -> True

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.

Andiamo di nuovo alle frasi:

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.

sol_e_chuva = sol_pela_manhaandchuva_pela_tarde # -> Falso


sol_e_nao_chuva = sol_pela_manhaand notchuva_pela_tarde# -> True

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 è

vera, la frase è una verità.

11
Iniziando con Python

Guarda nel codice:

sol_ou_chuva = sol_pela_manhaorchuva_pela_tarde # -> Vero


sol_ou_nao_chuva = sol_pela_manhaor notchuva_pela_tarde# -> True
nao_sol_ou_chuva =notsol_pela_manhaorchuva_pela_tarde# -> False

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

Vero Falso Falso

False Vero Falso

Falso Falso Falso

Ou (o)
Primo Valore Secondo Valore Risultato

Vero Vero Vero


Vero Falso Vero

Falso Vero Vero

Falso Falso Falso

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

cinco_maior_que_tres =5>3# -> True

Abbiamo diversi operatori per effettuare questi confronti!

Operatore Descrizione

== (uguale) RitornaVerocaso i due valori siano uguali


!=
RestituisceVerose i due valori sono diversi
(diverso)

RitornaVerocaso il valore a sinistra dell'operatore sia maggiore di


(maggiore)
valore a destra dell'operatore

>= (maggiore RitornaVerocaso o valor à sinistra dell'operatore sia maggiore o uguale


o uguale) che il valore a destra dell'operatore

RitornaVeritierocaso il valore a sinistra dell'operatore sia minore di


< (minore)
valore a destra dell'operatore

<= (maggiore RitornaVerocaso o valor a sinistra dell'operatore sia minore o uguale


o uguale) che il valore a destra dell'operatore

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

x == y# -> stiamo confrontando se i valori di x e y sono uguali

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.

3. Fai un algoritmo che chieda all'utente quanti anni ha, dopodiché,


scriviVerono console, caso egli abbia già raggiunto la maggiore età (18 anni), caso
contrário escreva Falso.

4. Fai un algoritmo che richieda un numero all'utente, dopodiché scriviVerono


console, caso il numero abbia due cifre (Sia tra 10 e 99), altrimenti
scriviFalso.

13
Iniziando con Python

Attenzione

È fortemente consigliato che tu provi a fare gli esercizi prima di vedere le


risposte. Puoi trovare le rispostequi.

14
Deviazioni condizionali, facendo prendere decisioni al tuo programma

Capitolo 3 - Deviazioni condizionali, facendo


il tuo programma prendere decisioni!

Ora che hai già visto i tipi di base e hai già lavorato abbastanza con valori logici, procederemo
introdurre una complessità nei nostri programmi.

Creeremo un deviatore condizionale, ovvero faremo in modo che il programma segua un


cammino o altro in base a una condizione.

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:

Vai al mercato e compra latte, se non c'è, compra acqua.

Guarda il ragionamento dietro! Dobbiamo controllare se il mercato ha latte in stock, se lo


tiver andiamo a comprarlo, ma se non ce l'ha, compreremo acqua.

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!

Vedi? Ora possiamo far prendere decisioni agli algoritmi!

È necessario utilizzare il comandoaltroper il caso negativo, sarebbe l'equivalente di un


"senão", ossia:secondição allora fai xsenaofaça y.

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.

Facciamo un altro esempio!

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.

Generalmente è più comune utilizzare l'espressione direttamente nel comando, salvo in


casi in cui questa stessa comparazione deve essere fatta più di una volta, in questi casi è
è meglio memorizzare il risultato e riutilizzarlo invece di fare il confronto più volte
volte.

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

Puoi dare diversi comandiseealtrimentiannidati, ossia uno dentro l'altro.


Questo codice funzionerà senza problemi, ma questo non significa che sia il modo migliore di
fare questo.

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

elifnota ==7ornota ==6:


Recupero

altrimenti:
Reprovato

Questo esempio è abbastanza semplice, ma già ci permette di comprendere l'utilizzo delelif. É


è importante sottolineare anche che questo comando di deviazione consente solo unsee un
altroche siano connessi, ma puoi inserire quantielifforem necessari.

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

se nota1 > 5 e nota2 >= 7:


Approvato

deu_sol =True

se nondeu_sol:
print("È piovuto")

Infine, c'è un altro modo per descrivere il comandose.

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:

È stato approvato se ha preso 7 o più, altrimenti è stato bocciato.

Traduciamo questo in Python con il comando che già conosciamo:

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

1. Fai un algoritmo che richieda 3 voti all'utente, calcoli la media e indichi se il


lo studente è stato approvato o bocciato (il voto deve essere maggiore o uguale a sette per lo studente
essere approvato).

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.

3. Fai un programma che richieda all'utente la sua età, dopodiché mostra


classificazione per età in base alle fasce di valori:

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

È fortemente raccomandato che tu provi a fare gli esercizi prima di vedere le


risposte. Puoi trovare le rispostequi.

19
Valori None, Stringhe e Liste

Capitolo 4 - Valori None, Stringhe e Liste


A questo punto dovresti già essere in grado di creare variabili e creare deviazioni condizionali nel tuo
programma. Ma facciamo un passo indietro e diamo un'occhiata più da vicino
alcune caratteristiche dei tipi in Python!

Iniziamo presentando un nuovo tipo di valore, i valoriNessuno.

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)

Semplice così, solo una riga di codice.

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!

Un altro punto importante è che le deviazioni condizionali porteranno sempre aFalsoquando


realizzato con una variabile che contiene il valoreNessuno:

teste =None

ifteste:
stampa(teste) # -> non verrà eseguito

Semplice, vero?

20
Valori None, Stringhe e Liste

Esplorando un po' di più sulle stringhe


Abbiamo già utilizzato alcune volte variabili di tipo stringa, ma c'è ancora molto lavoro da fare!

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.

Ma non preoccuparti, è molto facile da usare!

Facciamo il primo esempio insieme, trasformiamo la prima lettera di una stringa


in maiuscolo, faremo questo attraverso la funzioneCAPITALIZZARE:

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

Questi valori che vengono passati a una funzione si chiamano parametri.

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.

In questo contesto la funzioneformat permette di mescolare un testo libero con variabili o


valori, guarda un esempio!

mensagem ="Olá {0}".format(nome_maiusculo)


Ciao Gabriel

Ok, ma questo è diventato troppo confuso! - Calma, non è niente di che.

Cosa fa la funzioneformatofa è sostituire nel testo la formattazione{N}per il parametro N.


Dove N è l'ordine dei parametri, iniziando da zero (0). Vedi un altro esempio:

segunda_mensagem ="Olá {0}, me chamo {1}".format(nome_maiusculo,"Python")


Ciao Gabriel, mi chiamo Python

Vedi? Il primo parametro è entrato al posto di"{0}", o secondo al posto di {1}e


e così via!

Ma cosa succede se ne mettiamo più di uno{0}? Testiamo!

terceira_mensagem ="Olá {0}, me chamo {1}. {0}".format(nome_maiusculo,"Python")


Ciao Gabriel, mi chiamo Python. Gabriel

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.

Io considero questa sintassi più semplice da capire. Per fare un'interpolazione di


dobbiamo mettere la lettera "f" prima della stringa.

Con questa notazione, la sintassi non è più basata sulla posizione del parametro, basta
mettiamo direttamente il nome della variabile tra parentesi graffe.

mensagem = f"Olá {nome_maiusculo}"


print(mensagem)# -> Olá Gabriel

Il problema di questo approccio è che non tutti gli strumenti di sviluppo


capiscono l'interpolazione, quindi forse devi digitare il nome della variabile in un testo,
cosa può causare un errore nella tua applicazione, se digiti il nome della variabile sbagliato.

22
Valori None, Stringhe e Liste

Andiamo ora all'ultima funzione di stringhe che ti mostrerò qui, si chiamadividere!

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?

los? -Semplice, utilizza la funzionesplit separando i valori con la virgola!

itens_cozinha ="prato,garfo,copo"
print(itens_cozinha.split(','))# -> ["piatto", "forchetta", "bicchiere"]

Cosa sono questi parentesi quadre? Cerchiamo di capire cosa sta succedendo.

Quando utilizziamo la funzionedivideredividiamo il testo in vari pezzi diversi, d'altronde,


ora abbiamo tre articoli invece di un testo.

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.

di valori, utilizzi solo un identificatore/nome per accedere a più valori


diversi.

Salviamo il risultato dello split in una variabile, vedi:

itens = itens_cozinha.split(",")

Ok, ma ora come faccio ad accedere ai valori individuali? -Semplice, utilizziamo un


indice.

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

print(itens[3])# -> Genera un errore

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}

2. Fai un programma che richieda un messaggio qualsiasi all'utente e visualizzi questo.


MESSAGGIO CON TUTTE LE LETTERE IN MAIUSCOLO.

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).

È fortemente raccomandato che tu provi a fare gli esercizi prima di vedere le


risposte. Puoi trovare le rispostequi.

24
Liste

Capitolo 5 - Operazioni con Liste


Se hai praticato in Python, probabilmente ti sei già trovato di fronte al problema della creazione
di variabili per descrivere elenchi, ad esempio, un gruppo di studenti, un insieme di
auto parcheggiate o anche una lista della spesa!

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!

stampa(lista_de_compras[0])# -> Pane


Stampa(lista_de_compras[1]) # -> Acqua
print(lista_de_compras[2])# -> Latte
print(lista_de_compras[3])# -> Uova

È 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])

Prova a immaginare l'elenco secondo il disegno qui sotto:

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.

lista_de_compras[2] ="Suco de Laranja"

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.

Questo ci permette di creare deviazioni condizionali, ad esempio, guarda:

se "Caffè" in lista_de_compras:
Devo comprare caffè

Davvero semplice, vero?

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.

La funzionelenè un'abbreviazione di paralength, parola in inglese per lunghezza. Questa funzione

deve ricevere una lista come parametro e restituirà un intero con la quantità di
elementi.

len( lista_de_compras )# -> 5

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?

Molti principianti cercano di effettuare la seguente operazione:

lista_de_compras[2] =None

Il ragionamento ha un senso, se dico che non c'è nulla nella posizione 2,


Quindi questo elemento non dovrebbe esistere, giusto? -Sbagliato.

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.

Rimuoviamo le uova (posizione 3) dalla nostra lista della spesa!

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

spostati di una posizione verso sinistra.

Cioè, avevamo il caffè in posizione 4 e ora è in posizione 3, facendo con che la


la posizione 4 cessa di esistere.

Comprendiamo meglio ogni funzione con alcuni esercizi!

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

È fortemente raccomandato che tu provi a fare gli esercizi prima di vedere le


risposte. Puoi trovare le rispostequi.

28
Liste

29
Lacci di Ripetizione - I

Capitolo 6 - Legami di Ripetizione - Parte 1


In questo capitolo vedremo una delle risorse più importanti in qualsiasi linguaggio di
programmazione: I cicli di ripetizione, noti anche come loop.

Nel capitolo precedente è stato spiegato il funzionamento delle liste, quindi continueremo a utilizzare
liste qui.

Devi ricordare come accediamo a un elemento di un elenco, giusto?

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]

Come faremmo a stampare ogni numero individualmente sulla console?

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!

Ecco un altro modo per svolgere questo compito:

numeros = [10,20,30,40,50,60,70,80,90,100]

fornumeroinnumeros:
stampa(numero)

Molto più semplice, vero? Ma calma, vediamo come funziona questo


comando.

30
Lacci di Ripetizione - I

Dal risultato è notevole che le istruzioni sotto il comandopereseguono più di


una volta, in realtà per questo si chiamano legami di ripetizione. Perché ripetono le
istruzioni fino a un certo punto.

Andiamo, prima la sintassi per il comando: è necessario usare la parola riservataper


per avviare il comando, simile a quello che abbiamo fatto con il comandose.

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

il programma continuerà normalmente.

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.

Questa funzione consente di creare elenchi su richiesta, guarda:

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

comportamento attraverso parametri. È possibile, ad esempio, utilizzare due parametri


diversi, uno con il valore iniziale e l'altro con il valore limite.

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!

per valore in intervallo(0,10,2):

print(valor)

In questo caso, la lista risultante è: [0, 2, 4, 6, 8], molto carino, vero?

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.

2. Fai un programma che inizializzi e crei un elenco con i valori da 1 a 10 e poi


esibisci solo i numeri pari.

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

È fortemente consigliato che tu cerchi di fare gli esercizi prima di vedere le


risposte. Puoi trovare le rispostequi.

32
Laços di Ripetizione - II

Capitolo 7 - Legami di Ripetizione - Parte 2


Il capitolo precedente ha introdotto il concetto di cicli utilizzando il comandoper.
Ma questa non è l'unica forma di effettuare questo tipo di operazione!

Oltre aper, abbiamo il comandomentre!

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.

A scopo di esempio, utilizzeremo la stessa lista del capitolo scorso!

numeros = [10,20,30,40,50,60,70,80,90,100]

L'idea dietro il comandomentreè ripetere un compito finché una condizione è vera


vera, cioè, nella dichiarazione del comando dobbiamo effettuare un confronto, nel caso
questa comparazione sia vera il blocco di istruzioni delmentresarà eseguito.

Il programma ritornerà all'inizio del blocco dopo che l'ultima istruzione di questo comando sarà
eseguita, facendo di nuovo il confronto.

Quando questo confronto dà un valoreFalsoil blocco di istruzioni delmentre


verrà saltato e il programma continuerà normalmente. Facciamo un esempio?

Stampiamo tutti i numeri della listanumeri, guarda:

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])

Pertanto, non dimenticare di modificare i valori che influenzano il confronto!

Se per qualche motivo casuale, decidi di voler fare un ciclo di ripetizione infinito,
basta utilizzare il comando in questo modo:

mentre Vero:
INFINITO

Invece di fare un confronto, abbiamo segnato direttamente il risultato del


confronto comeVero, ma fai attenzione, questo potrebbe andare storto!

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

Il comandocontinuafa in modo che il ciclo torni all'inizio del blocco, ovvero


affinché possa continuare con la prossima iterazione, ma interrompe immediatamente l'interazione
attuale.

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.

L'altra istruzione è ilpausa, in questo caso l'interruzione è più aggressiva, interrompe il


proprio il ciclo di ripetizione intero, non solo l'iterazione attuale.

Questo significa che, utilizzando il comandopausausciamo dal ciclo di ripetizione


anche se il confronto è ancora vero, rompendo inclusoli loop infiniti.

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

La strategia per evitare ilpausaè semplice. Se lo stai usando probabilmente la tua


la logica di verifica nel ciclo di ripetizione non sta adempiendo al suo compito. Nell'esempio sopra
non vogliamo percorrere fino alla fine della lista come suggerisce la condizione, ma piuttosto, fino al quarto

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.

1. Rimuovere l'istruzioneinterromperee l'istruzionecontinuadel ciclo di ripetizione sottostante:

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

È fortemente raccomandato che tu provi a fare gli esercizi prima di vedere le


respostas. Você pode encontrar as respostas qui.

37
Dizionari

Capitolo 8 - Usa i Dizionari!


A questo punto, dovresti già essere familiare con le liste e i cicli di ripetizione, ora sei già
Quando creiamo più strutture, questa volta useremo i dizionari!

I dizionari consentono allo sviluppatore di memorizzare facilmente coppie chiave-valore! Nella


pratica questo significa che siamo in grado di creare una struttura per memorizzare più di una
informazioni correlate.

Immagina di voler memorizzare dati su una persona. Dovrai conservare il


nome, cognome, età e quante altre informazioni siano necessarie. È possibile creare
tutte queste variabili separate? Certamente sì!

Il problema di questo approccio è che il suo programma non riuscirebbe a relazionare le


informazioni. Per il tuo programma è come se quelle variabili fossero dati separati
tra di loro, ossia, senza alcuna relazione.

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
}

Come detto in precedenza, un dizionario organizza le informazioni in coppie nel formato


chiave-valore. Nell'esempio sopra, le chiavi sono: nome, cognome e età e i valori
rispettivi sono: Gabriel, Schade e 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:

pessoa["sobrenome"] ="Schade Cardoso"

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"]

Con questo riusciamo a manipolare le informazioni correlate in un unico dizionario.


Possiamo ad esempio, visualizzare nella console il nome completo della persona:

print( persona["nome"], persona["cognome"] )

Quando si utilizzano i dizionari, è necessario fare attenzione, perché se la chiave non esiste, l'applicazione

lancerà un errore! Fai il test:

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

Attraverso ilottenerepossiamo cercare un valore in un dizionario in modo sicuro, facendo con


che l'applicazione non generi errori.

Oltre alla funzioneottieni, sono disponibili anche le funzionichiavievalori, esse


ritornano rispettivamente un elenco contenente tutte le chiavi o tutti i valori del
dizionario.

Iniziamo utilizzando la funzionechiavi!

chaves = [Link]()
forchaveinchaves:
stampa(chave)

Lo stesso vale per ottenere tutti i valori:

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

È fortemente raccomandato che tu provi a fare gli esercizi prima di vedere le


risposte. Puoi trovare le rispostequi.

41
Modularizzazione del codice con Funzioni

Capitolo 9 - Modularizzazione del codice con


Funzioni
In questo capitolo impareremo come possiamo suddividere i nostri codici in parti
minori, ossia, modularlo!

Facciamo questo utilizzando le nostre funzioni!

Questo capitolo potrebbe essere un po' più teorico dei precedenti, ma non ti preoccupare,
programmiamo molto qui anche!

Fino ad ora stiamo programmando soluzioni piccole. Ogni esercizio si basava su


un problema specifico che siamo riusciti a risolvere con poche righe di codice, ma in
nella realtà è comune che un unico programma risolva diverse cose.

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

Questi pezzi riutilizzabili sono chiamatifunções Esse sono composto da un blocco di


codice che esegue un'azione determinata.

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")

Prima è necessario utilizzare la parola riservatadef, questa parola è responsabile per


definire una funzione. Dopo di ciò includiamo il nome della funzione, questo nome deve seguire le
stesse regole per i nomi delle variabili.

43
Modularizzazione del codice con Funzioni

Infine, stiamo includendo i caratteri() , a partire da qui utilizziamo i: e tutti i


I comandi appartenenti a questo blocco seguono le stesse regole dei comandi già visti:
se, mentre, pere ecc.

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:

defola_mundo():# -> Definizione


print("Ciao mondo")

ola_mondo()# -> Chiamata per eseguire l'esecuzione

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

Cosa succede in questo flusso?

Bene, prima le due variabilinumeroenumero2sono dichiarati e i valori 10 e 15


sono attribuiti a loro rispettivamente. Dopo queste due righe iniziali la funzione
ciao_mondoè eseguita.

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

Dividere un algoritmo in parti più piccole aiuta molto anche la testabilità di un


programma. Sarà sempre più semplice testare un piccolo blocco piuttosto che il programma per
completo.

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.

Per permettere che ciò sia possibile, la funzionestampaprecisa receber umparâmetro. No


nel caso della funzione print, il parametro è il testo che verrà scritto, ma i parametri possono essere
utilizzati per compiti diversi.

Creiamo una funzione che elevi qualsiasi numero al quadrato!

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.

Non tutte le funzioni producono risultati, guarda la funzionesalutocreata in precedenza.


In effetti non deve produrre alcun risultato.

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.

Facciamo refactoring della funzionesoma:

defsoma(numero1, numero2):
returnnumero1 + numero2

Ok, ma come ottenere il risultato di questa funzione? -Semplice!

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

risultato = somma(5,5) - 2*5


print(resultado)# -> 0

stampa(soma(3,7))# -> 10

La parola riservatarestituireforza l'interruzione della funzione affinché il risultato sia


ritornato, quindi è abbastanza comune che questo comando sia alla fine della funzione. Anche se
Non essendo obbligatorio, non è una buona pratica interrompere il codice con
umritorna.

Guarda questo esempio:

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

È importante che tu comprenda che questo codice non è necessariamente sbagliato, ma


si crea una complessità che non deve esistere, manteniamo la funzionalità e
riscrivilo per avere solo un'istruzione di ritorno, vedi:

defesempio(valore):
resultado =None
numero = valore * 2

se numero >10:
risultato = numero
altro:
risultato = valore +5

ritorna risultato

In questo modo, centralizziamo la regola nella variabilerisultato, sempre restituendola,


indipendentemente dal valore che le è stato attribuito.

In Python possiamo accorciare un po' questa funzione utilizzando il controllo condizionale


ternario

defesempio(valore):
numero = valore *2
ritorna numero se numero > 10 altrimenti valore + 5

Ora abbiamo un codice molto più corto e semplice!

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.

2. Crea un programma che richieda il nome dell'utente e l'età dell'utente, dopodiché


exiba a mensagem:"{nome} possui {idade} anos.". Esta mensagem deve ser escrita em
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

È fortemente raccomandato che tu provi a fare gli esercizi prima di vedere le


risposte. Puoi trovare le rispostequi.

49
Espressioni Lambda

Capitolo 10 - Espressioni Lambda


Questo è l'ultimo capitolo per l'introduzione alla programmazione utilizzando Python, chiudiamo il
apprendimento con un tipo diverso di funzione: le 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:

soma_lambda =lambdanumero1, numero2: numero1 + numero2

Nota che la sintassi è un po' diversa, utilizziamo la parola riservatalambdaper


dichiarare l'inizio dell'espressione, dopo di che inseriamo i parametri separati da
virgola. Infine, mettiamo il corpo dell'espressione.

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.

Ma e per funzioni senza ritorno? -Nessun problema!

ola =lambda: print('Olá mundo')


Ciao mondo

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.

Facciamo un esercizio utilizzando i concetti che già conosciamo e poi rifacciamolo.


utilizzando espressioni lambda!

Dichiareremo un elenco con diversi numeri diversi, dopodiché lo copieremo


solo i numeri pari per una seconda lista e li visualizzeremo nella console. Tranquillo,
certo?

51
Espressioni Lambda

numeros = [0,2,3,4,5,7]
pares = []
fornumeroinnumeros:
se numero % 2 == 0:
[Link](numero)

# Mostra i numeri
perparens:
stampa(par)

Utilizziamo un ciclo di ripetizione per filtrare la lista che contiene tutti i


numeri per una nuova lista che contenga solo i numeri pari.

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?

Ofiltrarenon è l'unica funzione in grado di eseguire questo tipo di operazione, ma è un buon


esempio per farti capire il potere delle espressioni lambda!

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.

2. Fai un programma che richieda il nome dell'utente e l'età dell'utente, dopodiché


exiba a mensagem:"{nome} possui {idade} anos.". Esta mensagem deve ser escrita em
una funzione 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

È fortemente raccomandato che tu provi a fare gli esercizi prima di vedere le


risposte. Puoi trovare le rispostequi.

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

funzionale, programmazione web, intelligenza artificiale e così via.

Le possibilità sono immense e tutto è più vicino a te ora.

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

Risoluzione degli esercizi

Capitolo 2 - Iniziare con Python


1. Fai un algoritmo che richieda il nome dell'utente e poi scriva il nome della persona nel
console.

nome = input("Qual è il tuo nome? ")


stampa(nome)

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.

idade = int( input("Quantos anos você tem? ") )


maioridade = idade >=18
print(maioridade)

3. Fai un algoritmo che richieda un numero all'utente, dopodiché, scriviVerono


console, caso il numero abbia due cifre (sia tra 10 e 99), altrimenti scrivi
Falso.

numero = int( input("Digite um numero: ") )


due_cifre = numero >= 10 e numero <= 99
stampa(dois_digitos)

Capitolo 3 - Deviazioni condizionali, facendo il tuo


programma prendere decisioni!
1. Fai un algoritmo che richieda 3 voti all'utente, calcoli la media e indichi se il
lo studente è stato approvato o bocciato (il voto deve essere maggiore o uguale a sette per lo studente essere

approvato).

55
Risoluzione degli esercizi

nota1 = float(input("Inserisci la prima nota: "))


nota2 = float(input("Digite a segunda nota: "))
nota3 = float(input("Inserisci il terzo voto: "))
media = ( nota1 + nota2 + nota3 ) /3

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.

ano_nascimento = int (input ("Digite o ano que você nasceu: "))


idade =2018- ano_nascimento

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

idade = int (input("Digite sua idade: "))

se età >= 0 e età <= 11:


Bambino

elifidade >=12eidade <=18:


Adolescente

elifidade >=19andidade <=24:


Giovane

elifidade >= 25 e idade <= 40:


Adulti

elifidade >=41 e idade <=60:


Mezza Età

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).

primeiro_valor = int( input("Digite um valor: "))


segundo_valor = int( input("Digite um valor: "))
print("Primo" if primo_valore > secondo_valore else "Secondo")

Capitolo 4 - Valori None, Stringhe e Introduzione


a Liste
1. Fai un programma che richieda il nome dell'utente e dopo questo fai un saluto.
formato: "Olá {nome digitado pelo usuário}".

nome = input("Digite seu nome: ")


print(f"Ciao {nome}")

2. Fai un programma che richieda un messaggio qualsiasi all'utente e lo visualizzi.


MESSAGGIO CON TUTTE LE LETTERE IN MAIUSCOLO.

mensagem = input ("Digite uma mensagem: ")


print([Link]())

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.

nome_completo = input("Digite seu nome completo: ")


nome_completo_dividido = nome_completo.split(" ")
stampa(nome_completo_dividido[1])

Capitolo 5 - Operazioni con Liste


1. Fai un programma che inizializzi un elenco con i nomi delle persone della tua famiglia.

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 = []

cidade = input("Digite o nome da primeira cidade: ")


città.append(città)

città.append(input("Inserisci il nome della seconda città: "))


città.append(input("Inserisci il nome della terza città: "))
print(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)

Capitolo 6 - Legami di Ripetizione - Parte 1


1. Fai un programma che inizializzi una lista della spesa con 5 articoli diversi ed esegua
tutti utilizzando un ciclo di ripetizione.

itens_compra = ["Arroz","Leite","Ovos","Feijão","Tomate"]
foriteminitens_compra:
stampa(oggetto)

2. Fai un programma che inizializzi e crei un elenco con i valori da 1 a 10 e poi


exiba apenas os números pares.

per numero in intervallo (1, 11):

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)

per operatore in intervallo(1,11):

peroperatore_2inrange(1,11):
risultato = operatore * operatore_2
stampa(f"{operador} X {operador_2} = {risultato}")

Capitolo 7 - Legami di Ripetizione - Parte 2


1. Crea un programma che inizializzi un elenco della spesa con 5 articoli diversi e visualizzi
tutti utilizzando un ciclo di ripetizionewhile .

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

mentre posicao < len(numeros):


print(numeros[posizione])
posizione +=1

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

5. Rimuovi l'istruzionepausae la istruzionecontinuado laço di ripetizione qui sotto:

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

Capitolo 8 - Usa i dizionari!


1. Faça um programa que crie um dicionário para definir um produto, contendo sua
descrizione e il suo prezzo.

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

ifitem_compra["prezzo"] < mais_barato["prezzo"]:


mais_barato = item_compra

indice = indice + 1

print("Prodotto più costoso: ", più_caro["descrizione"],"per", più_caro["prezzo"],"reais"


)
print("Prodotto più economico: ", più_economico["descrizione"], "per", più_economico["prezzo"])
reais

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

Capitolo 9 - Modularizzazione del codice con


Funzioni!
1. Fai un programma che scriva "La mia prima funzione", questa scrittura deve essere realizzata
a partire dalla chiamata di una funzione.

defmia_funziona():
print("La mia prima funzione")

mia_funzione()

2. Fai un programma che chieda il nome dell'utente e l'età dell'utente, dopodiché


mostra il messaggio:{nome} ha {età} [Link] messaggio deve essere scritto in
una funzione.

def descrivere_nome_eta(nome, eta):


print(nome, "ha", eta, "anni.")

nome_digitado = str(input("Digite seu nome: "))


idade_digitada = int(input("Digite sua idade: "))

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.

def moltiplicare(numero1, numero2):


ritorna numero1 * numero2

numero = int(input("Digite o primeiro número: "))


numero2 = int(input("Inserisci il secondo numero: "))
resultado = multiplicar(numero, numero2)
stampa(risultato)

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

defobter_maior(numero, numero2, numero3):


maior =None
se numero > numero2 e numero > numero3:
maior = numero
elif numero2 > numeroandnumero2 > numero3:
maior = numero2
altro:
maior = numero3
returnmaior

defdobrar(numero):
returnnumero *2

numero = int(input("Digite o primeiro número: "))


numero2 = int(input("Inserisci il secondo numero: "))
numero3 = int(input("Digite o terceiro número: "))

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: ") )

def aggiungere_nome_nella_lista(lista, nome):


[Link](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)

Capitolo 10 - Funzioni Lambda

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.

minha_funcao =lambda:print("Minha primeira função")


mia_funzione()

2. Fai un programma che richieda il nome dell'utente e l'età dell'utente, dopodiché


exiba a mensagem:"{nome} possui {idade} anos.". Esta mensagem deve ser escrita em
una funzione lambda.

scrivere_nome_età = lambda nome, età: print(nome, "ha", età, "anni.")


nome_digitado = str(input("Digite seu nome: "))
idade_digitada = int(input("Digite sua idade: "))
scrivere_nome_età(nome_digitato, età_digitata)

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.

moltiplicare = lambdanumero1, numero2: numero1 * numero2

numero = int(input("Digite o primeiro número: "))


numero2 = int(input("Digita il secondo numero: "))
resultado = multiplicar(numero, numero2)
stampa(resultado)

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):

numero = int(input("Digita un numero: "))


[Link](numero)

maiores = filter(lambdanumero: numero >10, numeros)


formaiorinmaiores
stampa(maior)

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)

pares = filter(lambda numero: numero % 2 == 0, numeros)


impari = filtra(lambdanumero: numero %2==1, numeri)
escrever_array(pares)
scrivere_array(dispari)

67

Potrebbero piacerti anche