Programmeerimine

Ultimate Pythoni juhend algajatele

30. oktoober 2021

Sisukord

  • Keskkonna seadistamine
    • Kohaliku keskkonna seadistamine
    • Kuidas Pythonit hankida
    • Kuidas Pythonit installida
    • Windowsi installimine
    • Unixi / Linuxi installimine
    • MAC-i installimine
    • Pythoni tee seadistamine
    • Unixi/Linuxi tee määramine
    • Windowsi tee määramine
  • Pythoni keskkonnamuutujad
    • Pythoni käivitamine
  • Põhiline süntaks
    • Pythoni identifikaatorid
    • Pythoni avaldus
    • Taanded Pythonis
    • Kommentaarid Pythonis
    • Sisestuse saamine
    • Kuva väljund
  • Muutujate tüübid
    • Muutujatele väärtuste määramine
    • Pythoni andmetüübid
    • Stringid
    • Kordad
    • Loendid
    • Numbrid
  • Põhioperaatorid
    • Ülesandeoperaator
    • Bitioperaator
    • Loogiline operaator
    • Aritmeetiline operaator
    • Võrdlusoperaator
    • Identiteedi operaator
    • Liikmelisuse operaator
  • Otsuse tegemine
    • Kui avaldus
    • kui-muidu
    • Pesastatud kui
    • Kui-elif-muidu-redel
    • Lühikiri kui väide
    • Lühike kui-muidu avaldus
  • Silmused
    • Kuigi Loop
    • Loopi jaoks
    • Pesastatud silmused
    • Loop Control avaldused
    • Jätka avaldust
    • Katkestusavaldus
    • Läbimise avaldus
  • Numbrid
    • Numbritüübi teisendamine
    • Juhuslike arvude funktsioonid
    • Trigonomeetrilised funktsioonid
    • Matemaatilised funktsioonid
  • Stringid
    • Stringi loomine
    • Stringi erioperaatorid
    • Stringi vormindamise operaatorid
    • Põgenemistegelased
    • Sisseehitatud stringimeetodid
  • Kordad
    • Juurdepääs väärtustele Tuples
    • Kordate värskendamine
    • Korpuse põhioperaatorid
    • Sisseehitatud mitmekordsed funktsioonid
    • Indekseerimine ja viilutamine
    • Korpuse kustutamine
  • Loendid
    • Juurdepääs väärtustele loendites
    • Nimekirjade värskendamine
    • Põhiloendi operaatorid
    • Sisseehitatud funktsioonide ja meetodite loend
    • Indekseerimine ja viilutamine
    • Kustuta loendite element
  • Sõnastik
    • Sõnastiku koostamine
    • Elementide lisamine sõnastikku
    • Elementide eemaldamine sõnastikust
    • Pythoni sõnastiku meetodid
  • Päev ja aeg
    • Time Tuple
    • Aja moodul
    • Kalendri moodul
  • Funktsioonid
    • Kuidas defineerida funktsiooni
    • Funktsiooni kutsumine
    • Mööda viide
    • Mööda väärtust
    • Funktsiooni argumendid
    • Muutuva pikkusega argumendid
    • Nõutavad argumendid
    • Vaikeargumendid
    • Märksõna argumendid
    • Anonüümsed funktsioonid
  • Moodulid
    • Impordi avaldus
    • Impordi avaldus
    • Impordist * avaldus
    • Moodulite asukoha määramine
    • Funktsioonid locals() ja globals()
    • Nimeruumid ja ulatus
    • Diri( ) funktsioon
    • Reload() funktsioon
  • Failid I/O
    • Faili avamine
    • Failiobjekti atribuudid
    • Faili sulgemine
    • Koos avaldusega
    • Kirjutamise meetod
    • Lugemise meetod
    • Rename() meetod
    • Eemalda () meetod
    • Faili asukoht
  • Erandid
    • Mis on erand?
    • Erandi käsitlemine
    • Erandi tõstmine
    • Standardsete erandite loend
    • Kasutaja määratletud erandid
    • Väited Pythonis
  • Klassid ja objektid
  • CGI programmeerimine
    • Veebisirvimine
    • HTTP päis
    • CGI keskkonnamuutujad
    • GET meetod
    • POST meetod
    • Küpsiste kasutamine CGI-s
    • Kuidas see töötab?
  • Juurdepääs MySQL andmebaasile
    • Andmebaasi tabeli loomine
    • INSERT-operatsioon
    • LOE Operatsioon
    • Värskendusoperatsioon
    • Kustutusoperatsioon
    • Tehingute sooritamine
    • COMMIT operatsioon
    • TAGASI TOIMING
    • Andmebaasi lahtiühendamine
    • Käsitsemisvead
  • Võrgud
    • Mis on pistikupesad?
    • Pistikupesa moodul
    • Pythoni Interneti-moodulid
  • E-kirja saatmine
    • HTML-meili saatmine Pythoni abil
    • Manuste saatmine e-kirjana
  • Mitme lõimega programmeerimine
    • Uue lõime alustamine
    • Keermestamise moodul
    • Lõimede sünkroonimine
    • Mitme lõimega prioriteetne järjekord
  • XML-i töötlemine
    • Mis on XML?
    • XML-i parseri arhitektuurid ja API-d
    • XML-i sõelumine SAX API-dega
      • Meetod make_parser
      • Sõelumismeetod
      • ParseString meetod
  • GUI programmeerimine
    • Tkinteri vidinad
  • Geomeetria haldamine
  • Soovitatavad artiklid

