Blog

5 Esercizi Python per skillarti

La programmazione è una pratica che richiede esercizio e dedizione, che tu sia alle prime armi o che sia ormai esperto di un determinato linguaggio. Prima ancora di cimentarsi in progetti più complessi bisogna avere una certa dimestichezza con le strutture e i tipi di dato di un determinato linguaggio di programmazione.

Se vogliamo imparare a programmare in Python esercitarsi è sempre una buona scelta, visto che la sintassi del linguaggio Python si distingue da quella degli altri linguaggi di programmazione ad oggetti. Programmare con Python vuol dire padroneggiare uno dei linguaggi di programmazione più usati degli ultimi anni, grazie anche a cosa si può fare con Python: sviluppo web, automazione dei task, analisi dei dati, data visualization, algoritmi di intelligenza artificiale, machine learning, game development, e la lista potrebbe continuare. 

Questi i motivi per cui ad oggi programmare in Python è un requisito molto richiesto dalle software house. Ma per imparare Python bisogna esercitarsi, su quelli che sono i fondamentali del linguaggio.

Per farlo vedremo una serie di 5 esercizi Python, di difficoltà graduale, per testare le tue capacità a livello di comprensione del codice e dei costrutti del linguaggio.

A fine articolo troverai le soluzioni…ma non sbirciare!

  1. Scrivi un programma in Python per estrarre valori da un dizionario noto e crea una lista di liste da questi valori.
  2. Scrivi un programma Python per trovare quattro numeri interi pari positivi la cui somma è un dato numero intero. Esempio – input: n = 100 output: [94,2,2,2]
  3. Scrivi una funzione Python per rimuovere i duplicati da una lista preservando l’ordine degli elementi al suo interno.
  4. Scrivi una classe Python per implementare la funzione elevazione_potenza(x,n) (in modo più formale pow(x,n)).
  5. Scrivi una funzione in Python che prende due stringhe, conta il numero di volte che ogni stringa contiene gli stessi tre caratteri allo stesso indice. Stampa l’output.

Svolgendo questi 5 esercizi potrai skillarti non solo sui potenti tipi di dato, ma anche sul ciclo for in Python o sulle definizioni di tipi di oggetti, come le classi, caratteristica chiave della programmazione orientata agli oggetti. Prova a svolgere autonomamente questi brevi esercizi mettendo alla prova le tue conoscenze in Python!

Soluzioni:

  1. Essere abili con il linguaggio Python vuol dire padroneggiare liste e dizionari, due potenti tipi di dato. In questo esercizio è cruciale focalizzarsi sul concetto di chiave-valore insito nel dizionario Python.
def test(dictt,keys):
    return [list(d[k] for k in keys) for d in dictt] 
students = [
        {'student_id': 1, 'name': 'Jean Castro', 'class': 'V'}, 
        {'student_id': 2, 'name': 'Lula Powell', 'class': 'V'},
        {'student_id': 3, 'name': 'Brian Howell', 'class': 'VI'}, 
        {'student_id': 4, 'name': 'Lynne Foster', 'class': 'VI'}, 
        {'student_id': 5, 'name': 'Zachary Simon', 'class': 'VII'}
]
print("\nOriginal Dictionary:")
print(students)
print("\nExtract values from the said dictionarie and create a list of lists using those values:")
print("\n",test(students,('student_id', 'name', 'class')))
print("\n",test(students,('student_id', 'name')))
print("\n",test(students,('name', 'class')))

 

  1. Il ciclo for in Python si differenzia da quelli degli altri linguaggi di programmazione. Grazie a questo esercizio puoi fissare questo concetto in maniera netta, implementando dei cicli for innestati per ottenere l’output desiderato. La funzione find_positives prende un numero intero in input e tramite una serie di for individua i 4 numeri interi positivi svolgendo un calcolo con l’operatore %, detto operatore modulo. Viene utilizzato per ottenere il resto di una divisione.
def find_positives(n):
    for i in range(n, 0, -1):
        if not i % 2 == 0:
            continue
        for k in range(n - i, 0, -1):
            if not k % 2 == 0:
                continue
            for j in range(n - k - i, 0, -1):
                if not j % 2 == 0:
                    continue
                for d in range(n - k - j - i, 0, -1):
                    if not d % 2 == 0:
                        continue
                    if i + k + j + d == n:
                        return [i, k, j, d]
 
n = 100
print("Four positive even integers whose sum is",n)
print(find_positives(n))
n = 1000
print("\nFour positive even integers whose sum is",n)
print(find_positives(n))
n = 10000
print("\nFour positive even integers whose sum is",n)
print(find_positives(n))
n = 5000
print("\nFour positive even integers whose sum is",n)
print(find_positives(n))

 

  1. Le liste sono un costrutto molto potente, in questo esercizio sarà fondamentale servirsi dei metodi liste Python, messe a disposizione dal linguaggio per modellarne gli elementi. Il metodo dict.fromkeys ritorna un dizionario con le chiavi e i valori specificati come argomento, in questo caso la lista passato come argomento alla funzione remove_duplicates.

 

