7 superbi libri Python per ogni livello di abilità

Più un linguaggio di programmazione è popolare o potente, maggiori sono le probabilità di trovare non solo molti libri su di esso, ma una varietà di libri. Poiché Python è cresciuto in popolarità, anche il numero e la varietà dei libri sono stati creati per aiutare le persone a imparare la lingua e padroneggiarne le complessità.

Ecco sette dei migliori libri sulla programmazione con Python, che vanno dalle guide per principianti alla competenza in Power-Python. Che tu abbia appena iniziato o che lavori con Python da un po 'di tempo, molto probabilmente qui c'è un libro per te. Alcuni sono disponibili gratuitamente nelle edizioni online o PDF. 

Automatizza le cose noiose con Python

La maggior parte delle introduzioni ai linguaggi di programmazione, o alla programmazione in generale, sono concettuali. Parlano di programmazione in astratto. Rob Sweigart's  Automate the Boring Stuff with Python  parla della programmazione in particolare: usa un corso in Python come un modo per imparare a trasformare compiti noiosi in script Python scattanti.

Automate  è rivolto ai principianti a Python e all'informatica in generale. Si apre mettendo il lettore a proprio agio con un semplice IDE (l'editor "Mu"), quindi li guida attraverso l'uso di input, controllo di flusso, funzioni, raccolte di oggetti (elenchi, dizionari), convalida di input e corrispondenza di modelli e utilizzo di File.

La seconda metà del libro è più orientata al compito e al progetto. Copre le attività di automazione comuni: lavorare con fogli di calcolo e documenti di testo, inviare e-mail, manipolare immagini e automatizzare le interazioni della GUI.

Ciò che rende  Automate  un prezioso libro per principianti è il modo in cui si inserisce, lungo tutto il percorso, progetti adatti al livello corrente di lezione, come un semplice (anche se verboso) gioco di sasso-carta-forbici per insegnare il controllo del flusso, o un Generatore di Pig Latin per insegnare la manipolazione delle stringhe. Ci vuole anche tempo per mappare, ancora e ancora, come tradurre ciò che vogliamo fare (prima questo, poi questo, poi questo) in ciò che fa il programma.

Automatizza le cose noiose con Python  è disponibile in più formati: un'edizione online gratuita, edizioni ebook e cartacee e un corso Udemy (50 video).

Amazon: //www.amazon.com/Automate-Boring-Stuff-Python-2nd/dp/1593279922

Un byte di Python

"Senza pretese" è la parola migliore per descrivere A Byte of Python di Swaroop Chitlur  . È facilmente la guida più semplice e accessibile a Python in circolazione, se anche una delle meno abbellite. Non usa espedienti, progetti o illustrazioni carine, ma ometterli è anche uno dei suoi maggiori punti di forza: nulla si frappone tra il lettore e le lezioni.

Il libro guida il lettore prima attraverso l'installazione e la configurazione di un'istanza Python, quindi l'uso di REPL e un editor (PyCharm ottiene la maggior parte della copertura lì). Da lì passa attraverso variabili e tipi, operatori, flusso di controllo, funzioni, moduli, strutture dati (comprese le classi, anche se c'è un capitolo completo su OOP), I / O, eccezioni e rapide panoramiche di nozioni come comprensione di elenchi e decoratori.

Il libro presenta alcuni piccoli inconvenienti. Uno è l'organizzazione: input e output vengono gestiti abbastanza tardi, quando la maggior parte dei tutorial lo insegna molto prima. Inoltre, alcuni elementi che meritano di essere inclusi in una panoramica di base di Python, come i gestori di contesto, non sono affatto trattati. Ma nel complesso, il libro è una buona introduzione senza fronzoli alla lingua.

A Byte of Python  è nominalmente disponibile gratuitamente come libro basato sul Web, ma è anche disponibile come download PDF e in copie cartacee stampate. Esistono anche molte traduzioni in lingue diverse dall'inglese.

Amazon (solo Kindle): //www.amazon.com/Byte-Python-Swaroop-CH-ebook/dp/B00FJ7S2JU

Learning Python, 5a edizione

Programming Python, 4a edizione

Per pura completezza e all-in-one, niente batte Learning Python  e  Programming Python di Mark Lutz  . Entrambi i libri sono più di milleseicento pagine  ciascuno , ma non lasciarti spaventare dalle dimensioni: sono pensati per essere digeriti localmente, piuttosto che letti dall'inizio alla fine.

Quasi ogni argomento in Python, a partire da Python 3.3, è trattato in  Apprendimento di Python e trattato in modo approfondito. Se vuoi imparare tutto quello che c'è da sapere sui decoratori, ad esempio, il capitolo su quell'argomento costituisce un mini-corso sull'argomento.

La programmazione di Python  riguarda l'utilizzo di Python per creare applicazioni del mondo reale. Piuttosto che illustrare solo i componenti del linguaggio, esplora la programmazione del sistema, le GUI, i client e i server Internet, i database, l'integrazione con C e molto altro.

Il più grande svantaggio di Learning Python  non è la sua dimensione, ma la sua età. La quinta edizione è uscita nel 2013, coprendo sia Python 3.3 che 2.7, quindi non copre molte delle innovazioni significative introdotte in Python da allora. A partire dal 2016, Lutz non aveva intenzione di aggiornarlo, in parte a causa delle sue documentate difficoltà con l'editore. 

Amazon: //www.amazon.com/Learning-Python-5th-Mark-Lutz/dp/1449355730; //www.amazon.com/Programming-Python-Powerful-Object-Oriented-dp-0596158106/dp/0596158106/

