Programmēšana

Galīgais Python ceļvedis iesācējiem

2021. gada 30. oktobris

Satura rādītājs

  • Vides iestatīšana
    • Vietējās vides iestatīšana
    • Kā iegūt Python
    • Kā instalēt Python
    • Windows instalēšana
    • Unix/Linux instalēšana
    • MAC instalēšana
    • Python ceļa iestatīšana
    • Unix/Linux ceļa iestatīšana
    • Ceļa iestatīšana operētājsistēmai Windows
  • Python vides mainīgie
    • Darbojas Python
  • Pamata sintakse
    • Python identifikatori
    • Python paziņojums
    • Atkāpes Python
    • Komentāri Python
    • Ievades iegūšana
    • Parādiet izvadi
  • Mainīgo veidi
    • Vērtību piešķiršana mainīgajiem
    • Python datu tipi
    • Stīgas
    • Korpusi
    • Saraksti
    • Skaitļi
  • Pamatoperatori
    • Uzdevuma operators
    • Bitu operators
    • Loģiskais operators
    • Aritmētiskais operators
    • Salīdzināšanas operators
    • Identitātes operators
    • Dalības operators
  • Lēmumu pieņemšana
    • Ja paziņojums
    • ja-citādi
    • Ligzdotas, ja
    • Ja-elif-cits-kāpnes
    • Īsraksts ja paziņojums
    • Saīsināts if-else paziņojums
  • Cilpas
    • Kamēr cilpa
    • For Loop
    • Ligzdotas cilpas
    • Cilpas vadības paziņojumi
    • Turpināt paziņojumu
    • Pārtraukuma paziņojums
    • Pass paziņojums
  • Skaitļi
    • Numura veida konvertēšana
    • Izlases skaitļu funkcijas
    • Trigonometriskās funkcijas
    • Matemātiskās funkcijas
  • Stīgas
    • Virknes izveide
    • Stīgu īpašie operatori
    • Virkņu formatēšanas operatori
    • Bēgšanas varoņi
    • Iebūvētas stīgu metodes
  • Korpusi
    • Piekļuve vērtībām Tuples
    • Korežu atjaunināšana
    • Pamata Tuple operatori
    • Iebūvētas Tuple Functions
    • Indeksēšana un sagriešana
    • Korpusa dzēšana
  • Saraksti
    • Piekļuve vērtībām sarakstos
    • Sarakstu atjaunināšana
    • Pamata saraksta operatori
    • Iebūvēts funkciju un metožu saraksts
    • Indeksēšana un sagriešana
    • Dzēst sarakstu elementu
  • Vārdnīca
    • Vārdnīcas veidošana
    • Elementu pievienošana vārdnīcā
    • Elementu noņemšana no vārdnīcas
    • Python vārdnīcu metodes
  • Datums un laiks
    • Laiks Tuple
    • Laika modulis
    • Kalendāra modulis
  • Funkcijas
    • Kā definēt funkciju
    • Funkcijas izsaukšana
    • Iet pēc atsauces
    • Paiet garām vērtībai
    • Funkciju argumenti
    • Mainīga garuma argumenti
    • Nepieciešamie argumenti
    • Noklusējuma argumenti
    • Atslēgvārdu argumenti
    • Anonīmās funkcijas
  • Moduļi
    • Importēšanas paziņojums
    • Importēšanas paziņojums
    • No importēšanas * Paziņojums
    • Moduļu atrašanās vietas noteikšana
    • Locals() un globals() funkcijas
    • Vārdtelpas un tvērums
    • Funkcija dir( ).
    • Pārlādēšanas () funkcija
  • Faili I/O
    • Faila atvēršana
    • Failu objekta atribūti
    • Faila aizvēršana
    • Ar paziņojumu
    • Rakstīšanas metode
    • Lasīšanas metode
    • Pārdēvēt() metode
    • Remove() metode
    • Faila pozīcija
  • Izņēmumi
    • Kas ir izņēmums?
    • Izņēmuma apstrāde
    • Izņēmuma izvirzīšana
    • Standarta izņēmumu saraksts
    • Lietotāja definēti izņēmumi
    • Apgalvojumi Python valodā
  • Klases un objekti
  • CGI programmēšana
    • Web pārlūkošana
    • HTTP galvene
    • CGI vides mainīgie
    • GET metode
    • POST metode
    • Sīkdatņu izmantošana CGI
    • Kā tas darbojas?
  • Piekļuve MySQL datu bāzei
    • Datu bāzes tabulas izveide
    • INSERT darbība
    • LASĪT Darbība
    • Atjaunināšanas darbība
    • DZĒŠANA darbība
    • Darījumu veikšana
    • COMMIT operācija
    • ATGĀŠANAS darbība
    • Datu bāzes atvienošana
    • Apstrādes kļūdas
  • Tīkli
    • Kas ir ligzdas?
    • Kontaktligzdas modulis
    • Python interneta moduļi
  • E-pasta sūtīšana
    • HTML e-pasta sūtīšana, izmantojot Python
    • Pielikumu nosūtīšana e-pastā
  • Daudzpavedienu programmēšana
    • Sākt jaunu pavedienu
    • Vītņu veidošanas modulis
    • Pavedienu sinhronizēšana
    • Daudzpavedienu prioritātes rinda
  • XML apstrāde
    • Kas ir XML?
    • XML parsētāju arhitektūras un API
    • XML parsēšana ar SAX API
      • Make_parser metode
      • Parsēšanas metode
      • ParseString metode
  • GUI programmēšana
    • Tkinter logrīki
  • Ģeometrijas vadība
  • Ieteicamie raksti