Klassid ja objektid

Python on objektorienteeritud keel alates selle olemasolust ning tänu sellele on klasside ja objektide kasutamine ja loomine muutunud lihtsamaks. See peatükk aitab teil saada Pythoni objektorienteeritud programmeerimise toe kasutamise eksperdiks.

Kui teil pole objektorienteeritud programmeerimise kohta piisavalt teadmisi, on siin alustuseks natuke midagi.

    Klass− See on kasutaja määratud prototüüp objektile, mis määratleb atribuutide komplekti, mis iseloomustavad klassi mis tahes objekti. Klassimuutujad ja eksemplarimuutujad ning meetodid, millele pääseb juurde punktimärgistuse kaudu.Objekt- See on andmestruktuuri eksemplar, mis on määratletud selle klassiga. Objekt sisaldab nii klassimuutujaid kui ka eksemplari muutujaid.Klassi muutuja− See on muutuja, mida jagavad kõik klassi eksemplarid. Klassi muutuja on määratletud klassi sees, kuid väljaspool klassimeetodeid. Klassi muutujaid ei kasutata sagedaste esinemismuutujatena.Andme liige− see on eksemplari muutuja, mis hoiab kinni klassi ja selle objektidega seotud andmeid.Eksemplari muutuja− See on muutuja, mis on tavaliselt defineeritud meetodi sees ja kuulub klassi praegusesse eksemplari.Funktsioonide ülekoormus− ühe või mitme käitumise määramine teatud funktsioonile. Tehtav toiming erineb kaasatud objektide või argumentide tüübi järgi.Operaatori ülekoormus− ühe või mitme funktsiooni määramine konkreetsele operaatorile.Pärand− See on klassi tunnuste ülekandmine teistele klassidele, mis on sellest tuletatud.meetod− See on spetsiifiline funktsioon, mis on määratletud klassi definitsioonis.

Klasside loomine

Klass loob uue klassimääratluse. Klassi nimele järgneb märksõna klass, millele järgneb koolon.

SÜNTAKS

|_+_|
  • Klass koosneb dokumentatsioonistringist, millele pääseb juurde ClassName.__doc__ kaudu.
  • Klassikomplekt koosneb komponentlausetest, mis määratlevad klassi liikmed, andmeatribuudid ja funktsioonid.
img 617dd27284418

Klassi objektid

Objekt on klassi eksemplar. Klass on nagu plaan, samas kui see on klassi koopia tegelike väärtustega.

img 617dd272d3ac5

VÄLJUND

img 617dd273361bc

Juurdepääs atribuutidele

Objekti atribuutidele pääsete juurde, kasutades objekti juures olevat punktioperaatorit.

  • getattr(obj, nimi[, vaikimisi]) – Seda kasutatakse objekti atribuudile juurde pääsemiseks.
  • hasattr(obj,nimi) – Seda kasutatakse atribuudi olemasolu kontrollimiseks või mitte.
  • setattr(obj,nimi,väärtus) – Seda kasutatakse atribuudi määramiseks. Kui atribuuti pole, luuakse see.
  • delattr(obj, nimi) – Seda kasutatakse atribuudi kustutamiseks.

Sisseehitatud klassi atribuudid

Iga Pythoni klass järgib sisseehitatud atribuute ja neile pääseb juurde punktioperaatori abil nagu igale teisele atribuudile.

    __dict__− See on sõnastik, mis sisaldab klassi nimeruumi.__doc__− See on klassi dokumentatsioonistring või puudub, kui see pole määratletud.__nimi__− klassi nimi.__moodul__− See on mooduli nimi, milles klass on määratletud. See atribuut on interaktiivses režiimis __main__.__baasid__− Tühi korteež, mis sisaldab põhiklassi nende esinemise järjekorras põhiklasside loendis.

