- Pythoni õige seadistamine Windowsis väldib probleeme radade, aliaste ja versioonidega.
- Interaktiivne interpreter ja .py-failid teevad koodi testimise ja päris programmide loomise lihtsaks.
- Pythoni süntaks, dünaamiline tippimine ja kohustuslik taane soodustavad loetavat koodi.
- Sisseehitatud abi ja veebiressursid võimaldavad teil Pythoni iseseisvalt õppimist jätkata.

Kui proovid Pythoni Windowsis õppida ja ei tea, kust alustada , siis pole sa üksi. Mis tahes programmeerimiskeele õppimise kõige keerulisem osa pole tavaliselt kood ise, vaid pigem installimise, tööriistade ja esialgsete testide väljaselgitamine. Süsteemiteede, teostusaliaste ja erinevate Pythoni versioonide vahel on lihtne pettuda juba enne oma esimese `print()` kirjutamist.
See artikkel pakub üksikasjalikku, praktilist ja nüansirikast juhendit Pythoni õppimiseks Windowsis nullist alates: kuidas seda õigesti installida, kuidas vältida levinud teekonnaprobleeme, mis on interpreter, kuidas programme kirjutada ja käivitada, kuidas oma koodi mooduliteks korraldada ja kuidas õppimist kasulike ressursside abil jätkata . Kõik on selgitatud selges ja arusaadavas keeles, jätmata välja ühtegi olulist mõistet.
Miks on Pythoni kasutamise alustamine nii raske (eriti Windowsis)?
Paljud inimesed nõustuvad, et esimene peamine takistus Pythoni õppimisel ei ole süntaks ega programmeerimispõhimõtted, vaid midagi palju põhilisemat: teadmine, kuhu klõpsata ja mida installida. Teie sarnased kasutajad räägivad väga sarnaseid lugusid: nad proovivad luua virtuaalse keskkonna, et kasutada Pythoni vanemat versiooni, nad mässavad Windowsi sätetega, nad desinstallivad Pythoni õpetuse järgi ja äkki ei tunne süsteem enam ära ühtegi Pythoni käsku.
Üks segasemaid aspekte on teede ja keskkonnamuutujate küsimus . Miks peab märkima ruudu „Lisa Python teele“? Mida tähendab, et Windows ei leia käsku? Mis on täpselt valiku „Rakenduse käivitamise aliaste haldamine“ eesmärk? Kellegi jaoks, kes soovib lihtsalt paar andmeanalüüsi skripti käivitada , võib see tunduda täiesti ebavajalik ja isegi absurdne.
Neil esialgsetel väikestel tüsistustel on aga seletus: Windows peab teadma, kuhu Pythoni interpreter on installitud , et seda mis tahes käsurealt käivitada. Kui see tee pole keskkonnamuutujas PATH, näete vigu, näiteks "pythonit ei tuvastata sisemise ega välise käsuna". Ja kui lisaks on traditsiooniliste installidega segamini Microsoft Store'i aliased, muutuvad asjad veidi keerulisemaks.
Hea uudis on see, et kui olete sellest esialgsest installimis- ja seadistamisfaasist mööda saanud, on Python väga kasutajasõbralik ja paindlik . Seetõttu kasutavad paljud ettevõtted (sealhulgas Google) seda sissejuhatava programmeerimiskeelena ning algajatele on olemas spetsiaalsed kursused , mis juhatavad teid samm-sammult olukorrast „mul pole aimugi“ kasulike ja loetavate programmide kirjutamiseni.
Pythoni installimine Windowsi ilma hulluks minemata
Pythoni Windowsi korralikuks õppimiseks on parim viis installida ametlikult veebisaidilt või usaldusväärsest allikast Python 3 uusim versioon ja vältida vanemaid või segatud installimisi, mis võivad esineda. See vähendab paljusid levinud konflikte.
Kui käivitate Pythoni installija Windowsis, näete olulist märkeruutu: "Lisa Python teele". Selle ruudu märkimine on tungivalt soovitatav, kuna see lisab interpreteri tee automaatselt teie süsteemi keskkonnamuutujatele. See tähendab, et käsuviiba (CMD või PowerShell) avamisel saate lihtsalt tippida `python` või `python3` ilma installikausta meeles pidamata.
Teine segadust tekitav punkt on Windowsi valik „Halda rakenduste käivitamise aliase” . See funktsioon võimaldab teil seostada teatud käske (nt python.exe) Microsoft Store'ist installitud rakendustega. Kui kasutate Store'ist pärit Pythoni ja installite ka teise versiooni saidilt python.org, võib Windows ühe või teise käivitada ettearvamatul viisil. Probleemide vältimiseks on kõige parem kasutada ühte hästi konfigureeritud Python 3 peamist installi ja vaadata need aliased üle, et vältida konflikte.
Kui desinstallite Pythoni õpetuse järgimise ajal ja süsteem seejärel käsku enam ei tuvasta, ärge paanitsege: tavaliselt lahendab probleemi lihtsalt Python 3 uuesti installimine ja PATH keskkonnamuutuja kastikese uuesti märkimine. Sellest ajast alates peaksite saama luua virtuaalseid keskkondi, installida teeke ja käivitada skripte tavapäraselt.
Mis täpselt on Pythoni interpreter ja kuidas seda kasutada
Üks parimaid viise Pythoni toimimise tõeliseks mõistmiseks on käivitada interaktiivne interpreter ja kirjutada koodi otse sinna. Interpreter on programm, mis loeb teie juhiseid rida-realt, käivitab need koheselt ja kuvab tulemuse. Windowsis tehakse seda tavaliselt PowerShelli või CMD avades ja tippides:
Python või Python 3
Kui kõik läheb hästi, näete midagi päise taolist Pythoni versiooniga, millele järgneb kutse sümbol, näiteks >>> . See näitab, et olete interpretaatori sees ja saate hakata proovima väga lihtsaid asju : väärtuste määramist, liitmist, stringidega manipuleerimist jne.
Näiteks võiksite kirjutada midagi sellist: a = 6 ja seejärel järgmisele reale lihtsalt kirjutada a . Interpretaator väljastab sellesse muutujasse salvestatud väärtuse, antud juhul 6. Samuti saate seda muutujat probleemideta ümber defineerida, näiteks muutes a = 'hello' ja seejärel kasutada funktsioone nagu len(a), et näha, mitu märki stringis on.
See töömeetod sobib ideaalselt katsetamiseks ja kiiretele küsimustele, näiteks "mis juhtub, kui lisan loendisse numbri?" või "mis juhtub, kui ühendan stringi täisarvuga?", vastamiseks. Kui proovite midagi ebaloogilist, näiteks "hello" + 3, näitab interpreter teile veateadet, mis selgitab, mis valesti läks (näiteks TypeError, mis näitab, et te ei saa stringi ja täisarvu liita). Ja kui teete nimega vea ning kirjutate muutuja, mida te pole kunagi defineerinud, saate NameErrori, mis hoiatab teid, et identifikaator pole defineeritud.
Windowsi interpreteri sulgemiseks võite kasutada klahvikombinatsiooni CTRL+Z, millele järgneb Enter , või tippida ka exit() või quit(). See viib teid tagasi Windowsi käsureale ja võimaldab teil jätkata muude toimingutega, näiteks .py-failidesse salvestatud skriptide käivitamisega.
Oma esimese programmi kirjutamine: .py-failid ja selle käivitamine Windowsis
Lisaks interpretaatoriga katsetamisele tekib varem või hiljem soov oma Pythoni koodi failidesse salvestada , et seda uuesti kasutada, jagada või erinevate argumentidega käivitada. Pythoni programmid salvestatakse tavaliselt failidesse laiendiga .py ja neid nimetatakse mooduliteks. Näiteks saate luua faili nimega hello.py mis tahes korraliku tekstiredaktoriga (VS Code, Notepad++ jne).
Selle faili sees saate kirjutada väikese programmi, mis saab käsurealt argumendi ja kasutab seda, näiteks:
impordi süsteem
def main():
print('Tere,', sys.argv)
if __name__ == '__main__':
peamine ()
Selles skeemis impordite sys mooduli, et pääseda ligi sys.argv failile , mis on konsoolist programmile edastatavate argumentide loend. Esimene element (indeks 0) on skripti nimi ja alates indeksist 1 ilmuvad teie määratud väärtused. Funktsioon main() prindib tervituse, millele järgneb edastatud argument.
Selle faili käivitamiseks Windowsis avage terminal, navigeerige kausta, kuhu salvestasite hello.py (kasutades käsku `cd`) ja tippige midagi sellist: `python hello.py Ana` . Kui kõik on õigesti konfigureeritud, näete ekraanil teadet "Hello, Ana". See lihtne näide aitab teil juba aru saada, kuidas Python tõlgendab .py-faili ülalt alla , kuidas importida mooduleid ja kuidas käivitada põhiloogikat tavaliselt kasutatava mustriga `if __name__ == '__main__'`.
Python kui keel: dünaamiline, interpreteeritav ja paindlik
Python on dünaamiline, interpreteeritav ja väga paindlik keel . See tähendab, et muutujate tüüpe ei deklareerita jäigalt nagu Javas või C++-s: defineerimisel ei pea määrama, kas tegemist on täis-, string- või bool-tüüpi muutujaga; lihtsalt omistatakse väärtus ja interpreter tegeleb tüübiga käitusajal.
See paindlikkus muudab koodi lühemaks ja paljudel juhtudel hõlpsamini loetavaks ja kirjutatavaks . Sama muutujat `a` saab kasutada esmalt numbri ja seejärel stringi salvestamiseks ning Python ei kurda seni, kuni teie sooritatavad toimingud on mõistlikud. Siiski loobute kompileerimise ajal tüübikontrollist, seega avastatakse mõned vead alles siis, kui täitmine jõuab selle konkreetse reani.
Näiteks kui sul on funktsioon `main()`, mis teatud juhul kutsub esile valesti kirjutatud funktsiooni (näiteks `repeeeet` asemel `repeat`), siis Python ei tuvasta viga enne, kui jõuab käitusajal selle rea juurde ja proovib valet nime esile kutsuda. Kuni see koodiosa pole käivitatud, võib programm näida laitmatult töötavat. Sama kehtib ka muutuja kohta, mida pole kunagi initsialiseeritud: interpretaator viskab vea `NameError` ainult siis, kui proovitakse lugeda selle väärtust.
Python 3 maailmas lisati "tüübivihjed" , mis võimaldavad teil märkida argumente ja funktsioonide tagastusväärtusi oodatavate tüüpidega, näiteks `def is_positive(n: int) -> bool:`. Need märkused on täiesti valikulised, kuid need võimaldavad edasijõudnutel redaktoritel, nagu VS Code või staatilise analüüsi tööriistad, teie kõnesid kontrollida ja teid hoiatada, kui midagi ei vasta näidatud tüübile.
Kuigi see artikkel ei süvene tüübisoovitustesse sügavalt, tasub teada, et need on olemas ja et üha rohkem tänapäevaseid Pythoni projekte neid kasutusele võtab. Kui soovite arendada robustset koodi suures mahus, on need väga kasulikud tööriistad, eriti meeskondades, kus mitu inimest töötavad samade moodulite kallal.
Pythoni funktsioonid: dokumentatsioonistringid, operaatorid ja parimad tavad
Pythonis defineeritakse funktsioonid märksõnaga `def` , millele järgneb nimi, sulgudes olevad parameetrid ja koolon. Funktsiooni keha on taandatud tühikutega. Tüüpiline näide oleks funktsioon, mis kordab stringi mitu korda ja lisab valikuliselt hüüumärke.
Kontseptuaalselt võiks midagi sellist olla funktsioon `repeat(text, exclamation)`, mis loob tulemuse argumendi `text` mitu korda liites. Selle sees saaks kasutada operaatorit `+` stringide ühendamiseks või operaatorit `*` nende teatud arv kordi kordamiseks. Näiteks `'hello' * 3` annab tulemuseks `hellohellohello'`, samas kui `'-' * 10` tekitab sidekriipsu: `'———-''.
Jõudluse osas öeldakse sageli, et stringide kordamine operaatori * abil võib olla efektiivsem kui nende mitu korda + abil liitmine, sest tulemuse suurust arvutatakse ainult üks kord, mitte ei suurendata järk-järgult. Väikestes õppimisprogrammides seda vaevu märkate, kuid see on teadmist väärt, sest see on osa keele ülesehitusest.
Teine huvitav funktsioon on docstrings ehk dokumentatsioonistringid, mida saab paigutada funktsiooni definitsiooni algusesse. Tavaliselt kirjutatakse need kolmekordsete jutumärkidega ("" ... ""), et võimaldada mitut lõiku, ning need selgitavad, mida funktsioon teeb, milliseid argumente see saab ja mida see tagastab. Neid kirjeldusi kuvab `help()` hiljem, kui soovite oma funktsiooni dokumentatsiooni vaadata.
Funktsiooni sees deklareeritavad muutujad on selle funktsiooni suhtes lokaalsed, mis tähendab, et need ei mõjuta samanimelisi muutujaid väljaspool seda ega teistes funktsioonides. Helistajale tagastatav väärtus määratakse `return`-lausega, millele võivad järgneda tagastatavad andmed. Kui sa ei kasuta `return`-lauset või kutsud funktsiooni välja ilma väärtuseta, tagastab see väärtuse `None`.
Väga levinud muster on defineerida mitu abifunktsiooni ja faili lõpu lähedal luua main() funktsioon , mis juhib teiste kasutamist. Seejärel asetatakse faili lõppu tüüpiline if __name__ == '__main__': main() plokk, mis vastutab selle peafunktsiooni kutsumise eest ainult siis, kui faili käivitatakse otse, mitte siis, kui see imporditakse moodulina mujalt.
Taande olulisus Pythonis (ja miks tabulaatoreid vältida)
Üks omadus, mis teistest keeltest tulijaid kõige enam üllatab, on see, et Pythoni taane ei ole dekoratiivne; see on süntaks . Looksulge {} ei kasutata koodiplokkide piiritlemiseks; selle asemel kasutatakse taande taset: kõigil ridadel, mis jagavad sama plokki (funktsioon, if-lause, tsükkel jne), peab olema täpselt sama taane.
Kui ploki üks rida sisaldab erineval arvul tühikuid , käsitleb interpretaator seda süntaksiveana. Seetõttu on nii oluline seadistada redaktor nii, et see kasutaks tühikute asemel tabulaatoreid. Tabulaatoreid saab erinevates redaktorites või süsteemides tõlgendada erineva laiusega, mis põhjustab visuaalseid vastuolusid ja vigu, mida on väga raske leida.
Pythoni ametlik stiilijuhend (PEP 8) soovitab kasutada nelja tühikut taandetaseme kohta . Mõned organisatsioonid, näiteks Google oma sisemistes juhistes, kasutavad teatud kontekstides kahte tühikut, kuid kui alles alustate, peaksite jääma nelja tühiku juurde, mis on kõige levinum standard.
Kuigi alguses võib tunduda kummaline, et tühikud on nii olulised, hindate seda aja jooksul: see sunnib koodi õigesti joondama, parandab loetavust ja hoiab ära kaootiliste plokkide tekkimise, mis on täidetud lokkis sulgudega. Kui töötate Windowsis hea redaktoriga (näiteks Visual Studio Code), konfigureerige lihtsalt „tühikute lisamine Tab-klahvi vajutamisel” ja lubage ehk automaatne vormindamise kohandamine, et see unustada.
Lühidalt, taande algusest peale tähelepanu pööramine säästab teid paljudest tobedatest vigadest ja krüptilistest süntaksisõnumitest . Kui näete kunagi taandevea, teate, et on aeg kontrollida ridade alguses olevaid tühikuid.
Muutujate nimed, nimeruumid ja moodulid
Pythonis ei deklareerita muutujate tüüpe, seega on parim dokumentatsioon valitud nimed . Lühikeses näites on `a`, `b` ja `c` kasutamine kõige jaoks hea, kuid koodi kasvades on palju kasulikum kasutada selliseid nimesid nagu `name`, `names`, `list_of_tuples`, `counter` jne. See aitab teil meeles pidada, millist tüüpi andmeid igast muutujast ootate, ja vähendab lihtsate vigade arvu.
Pythonis on muutujate ja funktsioonide puhul kõige levinum tava kasutada väiketähti koos alakriipsudega (nn madu-tüüpi tähemärk). Mõned keeled eelistavad camelCase'i ja juhtudel, kui integreerite olemasoleva koodiga, mis seda stiili kasutab, võib olla mõttekas seda jäljendada. Aga kui alustate nullist, soovitab Pythoni kogukond loetavuse parandamiseks üldiselt alakriipse.
Keele enda märksõnade (if, while, for, class jne) kasutamist muutujatena tuleks vältida, sest interpretaator märgistab selle süntaksiveana. Samuti on soovitatav mitte uuesti kasutada sisseehitatud funktsioonide nimesid, näiteks print, list või str, kuna nii kirjutaksite need oma ulatuses üle ja see võib põhjustada ootamatut käitumist. Näiteks kui defineerite muutuja nimega list, ei saa te sisseehitatud funktsiooni list() kasutada ilma muutujat eelnevalt kustutamata või ümber nimetamata.
Koodi korralduse osas toimib iga .py-fail moodulina, millel on oma nimeruum . See tähendab, et kui teil on fail nimega utilities.py, millel on funktsioon process(), siis selle täielikult kvalifitseeritud nimi oleks utilities.process. See väldib konflikte teiste protsessifunktsioonidega, mis on defineeritud erinevates moodulites: igal failil on oma väike identifikaatorite maailm.
Kui impordid standardmooduli nagu `sys` käsuga `import sys` , muutuvad kõik selle funktsioonid ja muutujad kättesaadavaks selle eesliite all: `sys.argv`, `sys.exit()` jne. Samuti on olemas vorm `from sys import argv, exit`, mis võimaldab kasutada funktsioone `argv` ja `exit()` otse ilma eesliiteta, kuid üldiselt on soovitatav täisnimega versioon, kuna see aitab sul mõista iga sümboli päritolu ja väldib segadust mitme mooduli samaaegsel kasutamisel.
Python sisaldab üsna ulatuslikku standardteeki , mis installitakse koos interpreteriga. Mõned kõige sagedamini kasutatavad moodulid on sys (süsteemi utiliidid ja käsurea argumendid), re (regulaaravaldised), os (failisüsteemi ligipääs ja operatsioonisüsteemi funktsioonid) ja paljud teised. Kogu see teek on põhjalikult dokumenteeritud ametlikul veebisaidil docs.python.org.
Käitusaja vead ja kuidas neist õppida
Pythoni dünaamilise olemuse tõttu lükatakse paljud kontrollid iga rea täitmiseni edasi. See tähendab, et käitusajal näete ainult mõningaid vigu : valesti kirjutatud nimesid, initsialiseerimata muutujaid, ühildumatuid tüüpe jne. Alguses võib see olla masendav, kuid peagi harjute veateadete lugemise ja mõistmisega.
Tüüpiline näide on funktsioon, mis if-lause kindla haru piires kutsub välja funktsiooninime, mida pole olemas. Seni kuni seda haru ei käivitata, Python ei kurda. Niipea kui jõutakse vigase rea juurde, annab see NameError hoiatuse, et identifikaator on defineerimata. Midagi väga sarnast juhtub ka siis, kui võrrelda muutujat, mida pole kunagi initsialiseeritud: keel tuvastab probleemi kohe, kui proovib seda avaldist hinnata.
Kui kasutate rangemaid keeli, võite kompilaatori varasemaid hoiatusi märkamata jätta. Python läheneb asjale teistmoodi: rohkem vabadust koodi kirjutamisel ja vähem jäikust kompileerimisel , mille tulemusel peab programmeerija seda paindlikkust toetama testide, heade tööriistade ja soovi korral ka annotatsioonide abil vigade vähendamiseks.
Positiivne on see, et just tänu sellele paindlikkusele sobib Python väga hästi katse-eksituse meetodil õppimiseks . Interaktiivne interpretaator, lühikesed skriptid ja selged veateated võimaldavad teil oma koodi kiiresti parandada. Järk-järgult arendate välja harjumuse käivitada oma programmi väikeseid osi, et veenduda iga osa toimimises, enne kui järgmise keerulisemaks muudate.
Windowsi puhul on hea strateegia avada terminal, käivitada skriptid ja kui midagi läheb valesti, lugeda hoolikalt Pythoni jälge . Enamasti näitab teade lisaks vea tüübile ka täpset rida ja faili, kus see tekkis, mis on väga kasulik probleemi kiireks diagnoosimiseks ja parandamiseks.
Sisseehitatud abi ja ressursid Pythoni edasiseks õppimiseks Windowsis
Lisaks ametlikule dokumentatsioonile ja struktureeritud kursustele sisaldab Python abitööriistu otse interpretaatoris endas . Kaks kõige väärtuslikumat algajatele on `help()` ja `dir()`. Mõlemad võimaldavad teil uurida iga funktsiooni, mooduli või meetodi tegevust ilma Pythoni keskkonnast lahkumata.
Näiteks kui soovite teada, kuidas sisseehitatud funktsioon `len()` töötab, võite interpreterisse sisestada `help(len)` . Või kui olete mooduli `sys` importinud käsuga `import sys`, võite selle mooduli dokumentatsiooni lugemiseks kutsuda funktsiooni `help(sys)` ja kõigi selle saadaolevate atribuutide (muutujad, funktsioonid jne) loendi nägemiseks funktsiooni `dir(sys)`.
Samuti on võimalik saada abi konkreetsete objektide meetodite kohta. Näiteks 'text'.split võimaldab teil pääseda ligi stringi jagamismeetodile ja kui kasutate `help('text'.split)` , näete kirjeldust, kuidas jaotada stringe eraldaja põhjal loenditeks. Samamoodi näitab `help(str.split)` teile sama teavet, kuna see on sama meetod, mis on defineeritud `str` klassis.
Samamoodi saate kasutada funktsioone `help(list)` ja `dir(list)`, et avastada, kuidas loendid Pythonis töötavad, vaadata, millised meetodid neil on (lisamine, laiendamine, sorteerimine jne) ja seejärel süveneda neisse näiteks funktsiooni `help(list.append)` abil. See on suurepärane viis õppida tegutsedes, ilma et peaksite toetuma ainult välistele käsiraamatutele.
Lisaks interpreterile on teil palju kvaliteetseid ressursse: ametlik dokumentatsioon aadressil docs.python.org, kursused platvormidel nagu Microsoft Learn, Coursera või Udacity ning interaktiivsed õpetused, mis võimaldavad teil programmeerida brauserist manustatud interpreteri abil. Näiteks pakub Google sissejuhatavat kursust, mis põhineb sisemisel materjalil ja hõlmab Python 3-e ning liigub põhitõdedest edasijõudnutele mõeldud teemadeni.
Kui eelistate videovaba kogemust ja soovite õppida omas tempos, on olemas veebipõhised õpetused, mis ühendavad teooria ja praktilised harjutused samas keskkonnas. Lisaks saavad kogukonnad nagu Stack Overflow, spetsiaalsed meililistid ja õppefoorumid tuge pakkuda, kui Windowsis töötades mõne konkreetse detailiga hätta jääte.
Kogu see ökosüsteem tähendab, et kui olete Windowsis esmase installimise ja seadistamise lõpetanud, on Pythoni programmeerija või andmeanalüütikuna edasine areng pigem visaduse kui ressursside puudumise küsimus. Näiteks kui teie eesmärk on töötada andmetega, saate andmebaasidesse süveneda spetsiaalsete juhendite abil.
Pärast interpretaatori, .py-skriptide, argumentide käsitlemise, taande ja funktsioonidega tutvumist avastad, et Pythoni õppimine Windowsis ei ole enam tehniline takistusrada, vaid üsna sujuv protsess, kus iga väikese edasiminekuga kasvad enesekindlust ja sind julgustatakse tegelema keerukamate probleemidega.