Klases un objekti

Python ir uz objektu orientēta valoda kopš tās pastāvēšanas, un tāpēc klašu un objektu izmantošana un izveide ir kļuvusi vienkāršāka. Šī nodaļa palīdzēs jums kļūt par ekspertu Python objektorientētās programmēšanas atbalsta izmantošanā.

Ja jums nav pietiekami daudz zināšanu par objektorientētu programmēšanu, šeit ir kaut kas, ar ko sākt.

    Klase− Tas ir lietotāja definēts objekta prototips, kas definē atribūtu kopu, kas raksturo jebkuru klases objektu. Klases mainīgie un gadījumu mainīgie un metodes, kuriem var piekļūt, izmantojot punktu apzīmējumu.Objekts- Tas ir datu struktūras gadījums, ko nosaka tās klase. Objekts satur gan klases mainīgos, gan gadījumu mainīgos.Klases mainīgais− Tas ir mainīgais, ko koplieto visi klases gadījumi. Klases mainīgais ir definēts klasē, bet ārpus jebkuras klases metodes. Klases mainīgie netiek izmantoti kā bieži sastopami gadījumu mainīgie.Datu dalībnieks− tas ir gadījuma mainīgais, kas satur datus, kas saistīti ar klasi un tās objektiem.Gadījuma mainīgais− Tas ir mainīgais, kas parasti tiek definēts metodē un pieder pie pašreizējās klases instances.Funkciju pārslodze− Viena vai vairāku uzvedību piešķiršana noteiktai funkcijai. Veiktā darbība atšķiras atkarībā no iesaistīto objektu vai argumentu veida.Operatora pārslodze− Vienas vai vairāku funkciju piešķiršana noteiktam operatoram.Mantojums− Tā ir klases īpašību pārnešana uz citām klasēm, kas no tās izriet.Metode− Tā ir īpaša veida funkcija, kas ir definēta klases definīcijā.

Nodarbību veidošana

Klase izveido jaunu klases definīciju. Klases nosaukumam seko atslēgvārds class, kam seko kols.

SINTAKSE