Prügi kogumine

Python kustutab mäluruumi vabastamiseks objektid automaatselt. Protsessi, mille käigus python võtab perioodiliselt tagasi mäluplokke, mida enam ei kasutata, nimetatakse prügikogumiseks.

Püütoni prügikoguja töötab programmi täitmise ajal ja see käivitub, kui objekti viidete arv jõuab nullini.

Objekti viidete arv suureneb, kui sellele omistatakse uus nimi või see paigutatakse konteinerisse (loendisse, korteisse või sõnastikku). Objekti viidete arv väheneb, kui see kustutatakse kohta , määratakse selle viide ümber või läheb selle viide reguleerimisalast välja. Kui objekti viidete arv jõuab nullini, kogub python selle automaatselt.

img 617dd273789c9

VÄLJUND

img 617dd273c29af

Klassipärand

Samuti saate luua klassi, tuletades selle eelmisest klassist, mainides uue klassi nime järel sulgudes ülemklassi.

Alamklass võib pärida oma ülemklassi atribuudid ja te saate kasutada funktsioone nii, nagu oleksid need alamklassis määratletud. Alamklass võib alistada ka vanema meetodid ja andmeliikmed.

SÜNTAKS

|_+_|

Alustavad meetodid

Saate oma vanemklassi meetodid alistada. Vanemmeetodite alistamise põhjus on see, et võite soovida oma alamklassis ainulaadseid või erinevaid funktsioone. Siin on mõned baasülekoormuse meetodid.

jah ei meetod Kirjeldus
üks__repr__( ise )Hinnatav stringi esitus
kaks__del__( ise )Destruktor, kustutab objekti
3__cmp__ ( ise, x )Objektide võrdlus
4__init__ (ise [,argumente…])Konstruktor (mis tahes valikuliste argumentidega)
5__str__( ise )Prinditav stringi esitus

Regulaaravaldised

Regulaaravaldis on ainulaadne märgijada, mis aitab teil leida või sobitada stringide komplekte, kasutades mustris sisalduvat spetsiaalset süntaksit. Regulaaravaldisi kasutatakse UNIX-i maailmas laialdaselt.

Pythoni moodul pakub Pythonis Perli-laadsete regulaaravaldiste täielikku tuge. Moodul tõstatab erandi.

Sobitamise funktsioon

See proovib sobitada RE mustrit stringiga valikuliste lippudega.

SÜNTAKS

|_+_|
jah ei Parameeter Kirjeldus
ükslipudSee määrab erinevad lipud, kasutades bitipõhist VÕI (|).
kaksmusterSee on regulaaravaldis, mis tuleb sobitada.
3stringSee on string, mida otsitakse, et see sobiks stringi alguses oleva mustriga.

Otsingu funktsioon

See otsib valikuliste lippudega stringist RE-mustri esimest esinemist.

SÜNTAKS

|_+_|
jah ei Parameeter Kirjeldus
ükslipudSee määrab erinevad lipud, kasutades bitipõhist VÕI (|).
kaksmusterSee on regulaaravaldis, mis tuleb sobitada.
3stringSee on string, mida otsitakse, et see sobiks stringi alguses oleva mustriga.

Regulaaravaldise teisendajad

jah ei Parameeter Kirjeldus
üksre.MSee paneb $ vastama rea ​​lõpule ja paneb ^ sobitama mis tahes rea algust.
kaksre.LSee tõlgendab sõnu vastavalt praegusele lokaadile. Tõlgendus mõjutab nii tähestikurühma kui ka sõnapiiri käitumist.
3re.USee tõlgendab tähti vastavalt Unicode'i märgistikule. Lipp mõjutab w, W, , B käitumist.
4re.XSee võimaldab armsamat regulaaravaldise süntaksit. See ignoreerib tühikuid ja käsitleb paopaosita # kommentaarimarkerina.
5re.SSee muudab punkti sobitumaks mis tahes tähemärgiga, sealhulgas reavahetusega.
6re.ISee teostab tõstutundlikku sobitamist.

Regulaaravaldise mustrid

