Ohjelmointi

Lopullinen Python-aloittelijan opas

30. lokakuuta 2021

Sisällysluettelo

  • Ympäristön asetukset
    • Paikallisen ympäristön asetukset
    • Kuinka saada Python
    • Kuinka asentaa Python
    • Windowsin asennus
    • Unix/Linux asennus
    • MAC-asennus
    • Polun määrittäminen Pythonille
    • Asetuspolku Unix/Linuxille
    • Polun asettaminen Windowsille
  • Python-ympäristömuuttujat
    • Python käynnissä
  • Perussyntaksi
    • Python-tunnisteet
    • Python-lausunto
    • Sisennykset Pythonissa
    • Kommentit Pythonissa
    • Haetaan syötettä
    • Näytä lähtö
  • Muuttujatyypit
    • Arvojen määrittäminen muuttujille
    • Python-tietotyypit
    • jouset
    • Tuples
    • Luettelot
    • Numerot
  • Perusoperaattorit
    • Tehtäväoperaattori
    • Bittikohtainen operaattori
    • Looginen operaattori
    • Aritmeettinen operaattori
    • Vertailuoperaattori
    • Identiteettioperaattori
    • Jäsenyysoperaattori
  • Päätöksenteko
    • Jos lausunto
    • tai muuten
    • Sisäkkäinen jos
    • Jos-elif-toisen-tikkaat
    • Pikakirjoitus if-lause
    • Lyhyesti jos-else-lause
  • Silmukat
    • Vaikka Loop
    • For Loop
    • Sisäkkäiset silmukat
    • Loop Control -lauseet
    • Jatka lausuntoa
    • Katkoilmoitus
    • Passilausunto
  • Numerot
    • Numerotyypin muunnos
    • Satunnaislukufunktiot
    • Trigonometriset funktiot
    • Matemaattiset funktiot
  • jouset
    • Merkkijonon luominen
    • String Erikoisoperaattorit
    • Merkkijonojen muotoiluoperaattorit
    • Pakohahmot
    • Sisäänrakennetut merkkijonomenetelmät
  • Tuples
    • Arvojen käyttäminen Tuplesissa
    • Tuples päivitetään
    • Tuplen perusoperaattorit
    • Sisäänrakennettu Tuple Functions
    • Indeksointi ja viipalointi
    • Tuplen poistaminen
  • Luettelot
    • Arvojen käyttäminen luetteloissa
    • Listojen päivittäminen
    • Perusluettelon operaattorit
    • Sisäänrakennettu luettelo funktioista ja menetelmistä
    • Indeksointi ja viipalointi
    • Poista listat-elementti
  • Sanakirja
    • Sanakirjan luominen
    • Elementtien lisääminen sanakirjaan
    • Elementtien poistaminen sanakirjasta
    • Python-sanakirjamenetelmät
  • Päivämäärä ja aika
    • Aika Tuple
    • Aika moduuli
    • Kalenteri moduuli
  • Toiminnot
    • Kuinka määritellä funktio
    • Toiminnon kutsuminen
    • Läpi viitteellä
    • Ohita arvo
    • Funktioargumentit
    • Vaihtuvapituiset argumentit
    • Vaaditut argumentit
    • Oletusargumentit
    • Avainsana-argumentit
    • Anonyymit toiminnot
  • Moduulit
    • Tuo ilmoitus
    • Tuontilausunto
    • Tuonnista * Lausunto
    • Moduulien sijainti
    • Locals()- ja globals()-funktiot
    • Nimiavaruudet ja laajuus
    • dir( ) -funktio
    • Reload()-funktio
  • Tiedostot I/O
    • Tiedoston avaaminen
    • Tiedostoobjektin attribuutit
    • Tiedoston sulkeminen
    • Lausunnon kanssa
    • Kirjoitusmenetelmä
    • Lukumenetelmä
    • Rename()-metodi
    • Poista()-menetelmä
    • Tiedoston sijainti
  • Poikkeukset
    • Mikä on poikkeus?
    • Poikkeuksen käsittely
    • Poikkeuksen esittäminen
    • Luettelo vakiopoikkeuksista
    • Käyttäjän määrittämät poikkeukset
    • Väitteet Pythonissa
  • Luokat ja esineet
    • Luokkien luominen
    • Luokkaobjektit
    • Attribuuttien käyttö
    • Sisäänrakennetut luokan attribuutit
    • Roskakokoelma
    • Luokkaperintö
    • Ohittavat menetelmät
    • Säännölliset lausekkeet
    • Match-toiminto
    • Hakutoiminto
    • Säännöllisten lausekkeiden muokkaajat
    • Säännölliset lausekkeet
    • Hahmoluokat
    • Toistotapaukset
    • Ankkurit
  • CGI ohjelmointi
    • Nettiselailu
    • HTTP-otsikko
    • CGI-ympäristömuuttujat
    • GET-menetelmä
    • POST-menetelmä
    • Evästeiden käyttö CGI:ssä
    • Kuinka se toimii?
  • MySQL-tietokannan käyttö
    • Tietokantataulukon luominen
    • INSERT-toiminto
    • LUE Käyttö
    • Päivitystoiminto
    • POISTA-toiminto
    • Liiketoimien suorittaminen
    • COMMIT-toiminto
    • ROLLBACK-toiminto
    • Tietokannan yhteyden katkaiseminen
    • Käsittelyvirheet
  • Verkot
  • Sähköpostin lähettäminen
  • Monisäikeinen ohjelmointi
  • XML-käsittely
    • Mikä on XML?
    • XML Parser -arkkitehtuurit ja API:t
    • XML:n jäsentäminen SAX API:illa
      • Make_parser -menetelmä
      • Jäsennysmenetelmä
      • ParseString-menetelmä
  • GUI ohjelmointi
    • Tkinter-widgetit
  • Geometrian hallinta
  • Suositellut artikkelit