|_+_|
  • Klase sastāv no dokumentācijas virknes, kurai var piekļūt, izmantojot ClassName.__doc__.
  • Klases_komplekts sastāv no komponentu priekšrakstiem, kas definē klases dalībniekus, datu atribūtus un funkcijas.
img 617dd27284418

Klases objekti

Objekts ir klases gadījums. Klase ir kā projekts, kamēr tā ir klases kopija ar faktiskajām vērtībām.

img 617dd272d3ac5

IZEJA

img 617dd273361bc

Piekļuve atribūtiem

Varat piekļūt objekta atribūtiem, izmantojot punktu operatoru ar objektu.

  • getattr(obj, nosaukums[, noklusējums]) - To izmanto, lai piekļūtu objekta atribūtam.
  • hasattr(obj,nosaukums) - To izmanto, lai pārbaudītu, vai atribūts pastāv vai ne.
  • setattr(obj,nosaukums,vērtība) - To izmanto, lai iestatītu atribūtu. Ja atribūts neeksistē, tas tiks izveidots.
  • delattr(obj, nosaukums) – To izmanto, lai dzēstu atribūtu.

Iebūvētie klases atribūti

Katra Python klase turpina sekot iebūvētajiem atribūtiem, un tiem var piekļūt, izmantojot punktu operatoru tāpat kā jebkuram citam atribūtam.

    __dikt__- Tā ir vārdnīca, kurā ir klases nosaukumvieta.__doc__− Tā ir klases dokumentācijas virkne vai nav, ja tā nav definēta.__vārds__- klases nosaukums.__modulis__− Tas ir moduļa nosaukums, kurā ir definēta klase. Šis atribūts ir __main__ interaktīvajā režīmā.__bāzes__− Tukšs kortežs, kas satur bāzes klasi to rašanās secībā bāzes klašu sarakstā.

Atkritumu kolekcija

Python automātiski izdzēš objektus, lai atbrīvotu vietu atmiņā. Procesu, kurā Python periodiski atgūst atmiņas blokus, kas vairs netiek izmantoti, sauc par atkritumu savākšanu.

Pitona atkritumu savācējs darbojas programmas izpildes laikā, un tas tiek aktivizēts, kad objekta atsauces skaits sasniedz nulli.

Objekta atsauces skaits palielinās, ja tam tiek piešķirts jauns nosaukums vai tas tiek ievietots konteinerā (sarakstā, kortežā vai vārdnīcā). Objekta atsauces skaits samazinās, kad tas tiek dzēsts ar no , tā atsauce tiek piešķirta no jauna vai arī tās atsauce ir ārpus darbības jomas. Kad objekta atsauces skaits sasniedz nulli, python to automātiski apkopo.

img 617dd273789c9

IZEJA

img 617dd273c29af

Klases mantojums

Varat arī izveidot klasi, atvasinot to no iepriekšējās klases, iekavās aiz jaunās klases nosaukuma minot vecākklasi.

Pakārtotā klase var mantot savas vecākklases atribūtus, un jūs varat izmantot līdzekļus tā, it kā tie būtu definēti pakārtotajā klasē. Bērnu klase var arī ignorēt metodes un datu dalībniekus no vecāka.

SINTAKSE

|_+_|

Ignorējošās metodes

Varat ignorēt vecāku klases metodes. Iemesls vecāku metožu ignorēšanai ir tāpēc, ka jūs, iespējams, vēlēsities savā apakšklasē unikālu vai atšķirīgu funkcionalitāti. Šeit ir dažas no bāzes pārslodzes metodēm.

Jā nē Metode Apraksts
viens__repr__( pats )Novērtējams virknes attēlojums
divi__del__( pats )Destruktors, dzēš objektu
3__cmp__ ( pats, x )Objektu salīdzinājums
4__init__ (self [,args…])Konstruktors (ar jebkādiem izvēles argumentiem)
5__str__( pats )Drukājams virknes attēlojums

