Python — definīcija: atvērtā pirmkoda programmēšanas valoda
Uzzini par Python — atvērtā pirmkoda, viegli lasāmu un interpretētu programmēšanas valodu (radīta 1991. Gvido van Rosums). Ideāla iesācējiem, daudzpusīga un ātri izmēģināma.
Python ir atvērtā pirmkoda programmēšanas valoda, kas radīta tā, lai kods būtu viegli lasāms un vienlaikus jaudīgs. Python 1991. gadā izveidoja holandiešu programmētājs Gvido van Rosums. Valodas nosaukums ir veltījums britu komēdiju šovam "Monty Python's Flying Circus" (Monty Python's Flying Circus), un daudzos Python piemēros, pamācībās un dokumentācijā joprojām parādās atsauces uz šo šovu un humora elementiem.
Galvenās iezīmes
Python ir augsta līmeņa valoda ar uzsvaru uz lasāmību un vienkāršu sintaksi. Tai raksturīgas šādas iezīmes:
- Signifikanta atkāpe (indentācija) bloku atdalīšanai, kas uzlabo koda lasāmību;
- Dinamiskā tipizācija, kas ļauj ātri rakstīt kodu bez stingras tipa deklarēšanas;
- Automātiska atmiņas pārvaldība (garbage collection);
- Plaša standarta bibliotēka — bieži saukta par "batteries included", jo tajā ir iebūvētas daudzas noderīgas funkcijas;
- Bagātīgs trešo pušu moduļu ekosistēmas atbalsts caur PyPI un rīkiem kā pip vai conda.
Interpretācija, mērogojamība un ātrums
Python ir interpretētā valoda. Interpretētās valodas nav jākompilē, lai tās darbotos; Python kodu palaidīs programma — interpretators. CPython (biežāk izmantotā interpretatora versija) parasti vispirms tulko Python avotu uz starpkodu (bytecode), kas tiek izpildīts virtuālajā mašīnā. Tas ļauj palaist Python skriptus gandrīz jebkurā platformā un ērti izmēģināt izmaiņas, tostarp interaktīvā REPL režīmā.
Tā kā Python netiek tieši pārveidots uz mašīnkodu, tas ir parasti lēnāks nekā kompilētas valodas, piemēram, C. Tomēr praksē daudzas ātruma prasīgas bibliotēkas (piemēram, NumPy) izmanto C/C++ optimizācijas, nodrošinot izcilu veiktspēju skaitļošanas uzdevumos. Ja ātrums ir kritisks, Python programmētājs var:
- izmantot papildu implementācijas, piemēram, PyPy (JIT — tieši laikā kompilators),
- rakstīt laika kritiskus moduļus C/C++ kā paplašinājumus (C-API),
- lietot Cython, kas pārtulko Python līdzīgu sintaksi uz C kodu,
- vai izmantot speciālus risinājumus (multiprocessing, GPU akcelerācija u.c.).
Izglītošana un programmēšanas stils
Python bieži ir ieteicama valoda iesācējiem, jo tā ļauj koncentrēties uz problēmas risināšanu, nevis detaļām par atmiņas pārvaldību vai valodas sintaksi. Valodas kopienā ir pieņemti standarti un vadlīnijas, piemēram, PEP 8 stila ceļvedis un PEP 20 — "The Zen of Python", kas popularizē vienkāršību un lasāmību. Lai gan Python izstrādātāji cenšas izvairīties no priekšlaicīgas optimizācijas, attīstības kopiena rūpējas arī par veiktspējas uzlabojumiem tur, kur tas ir nepieciešams.
Kam Python tiek izmantots
Python ir ļoti daudzpusīga valoda. Biežākie pielietojumi ietver:
- web izstrādi (piem., Django, Flask);
- datu analīzi un skaitļošanu (NumPy, pandas, SciPy);
- mašīnmācīšanos un mākslīgo intelektu (TensorFlow, PyTorch, scikit-learn);
- automatizāciju un skriptošanu (sistēmu administrācija, DevOps rīki);
- zinātniskus pētījumus un vizualizāciju;
- iebūvētās sistēmas un IoT (piem., MicroPython);
- mācību procesus — programmatūras inženierijas un datorspēļu prototipēšanu.
Implementācijas un rīki
Ir vairākas Python implementācijas, kas piemērotas dažādiem mērķiem:
- CPython — oficiālā, visizplatītākā implementācija;
- PyPy — implementācija ar JIT, bieži ātrāka dinamiskiem uzdevumiem;
- Jython — Python uz JVM (Java Virtual Machine);
- IronPython — Python .NET platformai;
- MicroPython — viegla Python versija iebūvētiem risinājumiem;
- citas specializētas versijas un transpilatori (piem., Brython tīmeklim).
Valodas attīstība un kopiena
Python ir atvērta projekts ar plašu globālu kopienu. Valodas izmaiņas un priekšlikumus izsaka caur PEP (Python Enhancement Proposal) procesu. Gvido van Rossums ilgus gadus bija neoficiāls projektu vadītājs (BDFL — benevolent dictator for life), līdz 2018. gadā viņš nolika šo amatu; kopš tam valodu vada vadības padome. Pastāv arī liela dokumentācija, forumi, vietējās un starptautiskās konferences (piemēram, PyCon) un milzīgs daudzums mācību materiālu.
Versijas un saderība
Python 3 ieviesa būtiskas izmaiņas salīdzinājumā ar Python 2. Python 2.7 atbalsts tika pārtraukts 2020. gada 1. janvārī, un mūsdienās ieteicams lietot Python 3.x. Jaunākās Python 3 versijas regulāri pievieno jaunas funkcijas (piem., tipēšanas anotācijas — PEP 484, async/await asinhronām darbībām), drošības un veiktspējas uzlabojumus.
Praktiskas piezīmes
Ja sākat mācīties Python vai izvēlaties to kā projektu valodu, ņemiet vērā:
- Instalējiet Python no oficiālā avota vai izmantojiet pārvaldnieku (piem., pyenv), lai viegli pārslēgtos starp versijām;
- izmantojiet virtuālos vidi (venv, virtualenv), lai izolētu atkarības projektos;
- iepazīstieties ar pip un PyPI, lai instalētu trešo pušu bibliotēkas;
- iepazīstiet PEP 8 stila vadlīnijas un izmantojiet rīkus kā linters un formatterus (piem., flake8, black) konsistentam kodam;
- apgūstiet, kad paralelizēt uzdevumus ar multiprocessing vai asinhroni ar asyncio, un kad labāk izmantot C paplašinājumus, lai pārvarētu CPython GIL ierobežojumus.
Python kopiena ir plaša un draudzīga, un valodas vienkāršība kopā ar spēcīgu ekosistēmu padara to par populāru izvēli gan iesācējiem, gan pieredzējušiem profesionāļiem.
Python lietošana
Python lieto simtiem tūkstošu programmētāju, un tas tiek izmantots daudzviet. Dažreiz kādai programmai tiek izmantots tikai Python kods, bet lielākoties tas tiek izmantots vienkāršu darbu veikšanai, kamēr sarežģītāku uzdevumu veikšanai tiek izmantota cita programmēšanas valoda.
Tā standarta bibliotēka sastāv no daudzām funkcijām, kas ir iekļautas Python instalēšanas brīdī. Internetā ir pieejamas daudzas citas bibliotēkas, kas ļauj Python valodai veikt vēl citas funkcijas. Šīs bibliotēkas padara to par spēcīgu valodu; ar to var veikt daudzas dažādas lietas.
Dažas lietas, kurām bieži izmanto Python, ir:
- Tīmekļa izstrāde
- Zinātniskā programmēšana
- Darbvirsmas GUI lietojumprogrammas
- Tīkla programmēšana
- Spēļu programmēšana.
Sintakse
Python ir ļoti viegli lasāma sintakse. Daļa Python sintakses ir pārņemta no C valodas, jo tieši šajā valodā Python tika sarakstīts. Taču Python izmanto baltos laukumus, lai norobežotu kodu: atstarpes vai tabulatori tiek izmantoti, lai sakārtotu kodu grupās. Tas atšķiras no C. C valodā katras rindas beigās ir semikols, un kodu grupēšanai tiek izmantoti loka iekavas ({}). Balto atstarpju izmantošana koda norobežošanai padara Python valodu ļoti viegli lasāmu.
Paziņojumi un vadības plūsma
Python paziņojumi ietver:
- Piešķiršanas paziņojums jeb = zīme. Python valodā apzīmējums x = 2 nozīmē, ka vārds x ir piesaistīts veselam skaitlim 2. Python valodā nosaukumus var piesaistīt daudziem dažādiem tipiem, tāpēc Python ir dinamiski tipizēta valoda.
- Ja, izpildot noteiktus nosacījumus, tiek palaists koda bloks, kā arī else un elif (citu programmēšanas valodu saīsinājums no else if). Ar elif izteikumu tiek palaists koda bloks, ja nav izpildīti iepriekšējie nosacījumi, bet ir izpildīti elif izteikuma nosacījumi. Izmantojot else, tiek palaists koda bloks, ja neviens no iepriekšējiem nosacījumiem nav izpildīts.
- For paziņojums, kas iterē iterējamu objektu, piemēram, sarakstu, un katru šī objekta elementu sasaista ar mainīgo, ko izmanto šajā koda blokā, kas izveido for cilpu.
- Teikums while, ar kuru tiek izpildīts koda bloks tik ilgi, kamēr tiek izpildīti noteikti nosacījumi, tādējādi izveidojot while cilpu.
- Def paziņojums, kas definē funkciju vai metodi.
- "Pass" paziņojums, kas nozīmē "nedarīt neko".
- Klases paziņojums, kas ļauj lietotājam izveidot sava tipa objektus, piemēram, veselos skaitļus un virknes.
- Importa paziņojums, kas importē Python failus izmantošanai lietotāja kodā.
- Drukāšanas paziņojums, kas izvada dažādas lietas uz konsoles.
Expressions
Dažas Python izteiksmes ir līdzīgas citām programmēšanas valodām, bet citas nav līdzīgas.
- Saskaitīšana, atņemšana, reizināšana un dalīšana, ko apzīmē ar +, -. * un /.
- Eksponentus apzīmē ar **.
- Lai salīdzinātu divas vērtības, Python izmanto ==.
- Python izmanto vārdus "and", "or" un "not", lai apzīmētu bolu izteiksmes.
Piemērs
Šis ir neliels Python programmas piemērs. Tā uz ekrāna parāda "Hello World!".
Python izmanto arī tā saukto "dinamisko mainīgo piešķiršanu". Tas nozīmē, ka tad, kad programmā tiek izveidots skaitlis vai vārds, lietotājam nav jāpasaka, kāda tipa tas ir. Tas atvieglo mainīgo nosaukumu atkārtotu izmantošanu, padarot ātras izmaiņas vienkāršākas. Šādas darbības piemērs ir parādīts turpmāk. Šis kods izveidos gan skaitli, gan vārdu un parādīs tos abus, izmantojot tikai vienu mainīgo.
"Statiski tipizētā" valodā, piemēram, C, programmētājam būtu jāpasaka, vai x ir skaitlis vai vārds, pirms C ļautu programmētājam iestatīt x, un pēc tam C neļautu mainīt tā tipu no skaitļa uz vārdu.
Jautājumi un atbildes
J: Kas ir Pitons?
A: Python ir atvērtā pirmkoda programmēšanas valoda, kas tika radīta tā, lai būtu viegli saprotama un viegli lasāma, bet vienlaikus jaudīga.
J: Kas radīja Python?
A: Holandiešu programmētājs vārdā Gvido van Rosums 1991. gadā izveidoja Python.
J: Kā Python radītājs izdomāja nosaukumu?
A: Viņš to nosauca pēc televīzijas programmas "Monty Python's Flying Circus".
J: Vai Python ir kompilētā vai interpretētā valoda?
A: Tā ir interpretētā valoda, kas nozīmē, ka tā nav jākompilē, lai darbotos. Interpretētājs palaiž kodu gandrīz jebkurā datorā.
J: Kādas citas programmēšanas valodas ir iedvesmojušas Python?
A: C, C++, Java, Perl un Lisp - visas šīs valodas kalpoja par iedvesmu Python radīšanai.
J: Kādi ir izstrādātāju mērķi, veicot izmaiņas, lai uzlabotu valodu?
A: Izstrādātāji cenšas izvairīties no valodas pārveidošanas, kamēr nav daudz lietu, ko mainīt, un arī cenšas neveikt nelielus labojumus (labojumus), kas padarītu to ātrāku, bet ir mazsvarīgas CPython atsauces implementācijas daļas.
J: Kāpēc izstrādātājiem ir svarīgi saglabāt Python jautrību?
A: Python jautrības saglabāšana atspoguļojas tā nosaukumā, kas ir veltījums britu komēdiju grupai Monty Pythons, kā arī rotaļīgajā pieejā mācību materiāliem un atsauces materiāliem, piemēram, foo un bar vietā minot spam un olas.
Meklēt