Verkot

Python tarjoaa kaksi pääsyä verkkopalveluihin. Matalalla tasolla pääset käsiksi käyttöjärjestelmän perussocket-tukeen, jonka avulla voit toteuttaa palvelimia ja asiakkaita yhteyssuuntautuneille ja yhteydettömille protokollille.

Pythonilla on kirjastoja, jotka tarjoavat korkeamman tason pääsyn sovellustason verkkoprotokolliin, kuten FTP, HTTP ja niin edelleen.

Mitä ovat pistorasiat?

Pistorasiat ovat viestintäkanavan päätepisteitä. Se voi kommunikoida prosessin sisällä, prosessien välillä tai toimintojen välillä eri mantereilla.

Socketit voidaan toteuttaa useille eri kanavatyypeille: UDP, TCP ja niin edelleen. The pistorasia kirjasto tarjoaa tietyn luokan vakiokuljetusten käsittelyyn sekä yleisen rajapinnan muiden ohjaamiseen.

kyllä ​​ei Termi Kuvaus
yksi tyyppiTietoliikenne kahden päätepisteen välillä SOCK_DGRAM yhteydettömille protokollille ja SOCK_STREAM yhteyssuuntautuneille protokollille.
kaksi VerkkotunnusProtokollat, joita käytetään siirtomekanismina. Nämä arvot ovat vakioita, kuten AF_INET, PF_INET, PF_UNIX, PF_X25 ja niin edelleen.
3 porttiPalvelin kuuntelee asiakkaita, jotka soittavat yhdessä tai useammassa portissa. Portti voi olla Fixnum-porttinumero, porttinumeron sisältävä merkkijono.
4hostnameA merkkijono voi olla isäntänimi, an IPV6 osoite kaksoispisteessä tai katkoviivainen neliosoitemerkkijono , joka määrittää INADDR_BROADCAST-osoitteen.Nollapituinen merkkijono, joka määrittää INADDR_ANYKokonaisluvun, joka tulkitaan binääriosoitteeksi isäntätavujärjestyksessä.
5 protokollaaTyypillisesti nolla, sitä voidaan käyttää protokollan muunnelman tunnistamiseen toimialueen ja tyypin sisällä.

The pistorasia Moduuli

Sinun täytyy käyttää socket.socket() pistorasiaan luomiseksi.

