* Claudio Curci  /  Php developer

7. lezione - Python, il linguaggio d'eccellenza per AI


Entriamo adesso nel vivo del corso conoscendo gli strumenti per mettere le mani in pasta nel mondo AI.

Come mai Python è così usato in ambito AI?

Python è il linguaggio “eletto” per il mondo AI per vari motivi. In primis si tratta di un linguaggio che eccelle in calcoli, statistiche, data analysis; in seconda battuta è stato scelto fin dalle prime fasi di vita del Machine Learning, per cui, man mano che i progetti prendevano piede, nascevano librerie e community di supporto.
Sono proprio librerie come NumPy, Pandas, SciPy, PyTorch e TensorFlow che, svolgendo gran parte del lavoro in C/C++ o CUDA, mettono a disposizione strumenti oggi fondamentali.
Semplificando, possiamo dire che Python si è fatto trovare pronto, al posto giusto nel momento giusto e ne ha ricavato una seconda giovinezza, dopo anni in cui era già stato ampiamente utilizzato in ambito scientifico, sistemistico e web, ma non in modo così popolare. Non è da trascurare il fatto che abbia una sintassi molto semplice.

Quale è la sintassi base di Python?

Per eseguire istruzioni Python va installato l’apposito interprete, presente di default in molte distro Linux. Vediamo qualche esempio sintattico, paragonandolo a PHP, così da capire la differenza.
Partiamo da un ciclo che scorre un array associativo: in PHP possiamo agevolmente eseguire

                $utente = [
                    "nome" => "Mario",
                    "cognome" => "Rossi",
                    "email" => "mario.rossi@example.com"
                ];

                foreach ($utente as $chiave => $valore) {
                    echo $chiave . ": " . $valore . "\n";
                }
            
In Python la sintassi è simile:
                utente = {
                    "nome": "Mario",
                    "cognome": "Rossi",
                    "email": "mario.rossi@example.com"
                }

                for chiave, valore in utente.items():
                    print(f"{chiave}: {valore}")
            
Una differenza essenziale è che in Python l’indentazione fa parte del codice. Non ci sono le parentesi graffe a delimitare il ciclo for: c’è l’indentazione (spazi o tabulazioni che siano, preferibili i fatidici 4 spazi).

Come si usano le classi in Python?

Vediamo un esempio di una classe in PHP:

                    class Utente {
                        private $nome;

                        public function __construct($nome) {
                            $this->nome = $nome;
                        }

                        public function getNome() {
                            return $this->nome;
                        }

                        public function setNome($nome) {
                            $this->nome = $nome;
                        }
                    }

                    // utilizzo
                    $u = new Utente("Mario");
                    echo $u->getNome();

                    $u->setNome("Luca");
                    echo $u->getNome();
                
Con Python:
                class Utente:
                    def __init__(self, nome):
                        self.nome = nome

                    def get_nome(self):
                        return self.nome

                    def set_nome(self, nome):
                        self.nome = nome


                # utilizzo
                u = Utente("Mario")
                print(u.get_nome())

                u.set_nome("Luca")
                print(u.get_nome())
                
Nei metodi di istanza il primo parametro è convenzionalmente chiamato self e rappresenta l’oggetto stesso. L’esempio è puramente didattico; in realtà con Python si preferisce evitare get() e set() ed esporre attributi tramite property.
                class Utente:
                    def __init__(self, nome):
                        self._nome = nome
                    @property
                    def nome(self):
                        return self._nome
                    @nome.setter
                    def nome(self, valore):
                        self._nome = valore
                # utilizzo
                u = Utente("Mario")
                print(u.nome)
                u.nome = "Luca"
                print(u.nome)
                

Come lavora Python con vettori e matematica?

Come vedete, se avete già dimestichezza con altri linguaggi non è difficile passare a Python. Quando si ha a che fare con liste, vettori e matematica, Python mette in campo l’artiglieria pesante. Ecco un esempio:

            nomi = ["Mario", "Luca"]
            eta = [30, 25]
            for nome, anni in zip(nomi, eta):
                print(nome, anni)
            
Stampa in parallelo gli elementi delle due liste. In PHP normalmente si utilizzerebbe un ciclo che sfrutta l’indice degli array oppure funzioni dedicate come array_map().
Oppure guardate cosa si può fare scorrendo una lista:
                numeri = [1, 2, 3, 4]
                doppi = [x * 2 for x in numeri]
            
Elegante e compatto.
Python offre numerose funzioni built-in e, soprattutto, librerie specializzate che semplificano enormemente il lavoro con dati numerici. Quello che vi consiglio è di guardare il codice di qualche progetto AI e, man mano che scorrete il listato, lavorare di reference (o ChatGPT, come preferite).

Dal 1997, il Php a Roma!

Claudio Curci
Da quasi trent'anni mi dedico alla programmazione, con oltre 20 anni di esperienza come freelance. Credo in un approccio al lavoro in cui la competenza si sposa con la serenità, dove le urgenze sono vizi, non virtù. Mi impegno a supportare i clienti con risposte chiare e soluzioni concrete, evitando inutili tecnicismi. "La vera efficienza si trova nella serenità." – Henry David Thoreau
Infocurci Questo sito non utilizza cookie, non mostra nessuna pubblicità e non profila nulla. Navigate serenamente, siete i benvenuti.

Ambienti / piattaforme di sviluppo

Amazon Booking.com CodeIgniter Joomla Magento Moodle Kelkoo Kigo PayPal Symfony Wordpress Airbnb FormaLms Laravel Prestashop Shopify Whatsapp