Programmering

7 fantastiske Python-bøger til alle niveauer

Jo mere populært eller mere kraftfuldt et programmeringssprog, jo bedre er oddsene for ikke kun at finde mange bøger om det, men en mangfoldighed af bøger. Efterhånden som Python er steget i popularitet, er antallet og mangfoldigheden af ​​bøgerne også skabt for at hjælpe folk med at lære sproget og mestre dets indviklinger.

Her er syv af de bedste bøger om programmering med Python, lige fra begyndervejledninger til magt-Python-færdigheder. Uanset om du lige er startet, eller du har arbejdet med Python i nogen tid, er der sandsynligvis en bog her til dig. Et par fås gratis i online- eller PDF-udgaver.

Automatiser de kedelige ting med Python

De fleste introduktioner til programmeringssprog eller til programmering generelt er konceptuelle. De taler om programmering abstrakt. Rob SweigartAutomatiser de kedelige ting med Python taler om programmering i særdeleshed: Det bruger et kursus i Python som en måde at lære at gøre kedelige opgaver til snappy Python-scripts.

Automatisere er sat på begyndere til Python og computing generelt. Det åbner ved at gøre læseren fortrolig med en simpel IDE (“Mu” -editoren), derefter trin gennem brugen af ​​input, flowkontrol, funktioner, objektsamlinger (lister, ordbøger), validering af input og mønstermatchning og arbejde med filer.

Anden halvdel af bogen er mere opgave- og projektorienteret. Det dækker almindelige automatiseringsopgaver: arbejde med regneark og tekstdokumenter, afsendelse af e-mails, manipulering af billeder og automatisering af GUI-interaktioner.

Hvad laverAutomatisere en værdifuld nybegynderbog er, hvordan den undervejs ruller projekter, der passer til det aktuelle lektionsniveau - såsom et simpelt (omend ordentligt) stenpapirsaksspil til undervisning i flowkontrol eller en Pig Latin-generator at lære strengmanipulation. Det tager også tid at kortlægge igen og igen, hvordan man oversætter, hvad vi vil gøre (først dette, så dette, så dette) til, hvad programmet gør.

Automatiser de kedelige ting med Python er tilgængelig i flere formater: en gratis online-udgave, e-bog og trykte udgaver og et Udemy-kursus (50 videoer).

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

En byte af Python

"Uhøjtidelig" er det bedste ord til at beskrive Swaroop Chitlur'sEn byte af Python. Det er let den mest ligefremme og tilgængelige guide til Python rundt, hvis også en af ​​de mindst pyntede. Det bruger ikke gimmicks, projekter eller søde illustrationer, men at udelade dem er også blandt de største styrker: intet kommer mellem læseren og lektionerne.

Bogen guider læseren først gennem opsætning og konfiguration af en Python-forekomst, derefter brugen af ​​REPL og en editor (PyCharm får det meste af dækningen der). Derfra går det gennem variabler og typer, operatorer, kontrolflow, funktioner, moduler, datastrukturer (inklusive klasser, selvom der er et komplet kapitel om OOP), I / O, undtagelser og hurtige oversigter over forestillinger som listeforståelse og dekoratører.

Bogen har et par små ulemper. Den ene er organisation: Input og output håndteres ret sent, når de fleste tutorials lærer det meget tidligere. Nogle elementer, der fortjener at være i en grundlæggende Python-oversigt, som kontekstadministratorer, er slet ikke dækket. Men som helhed er bogen en god introduktion til sproget.

En byte af Python er nominelt tilgængelig gratis som en webbaseret bog, men er også tilgængelig som PDF-download og i trykte papirkopier. Der findes også mange oversættelser til andre sprog end engelsk.

Amazon (kun fænge): //www.amazon.com/Byte-Python-Swaroop-C-H-ebook/dp/B00FJ7S2JU

Learning Python, 5. udgave

Programming Python, 4. udgave

For ren forståelse og alt-i-én-ness slår intet Mark Lutz'sLæring af Python ogProgrammering af Python. Begge bøger er over seksten hundrede siderhver, men lad ikke størrelsen skræmme dig - de er beregnet til at blive fordøjet topisk snarere end at læse ende-til-ende.

Næsten hvert emne i Python, som i Python 3.3, er dækket afLæring af Pythonog dækket af udtømmende dybde. Hvis du f.eks. Vil lære alt, hvad der er at vide om dekoratører, udgør kapitlet om dette emne et minikursus om emnet.

Programmering af Python handler om at bruge Python til at opbygge virkelige applikationer. I stedet for blot at illustrere sprogets komponenter, udforsker det systemprogrammering, GUI'er, internetklienter og servere, databaser, integration med C og meget mere.

Den største ulempe ved Læring af Python er ikke dens størrelse, men dens alder. Den 5. udgave kom ud i 2013 og dækkede både Python 3.3 og 2.7, så det dækker ikke mange af de vigtige innovationer, der er rullet ind i Python siden da. Fra 2016 havde Lutz ingen planer om at opdatere det, delvis på grund af hans dokumenterede vanskeligheder med udgiveren.

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