Regulāras izteiksmes

Regulārā izteiksme ir unikāla rakstzīmju secība, kas palīdz atrast vai saskaņot virkņu kopas, izmantojot īpašu sintaksi, kas atrodas shēmā. Regulārās izteiksmes tiek plaši izmantotas UNIX pasaulē.

Python modulis nodrošina pilnīgu atbalstu Perl līdzīgām regulārām izteiksmēm Python. Modulis rada izņēmumu.

Saskaņošanas funkcija

Tas mēģina saskaņot RE modeli ar virkni ar izvēles karodziņiem.

SINTAKSE

|_+_|
Jā nē Parametrs Apraksts
vienskarogiTas norāda dažādus karogus, izmantojot bitu VAI (|).
divimodelisTā ir regulāra izteiksme, kas jāsaskaņo.
3virkneTā ir virkne, kas tiek meklēta, lai atbilstu rakstam virknes sākumā.

Meklēšanas funkcija

Tas meklē pirmo RE raksta gadījuma gadījumu virknē ar izvēles karodziņiem.

SINTAKSE

|_+_|
Jā nē Parametrs Apraksts
vienskarogiTas norāda dažādus karogus, izmantojot bitu VAI (|).
divimodelisTā ir regulāra izteiksme, kas jāsaskaņo.
3virkneTā ir virkne, kas tiek meklēta, lai atbilstu rakstam virknes sākumā.

Regulāro izteiksmju pārveidotāji

Jā nē Parametrs Apraksts
viensre.MTas liek $ atbilst rindas beigām un liek ^ atbilst jebkuras rindas sākumam.
divire.LTas interpretē vārdus atbilstoši pašreizējai lokalizācijai. Interpretācija ietekmē alfabēta grupu, kā arī vārda robežas uzvedību.
3re.UTas interpretē burtus atbilstoši Unikoda rakstzīmju kopai. Karogs ietekmē w, W, , B darbību.
4re.XTas ļauj izmantot gudrāku regulārās izteiksmes sintaksi. Tas ignorē atstarpes un bez atsoļa # tiek uzskatīts par komentāru marķieri.
5re.STas nodrošina, ka punkts atbilst jebkurai rakstzīmei, ieskaitot jaunu rindiņu.
6re.ITas veic reģistrjutīgu saskaņošanu.

Regulārās izteiksmes modeļi