s = socket.socket (socket_family, socket_type, protokolla = 0)

kyllä ​​ei Menetelmä Kuvaus
yksi s.listen()Se määrittää ja käynnistää TCP-kuuntelijan.
kaksi s.bind()Se sitoo osoitteen (isäntänimi, porttinumeropari) socketiin.
3 s.connect()Se käynnistää aktiivisesti TCP-palvelinyhteyden.
4 s.accept()Se hyväksyy passiivisesti TCP-asiakasyhteydet odottaen yhteyden muodostumista (estäminen).
5s.recv()Se vastaanottaa TCP viesti 6 s.close()Se sulkee socketin 7 s.sendto()Se lähettää UDP:tä viesti 8 s.recvfrom()Se vastaanottaa UDP-viestin 9 socket.gethostname()Se palauttaa isäntänimen.
10 s.send()Se lähettää TCP-sanoman

Python Internet-moduulit

kyllä ​​ei pöytäkirja Yhteinen toiminto Portti nro Python-moduuli
yksi GopherAsiakirjojen siirrot70gopherlib, urllib
kaksi FTPTiedostojen siirrotkaksikymmentäftplib, urlli
3 POP3Haetaan sähköpostia110poplib
4 TelnetKomentorivit23telnetlib
5 IMAP4Haetaan sähköpostia143imaplib
6 HTTPverkkosivut80httplib, urllib, xmlrpclib
7 NNTPUsenet uutiset119nntplib
8 SMTPSähköpostin lähettäminen25smtplib

Sähköpostin lähettäminen

SMTP (Simple Mail Transfer Protocol) on protokolla, joka hoitaa sähköpostin reitityksen ja sähköpostin lähettämisen sähköpostipalvelimien välillä.

Python tarjoaa smtplib-moduulin, joka määrittää SMTP-asiakasistuntoobjektin, jota käytetään sähköpostin lähettämiseen Internet-koneeseen ESMTP- tai SMTP-kuuntelijadaemonilla.

SYNTAKSI

|_+_|

Muutama yksityiskohta parametreista −

  • isäntä - Se on isäntä, joka käyttää SMTP-palvelintasi. Voit määrittää toimialueen nimen tai isännän IP-osoitteen.
  • portti − Jos tarjoat isäntäargumentin, sinun on määritettävä portti, jota SMTP-palvelin kuuntelee.
  • paikallinen_isäntänimi − Jos SMTP-palvelin on käynnissä paikallisessa koneessa, voit määrittää valinnaksi vain paikallisen palvelimen.

SMTP-objektilla on instanssimenetelmä, joka tunnetaan nimellä sendmail, jota käytetään viestin lähettämiseen. Siinä on kolme parametria −

  • Lähettäjä − merkkijono, jossa on lähettäjän osoite.
  • Vastaanottimet − merkkijonoluettelo, yksi jokaiselle vastaanottajalle.
  • Viesti − Viesti merkkijonona, joka on muotoiltu eri RFC:issä määritetyllä tavalla.

HTML-sähköpostin lähettäminen Pythonilla

Kun lähetät a tekstiviesti Pythonilla sisältö käsitellään yksinkertaisena tekstinä. Jos sisällytät tekstiviestiin HTML-tageja, se näytetään yksinkertaisina HTML-tageina, eikä tekstiä ole muotoiltu HTML-syntaksin mukaan. Python tarjoaa sinulle mahdollisuuden lähettää HTML-viesti varsinaisena HTML-viestinä.

Kun lähetät sähköpostiviestiä, voit määrittää Mime-version, sisältötyypin ja merkistön HTML-sähköpostin lähettämistä varten.

Liitteiden lähettäminen sähköpostina

Jos haluat lähettää sähköpostin, jossa on sekoitettua sisältöä, sinun on asetettava Sisältötyyppi-otsikko moniosaiseksi/sekoitetuksi. Teksti- ja liiteosat voidaan määrittää rajojen sisällä.

