Imparare a programmare in Python – 9 – Esercitazioni + Creare Eseguibile per Windows

Imparare a programmare in Python – 9 – Esercitazioni + Creare Eseguibile per Windows

Imparare a programmare in Python – 9 – Esercitazioni + Creare Eseguibile per Windows: Soluzione delle esercitazioni e creazione file exe per Windows.

Imparare a programmare in Python

In questa nona parte del corso di base di Python, andremo a risolvere le 2 esercitazioni assegnate nella lezione precedente e vedremo come creare un file eseguibile per Windows.

Se hai perso la lezione precedente e vuoi provare a risolvere le esercitazioni, puoi recuperare l’articolo da questo link.

Esercitazione 1 – Creare una stringa di 10 caratteri

Per la prima esercitazione il testo è:

# ESERCITAZIONE 1:
# Crea un programma con 3 liste, una con lettere minuscole, una con numeri ed una con lettere maiuscole
# Crea una funzione che estrae casualmente un valore da una lista e lo aggiunge ad una stringa creando una stringa da 10 caratteri
# stringa += carattere

Quindi la soluzione è:

import random

lista_minuscole = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m"]
lista_maiuscole = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M"]
lista_numeri = ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
stringa_finale = ""

def estraivalore(lista_minuscole, lista_maiuscole, lista_numeri):
    valore = ""
    for i in range(10):
        lista_scelta = random.randint(1,3)
        if lista_scelta == 1:
            valore += random.choice(lista_minuscole)
        elif lista_scelta == 2:
            valore += random.choice(lista_maiuscole)
        elif lista_scelta == 3:
            valore += random.choice(lista_numeri)
    return valore

def estraivalore_listaunica(lista_minuscole, lista_maiuscole, lista_numeri):
    valore = ""
    lista_unica = [lista_maiuscole, lista_minuscole, lista_numeri]
    for i in range(10):
        lista_scelta = random.choice(lista_unica)
        valore += random.choice(lista_scelta)
    return valore

#stringa_finale += estraivalore(lista_minuscole, lista_maiuscole, lista_numeri)
stringa_finale += estraivalore_listaunica(lista_minuscole, lista_maiuscole, lista_numeri)
print(stringa_finale)
input("Premi un tasto per uscire.")

In questo esempio ho creato 2 funzioni, la prima “estraivalore” tramite l’if controlla quale delle 3 liste viene selezionata casualmente e va ad estrarre un valore dal suo interno.

Nella seconda funzione “estraivalore_listaunica” andiamo a creare una quarta lista che contiene i riferimenti alle 3 liste iniziali, in questo modo evitiamo l’uso dell’if e utilizziamo 2 volte random.choice per estrarre un valore a caso dalla lista.

Esercitazione 2 – Estrarre un determinato numero di parole da una lista

La traccia della seconda esercitazione è:

#ESERCITAZIONE 2:
# Crea un programma con 1 lista di parole
# Quindi crea una funzione che va a creare una frase estraendo a caso le parole da questa lista
# Chiedi all'utente quante parole estrarre
# EXTRA : Impostare un limite per il numero di parole da estrarre - Limite minimo: 3 parole - Limite massimo: 20 parole
# elenco_parole = ["ciao", "sole", "camminare", "strada", "mare", "guardare", "Mario", "Luigi", "verde", "mela"]

In questo caso quindi dovremo andare a creare una lista con delle parole, chiedere all’utente quante parole estrarre dalla lista e quindi andare a generare una stringa composta dalle parole estratte.

Come extra è possibile controllare che l’utente non chieda di generare meno di 3 parole o più di 20.

Quindi la soluzione è:

import random

elenco_parole = ["ciao", "sole", "camminare", "strada", "mare", "guardare", "Mario", "Luigi", "verde", "mela"]
ripetizioni = 0
parola_finale = ""

def genera_frase(elenco_parole, ripetizioni):
    valore = ""
    for i in range(ripetizioni):
        valore += random.choice(elenco_parole) + " "
    return valore

ripetizioni = int(input("Quante parole vuoi generare? Min. 3 - Max. 20: "))
while ripetizioni < 3 or ripetizioni > 20:
    print("Il numero deve essere compreso tra 3 e 20.")
    ripetizioni = int(input("Quante parole vuoi generare? Min. 3 - Max. 20: "))
parola_finale = genera_frase(elenco_parole, ripetizioni)
print(parola_finale)
input("Premi un tasto per uscire.")

Viene utilizzato il while per mantenere un loop finché l’utente non inserisce un valore valido, compreso tra 3 e 20.

Creare un eseguibile per Windows

La creazione di un file eseguibile (exe) per Windows, permette di eseguire i programmi in python anche se sul dispositivo non è installato python o alcune sue librerie.

Infatti tutto il necessario viene inserito all’interno del file eseguibile.

Vediamo come creare un’eseguibile, per cominciare dobbiamo installare lo strumento necessario per creare un file exe.

Dal prompt dei comandi quindi digitiamo:

pip install pyinstaller

Una volta installato pyinstaller assicuriamoci che la cartella in cui si trova sia tra i PATH di Windows per poter eseguire pyinstaller da qualsiasi cartella.

Quindi il secondo passaggio è:

pyinstaller --onefile PERCORSOFILEPYTHON

ad esempio:

pyinstaller --onefile c:\Users\Claudio\Desktop\genera_stringa.py

Generalmente pyinstaller crea una cartella chiamata dist nella cartella utente, comunque nel terminale viene mostrato il percorso della cartella con il file eseguibile.

Video

Scopri di più da ClaudioMasci

Abbonati ora per continuare a leggere e avere accesso all'archivio completo.

Continua a leggere