jah ei Muster Kirjeldus
üks.See sobib ühe märgiga, välja arvatud reavahetus.
kaksa| bSee sobib kas a või b-ga.
3[…]See vastab ühele sulgudes olevale märgile.
4[^…]See vastab ühele märgile, mitte sulgudes
5$See sobib rea lõpuga.
6^See sobib rea algusega.
7re*See vastab 0 või enamale eelneva avaldise esinemissagedusele.
8re+See sobib ühe või mitme eelneva avaldise esinemisega.
9re?See vastab eelmise avaldise 0 või 1 esinemissagedusele.
10re{ n}See vastab täpselt eelmise avaldise n esinemissageduse arvule.
üksteistre{ n, m}See ühtib vähemalt n ja m eelneva avaldise esinemisega.
12re{ n,}See vastab n või enamale eelneva avaldise esinemisele.
13(re)See rühmitab regulaaravaldised ja jätab meelde sobitatud teksti.
14(?imx)See lülitab regulaaravaldises ajutiselt sisse suvandid i, m või x.
viisteist(?imx: re)See lülitab ajutiselt sisse sulgudes olevad suvandid i, m või x.
16?: re)See rühmitab regulaaravaldised ilma sobitatud teksti meelde jätmata.
17(?-imx)See lülitab regulaaravaldises ajutiselt välja suvandid i, m või x.
18(?-imx: re)See lülitab sulgudes olevad suvandid i, m või x ajutiselt välja.
19(?#…)kommenteerida.
kakskümmend(?= uuesti)See määrab positsiooni mustri abil. Sellel pole vahemikku.
kakskümmend üks(?! uuesti)See määrab asukoha, kasutades mustri eitust. sellel pole vahemikku.
22(?> uuesti)See sobib sõltumatu mustriga ilma tagasitõmbumiseta.
23SisseSee sobib sõnamärkidega.
24INSee sobib mittesõnaliste tähemärkidega.
25SSee vastab tühikuteta.
26sSee sobib tühikuga.
27DSee vastab mittenumbritele.
28dSee vastab numbritele. Samaväärne [0-9].
2910See vastab n-ndale grupeeritud alamavaldisele, kui see juba ühtib. Vastasel juhul viitab see märgikoodi kaheksandkujulisele esitusviisile.
30TOSee sobib stringi algusega.
31WITHSee sobib stringi lõpuga. Kui reavahetus on olemas, sobib see vahetult enne reavahetust.
32koosSee sobib stringi lõpuga.
33GSee ühtib punktiga, kus viimane matš lõppes.
3. 4 , jne.See sobib reavahetustega, vankri tagastustega, vahekaartidega jne.
35BSee sobib mittesõnaliste piiridega.
361…9See sobib n-nda grupeeritud alamväljendiga.
37See sobib tagasilükkeklahviga (0x08), kui see on sulgudes.

Tegelaste klassid

jah ei Näide Kirjeldus
üks[aeiou]See vastab ühele väiketähelisele vokaalile
kaks[0-9]See vastab mis tahes numbrile; sama mis [0123456789]
3[Pp] ythonSee sobib Pythoniga või Pythoniga
4[a-z]See sobib iga väikese ASCII tähega
5hõõru [te]See sobib rubiini või rubiiniga
6[^aeiou]See sobib kõige muuga peale väiketähelise vokaali
7[^0-9]See vastab kõigele muule peale numbri
8[a-zA-Z0-9]See vastab ükskõik millisele ülaltoodust
9[A-Z]See sobib kõigi ASCII suurtähtedega
10.See sobib ühe märgiga, välja arvatud reavahetus.
üksteistSisseSee sobib sõnamärkidega.
12INSee sobib mittesõnaliste tähemärkidega.
13SSee vastab tühikuteta.
14sSee sobib tühikuga.
viisteistDSee vastab mittenumbritele.
16dSee vastab numbritele. Samaväärne [0-9].

Kordusjuhtumid

jah ei Näide Kirjeldus
üksrubiin+See vastab hõõrumisele pluss 1 või enam ys
kaksrubiin*See vastab rubriigile hõõrumine pluss 0 või enam y
3rubiin?See sobib rubiini või rubiiniga: y on valikuline
4d{3}See vastab täpselt 3 numbrile
5d{3,}See vastab 3 või enamale numbrile
6d{3,5}See vastab 3, 4 või 5 numbrile

Ankrud

jah ei Näide Kirjeldus
üksPython ZSee vastab Pythonile stringi lõpus.
kaksPython$See vastab Pythonile stringi või rea lõpus.
3^PythonSee vastab Pythonile stringi või sisemise rea alguses.
4 APythonSee vastab Pythonile stringi alguses.
5Python (?=!)See sobib Pythoniga, kui sellele järgneb hüüumärk.
6Python (?!!)See sobib Pythoniga, kui sellele ei järgne hüüumärki.
7PythonSee vastab Pythonile sõnapiiril.