Jā nē Raksts Apraksts
viens.Tas atbilst vienai rakstzīmei, izņemot jauno rindiņu.
divia| bTas atbilst a vai b.
3[…]Tas atbilst vienai rakstzīmei iekavās.
4[^…]Tas atbilst vienai rakstzīmei, kas nav iekavās
5$Tas atbilst rindas beigām.
6^Tas atbilst rindas sākumam.
7re*Tas atbilst 0 vai vairākiem iepriekšējās izteiksmes gadījumiem.
8re+Tas atbilst vienam vai vairākiem iepriekšējās izteiksmes gadījumiem.
9re?Tas atbilst 0 vai 1 iepriekšējās izteiksmes gadījumam.
10re{ n}Tas precīzi atbilst n iepriekšējās izteiksmes gadījumu skaitam.
vienpadsmitre{ n, m}Tas atbilst vismaz n un m iepriekšējās izteiksmes gadījumiem.
12re{ n,}Tas atbilst n vai vairākiem iepriekšējās izteiksmes gadījumiem.
13(atkārtoti)Tas grupē regulārās izteiksmes un atceras atbilstošo tekstu.
14(?imx)Tas īslaicīgi ieslēdz i, m vai x opcijas regulārajā izteiksmē.
piecpadsmit(?imx: re)Tas īslaicīgi iekavās ieslēdz i, m vai x opcijas.
16?: re)Tas grupē regulārās izteiksmes, neatceroties atbilstošo tekstu.
17(?-imx)Tas īslaicīgi izslēdz i, m vai x opcijas regulārajā izteiksmē.
18(?-imx: re)Tas īslaicīgi izslēdz i, m vai x opcijas iekavās.
19(?#…)komentēt.
divdesmit(?= atkārtoti)Tas norāda pozīciju, izmantojot modeli. Tam nav diapazona.
divdesmitviens(?! atkārtoti)Tas norāda pozīciju, izmantojot modeļa noliegumu. tai nav diapazona.
22(?> re)Tas atbilst neatkarīgajam modelim bez atkāpšanās.
23InTas atbilst vārdu rakstzīmēm.
24INTas atbilst burtiem, kas nav vārdi.
25STas atbilst bez atstarpes.
26sTas atbilst atstarpei.
27DTas atbilst cipariem, kas nav cipari.
28dTas atbilst cipariem. Atbilst [0-9].
2910Tas atbilst n-ajai grupētajai apakšizteiksmei, ja tā jau atbilst. Citādi tas attiecas uz rakstzīmju koda oktālo attēlojumu.
30TOTas atbilst virknes sākumam.
31ARTas atbilst virknes beigām. Ja jauna rindiņa pastāv, tā atbilst tieši pirms jaunās rindiņas.
32arTas atbilst virknes beigām.
33GTas atbilst vietai, kur beidzās pēdējā spēle.
3. 4 , utt.Tas atbilst jaunrindiņām, vagonu atgriešanai, cilnēm utt.
35BTas atbilst nevārdu robežām.
361…9Tas atbilst n-tajai grupētajai apakšizteiksmei.
37Iekavās tas atbilst atpakaļatkāpes taustiņam (0x08).

Rakstzīmju klases

Jā nē Piemērs Apraksts
viens[patskaņi]Tas atbilst jebkuram mazajam patskaņam
divi[0-9]Tas atbilst jebkuram ciparam; tāds pats kā [0123456789]
3[Pp] ythonTas atbilst Python vai Python
4[a-z]Tas atbilst visiem mazajiem ASCII burtiem
5berzēt [tu]Tas atbilst rubīnam vai rubīnam
6[^aeiou]Tas atbilst jebkam, izņemot mazo patskaņu
7[^0-9]Tas atbilst jebkam, izņemot ciparu
8[a-zA-Z0-9]Tas atbilst jebkuram no iepriekš minētajiem
9[A-Z]Tas atbilst visiem lielajiem ASCII burtiem
10.Tas atbilst vienai rakstzīmei, izņemot jauno rindiņu.
vienpadsmitInTas atbilst vārdu rakstzīmēm.
12INTas atbilst burtiem, kas nav vārdi.
13STas atbilst bez atstarpes.
14sTas atbilst atstarpei.
piecpadsmitDTas atbilst cipariem, kas nav cipari.
16dTas atbilst cipariem. Atbilst [0-9].

Atkārtošanās gadījumi

Jā nē Piemērs Apraksts
viensrubīns+Tas atbilst rub plus 1 vai vairāk ys
divirubīns*Tas atbilst rub plus 0 vai vairāk ys
3rubīns?Tas atbilst rubīnam vai rubīnam: y nav obligāts
4d{3}Tas precīzi atbilst 3 cipariem
5d{3,}Tas atbilst 3 vai vairāk cipariem
6d{3,5}Tas atbilst 3, 4 vai 5 cipariem

Enkuri

Jā nē Piemērs Apraksts
viensPython ZTas atbilst Python virknes beigās.
diviPython $Tas atbilst Python virknes vai rindas beigās.
3^PythonTas atbilst Python virknes vai iekšējās rindas sākumā.
4 APythonTas atbilst Python virknes sākumā.
5Python (?=!)Tas atbilst Python, ja tam seko izsaukuma zīme.
6Python (?!!)Tas atbilst Python, ja tam neseko izsaukuma zīme.
7PythonTas atbilst Python vārda robežai.