Python ad alte prestazioni: programmazione performante pratica per gli esseri umani

Chiunque sia interessato a rendere Python più veloce o più efficiente dovrebbe aggiungere questo libro alla propria raccolta.

“Python” e “high performance” non vengono spesso pronunciati nello stesso respiro. Ciò che Python ti offre per comodità, ti toglie la velocità grezza a livello di macchina. Ma questo non significa che Python ad alta velocità sia impossibile; come molte cose "impossibili", ci vuole solo un po 'più di lavoro.

High Performance Python: Practical Performant Programming for Humans , di Micha Gorelick e Ian Ozsvald, guida i programmatori Python esperti attraverso tutti i modi in cui il codice Python può essere reso più veloce, dalle semplici ottimizzazioni in puro Python al codice C personalizzato. Il libro inizia con un'immersione nella profilazione delle applicazioni, una competenza chiave per diagnosticare e correggere i problemi di prestazioni con qualsiasi app Python, quindi esplora a loro volta ottimizzazioni specifiche:

  • Modelli di accesso e prestazioni di livello elevato di varie strutture di dati, come elenchi rispetto a dizionari e set.
  • Come possono essere usati i generatori per risparmiare memoria per grandi problemi di calcolo.
  • Utilizzo di matrici e vettori: essenzialmente, un'introduzione all'uso di NumPy e Panda per una matematica più veloce.
  • Utilizzo di Cython, Numba, PyPy e altri compilatori e runtime di terze parti per la velocità a livello di macchina. Una discussione di ciascuno di questi potrebbe occupare un intero libro (nel caso di Cython, lo fa) a sé stante, quindi qui vengono trattati solo i casi d'uso più basilari e comuni. Ma sarai ben preparato per ulteriori apprendimenti.
  • Utilizzo della programmazione asincrona per velocizzare più operazioni dipendenti da I / O.
  • Utilizzo del multiprocessing per evitare il GIL e utilizzo di clustering e code di lavoro per dividere ulteriormente il lavoro.

Viene inoltre ripreso un lungo capitolo con note sulle soluzioni ai problemi di prestazioni di Python nel mondo reale, inclusa la distribuzione di pipeline di apprendimento automatico. La seconda edizione del libro aggiorna il testo per le ultime versioni di Python e include materiale su come lavorare con le GPU.

Amazon: //www.amazon.com/High-Performance-Python-Performant-Programming/dp/1492055026/

Python fluente

Dopo aver imparato le basi, cosa succederà? Python fluente  risponde a questa domanda.

I programmatori che conoscono già abbastanza Python per scrivere i propri programmi spesso hanno difficoltà ad arrivare alla fase successiva: fare uso delle caratteristiche uniche di Python per scrivere software veramente potente.  Fluent Python , di Luciano Ramalho, guida il programmatore attraverso molti aspetti chiave di Python come sfruttato dagli esperti: padronanza del modello di dati Python e "metodi dunder", uso avanzato di raccolte di dati come set e dizionari, creazione di oggetti che funzionano come record (non solo classi, ma chiamate tuple e dataclass), utilizzando funzioni come oggetti, suggerimenti sul tipo e molto altro.

Sebbene parte del materiale (ad esempio, lambda) potrebbe non essere nuovo anche per programmatori Python moderatamente esperti, il libro mostra come questi elementi siano preziosi per i programmatori avanzati. Anche se hai già utilizzato queste funzionalità di Python, il libro ti mostrerà come creare programmi più robusti con esse e come scegliere saggiamente tra alternative simili (ad esempio, struct e memoryviews) per il lavoro avanzato.

Al momento della stesura di questo documento, Fluent Python, 2a edizione  è disponibile come bozza di rilascio anticipato con un abbonamento O'Reilly, oppure può essere preordinato su Amazon.

Amazon: //www.amazon.com/Fluent-Python-Concise-Effective-Programming/dp/1492056359

Pensa a Python

Il sottotitolo di questo libro è "How To Think Like A Computer Scientist", che ti dà un accenno alle intenzioni del libro. Pensa che Python , di Allen B. Downey, è una guida per l'apprendimento di Python rivolta ai principianti assoluti, ma il suo obiettivo più ampio è aiutare il lettore a capire di cosa tratta la programmazione, cosa significa essere un programmatore e perché i programmi per computer funzionano in questo modo loro fanno. Python è solo l'arena in cui vengono esplorate queste idee. Data la facilità con cui Python è da imparare, è una scelta sensata.

Think Python  inizia con concetti formali: cos'è un programma, cosa sono input e output, cosa sono tipi e valori e come i programmi trattano le informazioni in quei termini. Da lì il libro passa a come funzionano le istruzioni e gli ordini di operazione e come le istruzioni possono essere messe insieme in espressioni e funzioni. Gestione delle condizioni e flusso di controllo, iterazione, tipi di raccolta (stringhe, elenchi, dizionari), I / O di file, classi ed ereditarietà, insieme a una serie di utili funzionalità Python etichettate "Goodies", ricevono tutti i capitoli.

Ciò che più attrae di  Think Python , a parte il suo linguaggio chiaro e diretto, è il modo in cui collega costantemente ogni bit di informazione ai temi centrali di come funzionano i computer e i programmi per computer e quali tecniche vengono utilizzate nella programmazione per ottenere ciò che finisce. Per i nuovi arrivati, questo è più importante di quanto potrebbero inizialmente rendersi conto.

Think Python  è disponibile come ebook gratuito in formato PDF o HTML. 

Amazon: //www.amazon.com/gp/product/1491939362