Python är mer populärt än någonsin, och används överallt från back-end webbservrar, till front-end spelutveckling och allt däremellan. Python är ett sant allmänt språk och blir snabbt ett måste-verktyg i arsenalen av någon självrespektiv programmerare.
Men Python är inte populär bara för att den är populär. Det är lätt att lära sig, läser som pseudokod och är orättvis smidig. Att lära sig något nytt språk kan dock vara en skrämmande uppgift, och att hitta rätt ställe och människor att lära av är hälften av slaget. Det är här den här guiden kan hjälpa till. Detta är din plan för att göra Python enkelt, roligt och givande att lära.
Denna artikel erbjuder många resurser, men om du föredrar något mer strukturerat, ger Envato introduktion till Python-kursen dig en omfattande uppsättning videolektioner som snabbt får dig att snabba med Python för bara $ 5.
Vid tidpunkten för detta skrivande finns två huvudversioner av Python i omlopp: Python 2.7 och Python 3.2. Vilket du väljer att lära verkligen spelar ingen roll för mycket, eftersom skillnaderna blir minimala, särskilt för en nybörjare. Men du borde veta att Python 2 har långt, långt mer 3: e support, Python 3 är huvudfokus för utvecklarna som utformar språket. Valet är ditt, men om din kod fungerar annorlunda än en viss handledning, se till att du använder samma Python-version som används i handledningen.
Wikibooks är alltid en bra källa för att lära sig något nytt, och Python är inget undantag. Här hittar du en solid och uppenbar serie guider som lär dig Pythons rep. Det blir inte för tekniskt, och du kan hoppa in i kodning något något användbart och givande ganska snabbt. På grund av detta rekommenderar jag den här webbplatsen som det bästa stället att börja på din Python-resa.
Du hittar inte en bättre informationskälla än den officiella python.org-dokumentationen. Men om du vill hoppa rätt in, som jag är säker på att många av er kommer det kanske inte är det bästa stället att börja.
Innehållet tenderar att vara mer tekniskt än wikibooks, vilket kommer att vara till hjälp senare när du går igenom språket. Men för en nybörjare kan det bara komma i vägen för det som verkligen är ett mycket enkelt och vackert språk.
För nybörjare kommer den största skillnaden mellan Python 2 och Python 3 sannolikt att Python 2 kan använda skriva ut
utan parentes. Python 3 kräver parentes, men det är allt.
TheNewBostons spellistor är alltid bra, och du kan lära dig en hel mängd språk. "Bucky" är en bra instruktör eftersom han slår en riktigt bra balans mellan att vara rolig och samtidigt lätt att lyssna. Jag rekommenderar starkt någon av hans spellistor - särskilt hans Python-spellista. Han antar ingen förkunskaper om programmering och kommer att lämna dig ett tydligt grepp om språket.
Lite närmare hemmet är Giles Lavelles intro till Python. Liksom TheNewBostons serie, antar Lavelle också ingen tidigare programmeringserfarenhet.
Om du vill se några verkliga tillämpningar av dina applikationer eller vill sikta mot webbutveckling med Python, kan den här serien vara den som du vill ha.
Screencast tar dig från ingenting för att bygga en dynamisk hemsida med hjälp av en Python webbram kallad Django.
StackOverflow är inte bara full av "newbie" fel och problem.
ShowMeDo har en enorm katalog över Python-relaterade videor. Medan det kanske inte är den mest användarvänliga upplevelsen runt, sträcker sig videon i nivå från absolut nybörjare till de mest avancerade Python-teknikerna. Det är väl värt att kolla in.
Denna handledning är ganska specifik vad gäller vad du ska lära dig, och jag rekommenderar inte det för en komplett nybörjare. Jag känner emellertid att det är värt att nämna. I den här guiden visar Chris Kiehl dig hur man bygger en mycket intressant Python bot som spelar ett enkelt spel för dig. Handledningen går verkligen för att visa kraften i Python; det kan användas för att göra vardagliga upprepade uppgifter som du kan ha på din dator.
Det är svårt att slå en bra bok när du försöker lära dig något nytt, och med det stora samhället som har utvecklats runt Pythons språket, finns det en mängd gratis högkvalitativa e-böcker att välja mellan. Nedan är en snabb lista över några av de bästa. Du kan ladda ner en gratis e-boksversion för var och en av dem, eller du kan välja att köpa den fysiska boken (eller donera) om du vill stödja författaren, vilket jag är säker på att de verkligen skulle uppskatta.
Trots namnet gör Learn Python The Hard Way att lära sig Python oerhört enkelt - det sätt det är meningen att vara! I den här boken arbetar Zed A. Shaw från grunden och ger dig en detaljerad och omfattande guide till Python utan att komma iväg med den faktiska kodningen. Shaw är informell men grundlig, vilket gör boken en enkel men givande läsning.
Du hittar inte en bättre informationskälla än den officiella python.org-dokumentationen.
Som underrubriken kan föreslå, "Hur tänker du som en datavetenskapare", tänker Think Python lite mer mot den teoretiska sidan av sakerna. Det kan visa sig lite frustrerande för en total nybörjare, men boken är väl värd att läsa med avseende på algoritmsteori och högkoncept.
Om "learning by doing" är din sak, kommer det att bli en givande upplevelse att bygga ditt eget spel! I denna bok antar Al Sweigart ingen förkunskaper om Python och tar dig hela vägen till att bygga ditt eget spel. Med tanke på att boken är inriktad på spelutveckling, kan boken flytta lite snabbt för en total nybörjare. Senare i denna artikel nämner jag en liknande bok av hans var han antar en förkunskaper om Python. Om du känner att du har ett bra grepp om språket, kan hans andra bok vara en bättre resurs för dig.
Om du vill lära dig Python för webbutveckling kommer du förmodligen att använda Django-ramen. Denna bok förutsätter flytande i Python, men det lär Django som om du är en nybörjare till ramen. Django-boken är lika bra som de kommer och kommer att vara ovärderlig för alla utvecklande webbutvecklare.
Om du inte har tillräckligt med att läsa än, eller vill ha en bok om ett specifikt ämne, bör du följa den här länken. Folk över på python.org har följt en omfattande lista med böcker, sorterade efter svårighet och ämne.
Tusentals utvecklare har upplevt varje problem som du är tvungen att möta. StackOverflow är en bra resurs där utvecklare hittar lösningar på sina problem. När du råkar på ett fel som du inte vet hur du åtgärdar, letar du efter StackOverflow. Du kommer sannolikt att hitta en lösning och hur andra människor löste problemet.
Men StackOverflow är inte bara full av "newbie" fel och problem; det finns några riktigt kloka och hjälpsamma människor som använder webbplatsen - lära av dem!
Ta en titt på de dolda funktionerna i Python-tråden, till exempel.
Många av de tips och tricks du ser här kanske inte omfattas av många formella handledningar, men de kommer att vara mycket användbara för mellanliggande till avancerade Python-användare.
Projekt Euler (uttalad "Oil-er", för att rädda dig lite generad senare) är en av mina favoritwebbplatser. Efter att ha gjort ett konto kan du arbeta igenom ~ 400 problem på webbplatsen. Varje problem är cirka 50% matematik och 50% programmering och enligt min mening det mest givande sättet att lära sig mer av något ämne.
Problemen börjar lätt att testa din kunskap om språket, men växa i svårigheter för att utmana även de mest erfarna programmörerna. Så småningom kommer problemets svårighet att tvinga dig att hitta den mest effektiva algoritmen - det vill säga om du inte vill vänta timmar för att beräkna svaret.
Ingenting kommer att göra dig till en programmeringsguiden snabbare än att driva dig för de snabbaste och mest effektiva lösningarna på Project Euler-problemen.
När du spricker ett nytt problem får du tillgång till det här problemets forumtråd där många människor diskuterar sina lösningar och idéer med varandra. Många av lösningarna i senare sidor av tråden kommer att finnas i Python. Detta är verkligen nyckeln till att öka din programprocess. Om det finns någon som har en lösning som är snabbare än din, ta dig tid att analysera den för att se var du kan förbättra din egen lösning. Med tiden kommer du att hämta alla tricks i handeln och öka din Python-kunskap på ett meningsfullt och givande sätt.
Dessutom finns det också några riktigt bra bloggar som arbetar genom Projekt Eulerproblemen i Python. Om du sitter fast på ett problem är det ingen skam att ha en snygg topp vid andra utvecklers arbete, så länge du tänker lära dig av det. Här är två av mina favoriter:
Få saker är mer tillfredsställande än att bygga ditt eget spel.
Få saker är mer tillfredsställande än att bygga ditt eget spel. Det kan vara en brant inlärningskurva, men väl värt det och mycket givande. PyGame är det mest kända spelbiblioteket för Python, och du kommer att kunna hitta många gratis handledning på den. Här är några av de bästa PyGame tutorialsna.
Som med de ursprungliga Python-handledningarna har utvecklarna av PyGame också en egen introdokumentation. Men dessa kan vara alltför tekniska om du vill hoppa rakt in och börja bygga ditt spel. Utvecklarens dokumentation är dock alltid din bästa informationskälla; så jag rekommenderar fortfarande att du blir bekant med webbplatsen.
Den här gratis e-boken från Al Sweigart går genom PyGame-biblioteket, och tar dig från nollkunskap för att bygga ett par spel för dig själv. De enkla spelen kommer att ge dig en perfekt plattform för att starta dina egna projekt, om du är så benägen. Sweigart ger omfattande och detaljerade kommentarer i hela hans kod för att hjälpa dig att lära dig när du går.
Det här är en annan spellista från TheNewBoston. Det tjänar väl som ett intro till PyGame. Det förutsätter ingen kunskap och ger dig en bra känsla för PyGame-biblioteket, men till skillnad från InventWithPython-guiden är det mer till den punkten och kommer inte att ta dig till att göra ditt eget fulla spel.
Python är ett allmänt språk som kan göra nästan vad som helst; så det finns naturligtvis en till synes oändlig tillgång till bibliotek och verktyg där ute. Här är några av de mest populära.
Om du någonsin vill skrapa en HTML för lite information ... BeautifulSoup kommer att göra allt detta för dig och lägga år till ditt liv.
Om du gör något CPU-intensivt arbete, och du upptäcker att Python visar sig vara en flaskhals, kanske du behöver PyPy. PyPy är en alternativ kompilator för Python som verkligen kan påskynda din behandling.
Dessa två går vanligtvis hand i hand (SciPy är beroende NumPy). Om du gör några seriösa nummer som krossar för matematisk eller vetenskaplig forskning, kommer dessa två bibliotek att vara dina bästa vänner. NumPy och SciPy utökar de matematiska funktionerna och egenskaperna hos Python och kan påskynda vissa av dina uppgifter i stor utsträckning.
BeautifulSoup är verkligen vacker. Om du behöver skrapa en HTML-sida för viss information kommer du att känna alltför bra frustrationen och håravfallet som det kan ge. BeautifulSoup kommer att göra allt detta för dig och lägga år till ditt liv. Rekommenderas och roligt att leka med.
Python Image Library (PIL) är ett omfattande bibliotek som är perfekt för att göra med bilder. Om du behöver manipulera en bild, är chansen att PIL kan göra det för dig.
Som tidigare nämnts i artikeln är Django-ramverket vad du förmodligen kommer att använda om ditt mål är webbutveckling. Det är den vanligaste webbramen för Python och har också de mest lärande resurserna.
När du har en anständig grepp om språket är det alltid en viktig färdighet att kunna läsa och förstå andras kod - för att inte tala om att det är ett riktigt bra sätt att lära sig också.
Av denna anledning är öppna källprojekt stora. Github eller Bitbucket är att gå till platser för detta. Oroa dig inte för att människor dömer din kod, du behöver inte bidra direkt. Du är alltid fri att gaffla ett projekt, tinker med det själv och se hur sakerna fungerar. Om du råkar se något som du tror kan förbättras, bra! Gå till det och skicka din förbättring. Det är vad öppen källkod är för.
Jag hoppas att jag har kunnat ge en solid bas av Python kunskap för dig. Om det finns andra intressanta platser som du tycker borde ha ingått i denna kursplan, låt mig veta i kommentarerna nedan för att hjälpa andra!