16.

def remove_duplicates(lst):
    return list(dict.fromkeys(lst).keys())
 
nums = [2,4,3,5,4,6,9,2,1]
print("Original lists:")
print(nums)
result = remove_duplicates(nums)
print("Remove duplicates from the said list while preserving the order:")
print(result)
chars = ['b','a', 'a', 'c', 'c', 'c','d','e','a', 'b', 'b', 'b']
print("\nOriginal lists:")
print(chars)
result = remove_duplicates(chars)
print("Remove duplicates from the said list while preserving the order:")
print(result)
  1. Le classi rappresentano una caratteristica identificativa dei paradigmi ad oggetti. Python nonostante si differenzi molto dagli altri linguaggi ad oggi, ne eredita le particolarità. In questo codice Python vedremo l’utilizzo di una classe per definire al suo interno una funzione. Da notare che per richiamare la funzione pow bisogna istanziare la classe nel print.
class py_squared:
   def pow(self, x, n):
        if x==0 or x==1 or n==1:
            return x 
        if x==-1:
            if n%2 ==0:
                return 1
            else:
                return -1
        if n==0:
            return 1
        if n<0:
            return 1/self.pow(x,-n)
        val = self.pow(x,n//2)
        if n%2 ==0:
            return val*val
        return val*val*x
 
print(py_ squared ().pow(2, -3));
print(py_ squared ().pow(3, 5));
print(py_ squared ().pow(100, 0));

23.  

 

  1. La modellazione delle stringhe è una pratica molto utile nella programmazione. In questo breve script sfrutteremo il for in range di Python per iterare su una grandezza specifica in modo tale da poter controllare, tramite l’indice del for, se le tre lettere vengono ripetute all’interno delle due stringe passata in input alla funzione.
def compare_chars(str1, str2):
          count = 0
          for i in range(len(str1) - 2):
                      if str1[i:i+3] == str2[i:i+3]:
                                  count += 1
          return count
str1 ="Formula One"
str2 ="For Each Python"
print("Original strings:", str1, str2)
print("Check said two strings contain three letters at the same index:")
print(compare_chars(str1, str2))
str1 ="Red White"
str2 ="Red White"
print("Original strings:", str1, str2)
print("Check said two strings contain three letters at the same index:")
print(compare_chars(str1, str2))
str1 ="Red White"
str2 ="White Red"
print("Original strings:", str1, str2)
print("Check said two strings contain three letters at the same index:")
print(compare_chars(str1, str2))  

 

Gli esercizi di coding sono un aspetto determinante nell’apprendimento di un linguaggio di programmazione. È importante esercitarsi, in quanto si rivela molto utile per poter vedere con i propri occhi il funzionamento di determinate funzioni built-in o costrutti che concettualmente sono molto astratti. 

Per imparare Python bisogna avere la pazienza di esercitarsi, ma anche di sbagliare. E tu sei riuscito a completare tutti gli esercizi?

 

Articoli correlati

Il linguaggio HTML (Hypertext Markup Language) è uno dei più conosciuti e diffusi: lo si trova infatti praticamente in tutte le pagine web esistenti. È una scelta popolare tra i principianti che si…
Essere uno sviluppatore web vuol dire imparare più linguaggi di programmazione per poter creare diversi tipi di applicazioni.  Per ogni applicazione, la maggior parte delle volte, …
Un buon programmatore, si sa, necessita di un ampio bagaglio di conoscenze per potersi districare tra le difficoltà che questo mestiere comporta. Oggi le richieste sul mercato sono molteplic…
Il settore tech è appannaggio esclusivo della popolazione maschile? Questo preconcetto è abbastanza diffuso, ma come stanno davvero le cose? Oggigiorno il mondo tech, non solo in Italia, è in gran …
Offrire agli utenti di un sito o di un’applicazione un’esperienza di utilizzo positiva è cruciale per creare un prodotto che soddisfi le aspettative del committente. Ecco perché, tra le mansion…
Valutare in modo accurato i tempi di lavoro è un fattore importante per mantenere alta la produttività del team e completare progetti nei tempi prestabiliti. È utile, inoltre, per tenere aggiornati…

Seguici su Facebook

Scopri di più sul corso Hackademy

Inizia la tua nuova carriera nel mondo digital e tech.

Candidati ora

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.

Pagamento rateale

Valore della rata: A PARTIRE DA 112 €/mese.

Esempio di finanziamento  

Importo finanziato: € 2440 in 24 rate da € 112 – TAN fisso 9,37% TAEG 12,57% – importo totale del credito € 2788,68.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/07/2023 al 31/12/2023.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 183 €/mese.

Esempio di finanziamento 

Importo finanziato: € 3990 in 24 rate da € 183 – TAN fisso 9,37% TAEG 12,57% – importo totale del credito € 4496,56.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/07/2023 al 31/12/2023.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.