High Performance Python: Praktisk performant programmering til mennesker

Enhver, der er fjernt interesseret i at gøre Python hurtigere eller mere effektiv, skal føje denne bog til deres samling.

"Python" og "høj ydeevne" tales ikke ofte i samme åndedrag. Hvad Python giver dig bekvemt, tager det væk i rå hastighed på maskinniveau. Men det betyder ikke, at højhastigheds-Python er umulig; ligesom mange "umulige" ting, tager det bare lidt mere arbejde.

High Performance Python: Praktisk performant programmering til mennesker, af Micha Gorelick og Ian Ozsvald, går erfarne Python-programmører gennem alle de måder, Python-kode kan laves hurtigere på, fra enkle pure-Python-optimeringer til rullende brugerdefineret C-kode. Bogen begynder med et dyk i applikationsprofilering, en nøglefærdighed til at diagnosticere og rette præstationsproblemer med enhver Python-app og udforsker derefter specifikke optimeringer igen:

  • Adgang til mønstre og big-O ydeevne for forskellige datastrukturer, såsom lister versus ordbøger og sæt.
  • Hvordan generatorer kan bruges til at spare hukommelse til store beregningsproblemer.
  • Brug af matricer og vektorer - i det væsentlige en introduktion til brug af NumPy og Pandas til hurtigere matematik.
  • Brug af Cython, Numba, PyPy og andre tredjeparts kompilatorer og driftstider til hastighed på maskinniveau. En diskussion af hver af disse kunne besætte en hel bog (i Cythons tilfælde gør den det også) for sig selv, så kun de mest basale og almindelige brugssager er dækket her. Men du vil være godt forberedt på videre læring.
  • Brug af asynkron programmering til at fremskynde flere I / O-afhængige operationer.
  • Brug af multiprocessing for at undgå GIL og brug af klyngedannelse og jobkøer for yderligere at opdele arbejdet.

Et langt kapitel tages også op med noter om løsninger på Python-præstationsproblemer i den virkelige verden, herunder implementering af maskinlæringsrørledninger. Den anden udgave af bogen opdaterer teksten til de nyeste versioner af Python og indeholder materiale til arbejde med GPU'er.

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

Flydende Python

Når du har mestret det grundlæggende, hvad næste?Flydende Python besvarer det spørgsmål.

Programmører, der allerede kender nok Python til at skrive deres egne programmer, kæmper ofte med at komme til næste trin: at bruge Pythons unikke funktionssæt til at skrive virkelig kraftfuld software.Flydende Python, af Luciano Ramalho, går programmereren gennem mange nøgleaspekter af Python som eksperterne udnytter: mastering af Python-datamodellen og "dunder-metoder", avanceret brug af datasamlinger som sæt og ordbøger, hvilket skaber objekter, der fungerer som optegnelser , men navngivne tupler og dataklasser), ved hjælp af funktioner som objekter, type antydning og meget mere.

Mens noget af materialet (f.eks. Lambdas) måske ikke er nyt for selv moderat erfarne Python-programmører, viser bogen, hvordan disse elementer er værdifulde for avancerede programmører. Selvom du har brugt disse Python-funktioner før, vil bogen vise dig, hvordan du bygger mere robuste programmer med dem, og hvordan du klogt vælger mellem lignende alternativer (f.eks. Strukturer og hukommelsesvisninger) til avanceret arbejde.

I skrivende stund Fluent Python, 2. udgave er tilgængelig som et tidligt frigivelsesudkast med et O'Reilly-medlemskab, eller det kan forudbestilles på Amazon.

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

Tænk Python

Underteksten til denne bog er "How To Think Like A Computer Scientist", som giver dig et strejf af bogens intentioner. Tænk Python, af Allen B. Downey, er en guide til at lære Python rettet mod samlede begyndere, men dets større mål er at hjælpe læseren med at forstå, hvad programmering handler om, hvad det betyder at være programmør, og hvorfor computerprogrammer fungerer som de gør . Python er bare arenaen, hvor disse ideer udforskes. I betragtning af hvor let Python er at lære, er det et fornuftigt valg.

Tænk Python begynder med formelle begreber - hvad er et program, hvad er input og output, hvad er typer og værdier, og hvordan programmer håndterer information i disse termer. Derefter går bogen videre til, hvordan udsagn og driftsordrer fungerer, og hvordan udsagn kan sammenføjes til udtryk og funktioner. Tilstandshåndtering og kontrolflow, iteration, samlingstyper (strenge, lister, ordbøger), fil I / O, klasser og arv sammen med en række nyttige Python-funktioner mærket "Goodies" modtager alle deres egne kapitler.

Hvad er mest tiltalendeTænk Pythonbortset fra det klare og direkte sprog, er det, hvordan det konstant relaterer hver bit information til de centrale temaer i, hvordan computere og computerprogrammer fungerer, og hvilke teknikker der bruges til programmering for at opnå det, der ender. For nybegyndere er dette vigtigere end de måske i første omgang var klar over.

Tænk Pythoner tilgængelig som en gratis e-bog i PDF- eller HTML-format.

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