Raja alkaa kahdella tavuviivalla, jota seuraa yksilöllinen numero, jota ei voi esiintyä sähköpostin viestiosassa. Sähköpostin viimeistä osaa ilmaisevan viimeisen reunan tulee myös päättyä kahteen tavuviivaan. Liitetyt tiedostot on koodattu pack(m)-funktiolla, jotta niillä on base64-koodaus ennen lähetystä.

Monisäikeinen ohjelmointi

Eri säikeiden ajaminen on samanlaista kuin eri ohjelmien ajaminen.

  • Prosessin useat säikeet jakavat saman tietotilan pääsäikeen kanssa ja se jakaa tietoja keskenään nopeammin kuin jos ne olisivat erillisiä prosesseja.
  • Säikeitä kutsutaan joskus kevyiksi prosesseiksi, eivätkä ne vaadi paljon muistia. Ne ovat halvempia kuin menetelmät.

Säie koostuu alusta, suoritusjaksosta ja päätteestä. Siinä on ohjeosoitin, joka seuraa, missä konteksti on parhaillaan käynnissä.

  • Se voidaan keskeyttää.
  • Se voidaan asettaa tilapäisesti pitoon muiden säikeiden ollessa käynnissä – tätä kutsutaan antautumiseksi.

Aloitetaan uusi ketju

Jos haluat luoda toisen säikeen, sinun on kutsuttava seuraava menetelmä, joka on käytettävissä säiemoduulissa −

thread.start_new_thread (funktio, args[, kwargs])

Tämä menetelmä mahdollistaa nopean ja tehokkaan tavan luoda uusia säikeitä sekä ikkunassa että Linuxissa. Se palaa välittömästi, ja alasäie alkaa ja kutsuu funktiota hyväksytyllä argumenttiluettelolla. Kun funktio palaa, lanka päättyy.

Tässä argumentti on joukko argumentteja, jotka käyttävät tyhjää monikkoa kutsumaan funktiota välittämättä argumentteja.

Langoitusmoduuli

Python 2.4:n uusi ketjutusmoduuli tarjoaa tehokkaamman ja korkeatasoisemman tuen säikeille kuin edellisen osan säiettämoduuli.

Pujotusmoduuli paljastaa lankamoduulin menetelmät ja tarjoaa joitain lisätekniikoita

    threading.activeCount()− Se palauttaa useita aktiivisia säikeitä.threading.currentThread()− Se palauttaa useita säiettäobjekteja soittajan säikeenohjaimessa.threading.enumerate()− Se palauttaa luettelon tällä hetkellä aktiivisista säikeistä.juosta()− Se on ketjun sisääntulokohta.alkaa()− Se aloittaa säikeen kutsumalla run-menetelmää.liity ([aika])− Se odottaa säikeiden päättymistä.on elossa()− Se tarkistaa, onko säiettä vielä käynnissä.getName()− Se palauttaa säikeen nimen.setName()− Se määrittää säikeen nimen.

Synkronoidaan säikeitä

Pythonin mukana toimitettu ketjutusmoduuli sisältää lukitusmekanismin, joka auttaa sinua synkronoimaan säikeet. Uusi lukko luodaan soittamalla Lukko () menetelmä, ja se palauttaa uuden lukon.

The esto Lukitusobjektin menetelmää käytetään pakottamaan säikeet juoksemaan. The esto parametrin avulla voit ohjata lankaa, joka odottaa lukon saamista.

Jos esto on asetettu arvoon 0, säie palaa välittömästi arvolla 0, jos lukkoa ei saada, ja 1:llä, jos lukko on hankittu.

The vapauttaa () lukkomenetelmää käytetään lukon vapauttamiseen, kun sitä ei enää tarvita.

Monisäikeinen prioriteettijono

Jono-moduuli auttaa sinua luomaan uuden jonoobjektin, joka sisältää tietyn määrän kohteita. Nämä ovat seuraavat menetelmät jonon hallintaan −

    saada()− Se poistaa ja palauttaa kohteen jonosta.laittaa()− Se lisää kohteen jonoon.qsize()− Se palauttaa useita kohteita, jotka ovat tällä hetkellä jonossa.tyhjä()− Palauttaa True, jos jono on tyhjä. Väärin muuten.koko()− Palauttaa True, jos jono on täynnä; muuten, Väärä.