Yksinkertainen kieli ohjelmoinnista python 3:ssa. Python-ohjelmointikieli aloittelijoille. Virtauksen ohjausohjeet - jos, jonkin aikaa

Pari vuosikymmentä sitten ohjelmoijat näyttivät olevan jonkinlaisia ​​shamaaneja, jotka tiesivät, mikä ei ollut muiden saatavilla. Joskus ihmiset oppivat ohjelmoinnin polvillaan kirjoittamalla koodia paperille, koska "tietokonelaitteiden pitoisuus asukasta kohden" oli erittäin alhainen. Nyt on vaikea löytää henkilöä, jolla ei ole kotona pöytätietokonetta tai kannettavaa tietokonetta. Koulutusteknologiat eivät myöskään pysy paikallaan.

Hieman historiaa

Python-ohjelmointikielen kehitti Guido van Rossum 1980-luvun lopulla. Guido oli tuolloin hollantilaisen CWI-instituutin työntekijä. Hän kirjoitti tämän kielen vapaa-ajallaan ja lisäsi siihen ajatuksia ABC-kielestä, jonka kehittämiseen hän osallistui.

Kieltä ei nimetty matelijan kunniaksi. Itse asiassa nimen idea oli suosittu brittiläinen 1970-luvun komediaohjelma nimeltä "Monty Python's Flying Circus", vaikka Pythonia verrataan silti paljon useammin käärmeeseen, koska jopa virallisen verkkosivuston tunnus (se näyttää kaksi käärmettä päät) näyttää.

Python-ohjelmointikielen suosion syynä ei ole vain van Rossumin suunnitteluintuitiota. Tyhjästä oppimisesta tulee miellyttävä ja helppo kokemus, kun otetaan huomioon ystävällinen käyttäjäyhteisö.

Ei niin kauan sitten, vuonna 2008, julkaistiin ensimmäinen pitkään testattu Python 3000 (3.0) versio, jossa monet arkkitehtoniset puutteet poistettiin. Samaan aikaan kehittäjät yrittivät säilyttää yhteensopivuuden kielen aiempien versioiden kanssa. Vaikka uudempi versio on olemassa, molemmat haarat (2.x ja 3.x) ovat tuettuja.

Tiivis ohjelmointikieli

Pythonilla on monia etuja muihin kieliin verrattuna. Se on ymmärrettävää lähes intuitiivisesti, sillä on "läpinäkyvä" syntaksi. Tämä tarkoittaa, että tällä kielellä oleva ohjelmakoodi on paljon helpompi lukea, mikä vähentää aikaa paitsi sen kirjoittamiseen, myös erilaisiin parannuksiin ja tarkistuksiin.

Tietenkin "vanhan koulun" ohjelmoija sanoo, että sinun on ehdottomasti osattava useita kieliä, tai voit jopa aloittaa konekoodin oppimisesta. Mutta Python-kielen ohjelmointikurssin suorittamisen jälkeen henkilö ei saa vain erityistä tietoa, vaan myös mahdollisuuden toteuttaa luova luonne luomalla itselleen hyödyllisiä sovelluksia ja ohjelmia. Ehkä pian ohjelmointi on yhtä välttämätöntä kuin vieraan kielen taito.

Itsetunnon puute

On syytä hylätä väärinkäsitys, että ohjelmointi on vaikeaa. Ei, ohjelmointi on paljon mielenkiintoisempaa kuin miltä se näyttää; muu toiminta ja niin sanottu "ajan puute" tai laiskuus voivat häiritä.

Peruskirjallisuus auttaa sinua oppimaan ohjelmoinnin nopeasti Python-kielellä. Koulutus tulisi aloittaa lukemalla kaksi kirjaa, joista voit oppia perusteet. Ensimmäinen on Mark Lutzin "Python Programming" ja toinen Mark Summerfieldin "Python 3 Programming". Lutzin kirjassa kuvataan yksityiskohtaisesti, joskus jopa liikaa, kaikki perusperiaatteet, joille kieli rakentuu. Jotkut suosittelevat Mark Lutzin lukemista ei hallitsemiseksi, vaan perustietojen syventämiseksi. Summerfieldin kirja selittää kaiken ytimekkäämmin, kirjoittaja ei pelota lukijaa millään vaikeuksilla. On muutakin kirjallisuutta, mutta nämä oppikirjat ovat hyödyllisimpiä ja informatiivisimpia.

johdantokurssi

Muistellaanpa peruskoulua. Yleensä jopa lapsi tulee ensimmäiselle luokalle vähäisellä tiedolla: vanhemmat opiskelivat jonkun kanssa, joku meni "nollalle". Sama koskee Python-ohjelmointikielen oppimista. Se on todella kätevä ja "läpinäkyvä", mutta ilman vähimmäistietoa ohjelmien perusperiaatteista koulutus on vaikeaa. Se on kuin musiikin oppimista kuuntelematta musiikkia. Siksi niiden, jotka eivät ole koskaan kohdanneet ohjelmointia, tulisi tutustua "aloitusminimiin".

CS50-luennot ovat hyödyllinen apu. Tämä on Harvardin yliopiston Java Script -ohjelmoinnin kurssi, mutta ensimmäiset luennot selittävät tietokoneen ja ohjelmien välistä vuorovaikutusta yleisesti saatavilla olevalla ja ymmärrettävällä tavalla. Venäjänkielisellä käyttäjällä on käytettävissään tämän kurssin videotallenteet käännöksineen, lisämateriaaleineen, luentojen tekstiversioina ja käytännön tehtävissä. Videoita löytyy melkein mistä tahansa, kuten YouTubesta, mutta koko sisältö on Java Script -sivustolla.

Internetissä

Python-ohjelmointikieli on saamassa suosiota, joten jo pitkään on ollut useita portaaleja, joissa on paljon itseoppimismateriaalia. Esimerkiksi "Python 3 aloittelijoille". Tällä sivustolla on paljon materiaalia aloittelijoille, sitä voidaan käyttää huijauslehtenä. Codecademyn verkkosivuilla on myös suuri määrä tietoa tästä aiheesta, ja niihin pääsee ilmaiseksi.

Foorumiviestintä on tärkeää. Yksin oppiminen on aina vaikeampaa, joten älä unohda eri yhteisöjä.

Maksulliset kurssit

Voit aina käyttää maksullisia kursseja, mutta joskus se maksaa paljon rahaa, ja tulos voi olla epätyydyttävä. Siksi on tietysti suositeltavaa valita kursseja, jotka tarjoavat ilmaisen johdantotehtävän. Esimerkiksi GeekBrainsissa on intensiivinen aihe "Python Programming Fundamentals". Tunti on ilmainen ja järjestetään 10 päivän välein. Rekisteröityäksesi sinun tulee kirjautua sisään sivustolle.

Vinkki: Minkä kurssin valitsetkin, opi ensin kielen perusteet, jotta et tuhlaa aikaa sellaiseen, jonka voit helposti oppia itse. Riittää, kun luet yllä olevat kirjat.

Tietysti, kun teoria on hallussa, haluan harjoitella. Tässä on mainittava Nick Parlanten luennot. Ne ovat englanninkielisiä, vaikka yleensä englanninkielistä opetuskirjallisuutta on paljon, eikä tämän pitäisi olla yllättävää. Luennoilla Nick ei vain opeta Python-ohjelmointikieltä, vaan antaa myös erinomaisia ​​käytännön tehtäviä.

Käyttö

Python-ohjelmointikieltä on käytetty luomaan monia sovelluksia, joita monet ihmiset käyttävät päivittäin. Tämä on esimerkiksi BitTorrent torrent -asiakasohjelman kuudes versio. Myös "Python" ("Pyton") käytetään bittikarttagrafiikkaeditorissa Gimp. Sen avulla luodaan esimerkiksi lisämoduuleja, suodattimia. Suuri osa Civilization IV:stä ja Batterfield 2:sta on kirjoitettu tällä kielellä.

Pythonia käyttävät yritykset, kuten Google, Facebook, Instagram, Dropbox ja Pinterest. Se toimii myös Yandex Disk -sovelluksen ytimessä. Noin 10 % yrityksen työntekijöistä kirjoittaa Pythonilla, ja monet ohjelmoijat kutsuvat sitä suosikkikielekseen.

Kuinka päästä alkuun

Mikään koodi ei voi toimia "ilmassa", myös Python-ohjelmointikieli noudattaa tätä sääntöä. Oppiminen tyhjästä, vaikka se alkaa teoriasta, itse asiassa voidaan sanoa, että se alkaa työympäristön asentamisesta henkilökohtaiseen tietokoneeseen. Kuinka tehdä se? Se on yksinkertaista: sinun on seurattava virallisen Python-verkkosivuston linkkiä, ladattava ja suoritettava asennusohjelma ja noudatettava huolellisesti sen ehdottamia ohjeita.

Huomaa, että sinun on ladattava tietokoneellesi asennettuun käyttöjärjestelmään sopiva tiedosto!

Jos asennus onnistui, avaa konsoli (yleensä tämä voidaan tehdä pikanäppäimellä "ctrl + alt + T"). Nyt voit kirjoittaa ensimmäisen ohjelman. Kirjoita esimerkiksi "python3". Jos konsoli näytti "tervehdyksen", jossa ilmoitetaan ohjelman versio (esimerkiksi 3.4.0), kaikki on kunnossa, jos ei, sinun on asennettava "Python" kolmas versio komennolla: "sudo apt-get install python3".
Tätä ei kuitenkaan vaadita. Voit kirjoittaa koodin missä tahansa kätevässä tekstieditorissa ja suorittaa sen sitten konsolin kautta tai voit käyttää jakelun mukana tulevaa IDLE-kehitysympäristöä.

Käynnistä IDLE. Pienen ohjelman luomiseen tarvitaan vain yksi koodirivi.

print ("Hei maailma!")

Kirjoita tämä koodi IDLE-ikkunaan ja paina Enter. Ympäristö vastaa välittömästi toiminnolla - se näyttää vaaditun tekstin näytöllä. Ensimmäinen ohjelma on valmis.

Ohjelmointi Pythonissa

Osa 1. Kieliominaisuudet ja perussyntaksi

Sisältösarja:

Kannattaako Python oppia?

Python on yksi suosituimmista nykyaikaisista ohjelmointikielistä. Se sopii useiden ongelmien ratkaisemiseen ja tarjoaa samat ominaisuudet kuin muut ohjelmointikielet: dynaamisuus, tuki OOP:lle ja cross-platformille. Python-kehityksen aloitti Guido Van Rossum jo 1990-luvun puolivälissä, joten tähän mennessä se on onnistunut pääsemään eroon tavallisista "lapsuuden" sairauksista, kehittämään merkittävästi kielen parhaita puolia ja houkuttelemaan monia ohjelmoijia, jotka käyttävät Python-sovellusta toteuttaessaan omiaan. hankkeita.

Monet ohjelmoijat katsovat, että on välttämätöntä opetella vain "klassisia" ohjelmointikieliä, kuten Java tai C++, koska muut kielet eivät kuitenkaan pysty tarjoamaan samoja ominaisuuksia. Viime aikoina on kuitenkin vallinnut käsitys, että ohjelmoijan on toivottavaa osata useampia kieliä, koska se laajentaa hänen näköalojaan, jolloin hän pystyy ratkaisemaan tehtäviä luovemmin ja lisää kilpailukykyään työmarkkinoilla.

Kahden kielen, kuten Java ja C++, täydellinen oppiminen on melko vaikeaa ja vie paljon aikaa; Lisäksi monet näiden kielten näkökohdat ovat ristiriidassa keskenään. Samalla Python sopii erinomaisesti toisen kielen rooliin, koska se sulautuu välittömästi jo olemassa olevan OOP-tiedon ansiosta ja sen ominaisuudet eivät ole ristiriidassa, vaan täydentävät toisen ohjelmoinnin kanssa työskennellessä saatua kokemusta. Kieli.

Jos ohjelmoija on vasta aloittamassa ohjelmistokehityksen alalla, Python on ihanteellinen "johdanto"-ohjelmointikieli. Lyhyytensä ansiosta sen avulla voit nopeasti hallita kielen syntaksin, ja vuosien varrella muodostuneiden aksioomien muodossa olevan "perinnön" puuttuminen auttaa hallitsemaan nopeasti OOP:n. Näiden tekijöiden vuoksi Pythonin oppimiskäyrä on melko lyhyt ja ohjelmoija voi siirtyä tapaustutkimuksista kaupallisiin projekteihin.

Siksi, olipa tämän artikkelin lukija kokenut ohjelmoija tai aloittelija ohjelmistokehityksen alalla, vastauksen tämän osion otsikon olevaan kysymykseen tulee olla jyrkkä kyllä.

Tämä artikkelisarja on suunniteltu auttamaan sinua onnistuneesti voittamaan oppimiskäyrän tarjoamalla jatkuvasti tietoa kielen perusperiaatteista sen edistyneisiin ominaisuuksiin integroitaessa muita tekniikoita. Ensimmäisessä artikkelissa puhumme Pythonin pääominaisuuksista ja syntaksista. Tulevaisuudessa tarkastelemme tämän suositun kielen kanssa työskentelyn monimutkaisempia puolia, erityisesti Pythonin olioohjelmointia.

Python-arkkitehtuuri

Mikä tahansa kieli, olipa kyseessä ohjelmointi tai viestintä, koostuu vähintään kahdesta osasta - sanastosta ja syntaksista. Python-kieli on järjestetty samalla tavalla, ja se tarjoaa syntaksin suoritettavia ohjelmia muodostavien lausekkeiden luomiseen sekä sanakirjan, joukon toimintoja vakiokirjaston ja lisäosien muodossa.

Kuten jo mainittiin, Pythonin syntaksi on varsin ytimekäs, varsinkin Javaan tai C++:aan verrattuna. Toisaalta tämä on hyvä, koska mitä yksinkertaisempi syntaksi, sitä helpompi se on oppia ja sitä vähemmän virheitä voit tehdä sen käytössä. Tällaisilla kielillä on kuitenkin haittapuoli - niitä voidaan käyttää yksinkertaisimman tiedon välittämiseen, eivätkä ne voi ilmaista monimutkaisia ​​rakenteita.

Tämä ei koske Pythonia, koska se on yksinkertainen mutta yksinkertaistettu kieli. Tosiasia on, että Python on kieli, jolla on korkeampi abstraktiotaso, korkeampi esimerkiksi kuin Java ja C ++, ja sen avulla voit siirtää saman määrän tietoa pienemmässä määrässä lähdekoodia.

Python on myös yleiskäyttöinen kieli, joten sitä voidaan käyttää lähes kaikilla ohjelmistokehityksen osa-alueilla (erillinen, asiakaspalvelin, verkkosovellukset) ja kaikilla aihealueilla. Lisäksi Python integroituu helposti olemassa oleviin komponentteihin, mikä mahdollistaa Pythonin upottamisen jo kirjoitettuihin sovelluksiin.

Toinen osa Pythonin menestystä ovat sen laajennusmoduulit, sekä vakio- että erityiset. Pythonin vakiolaajennusmoduulit ovat hyvin suunniteltuja ja todistettuja toimintoja jokaisessa ohjelmistokehitysprojektissa ilmenevien ongelmien ratkaisemiseen, merkkijonojen ja tekstinkäsittelyyn, vuorovaikutukseen käyttöjärjestelmän kanssa, verkkosovellusten tukeen. Nämä moduulit on myös kirjoitettu Pythonilla, joten niillä on tärkein ominaisuus - cross-platform, jonka avulla voit nopeasti ja kivuttomasti siirtää projekteja käyttöjärjestelmästä toiseen.

Jos tarvittavaa toiminnallisuutta ei ollut Python-standardikirjastossa, voit luoda oman laajennusmoduulin myöhempää käyttöä varten. Tässä on syytä huomata, että Pythonin laajennusmoduuleja voidaan luoda paitsi itse Pythonissa, myös käyttämällä muita ohjelmointikieliä. Tällöin on mahdollista toteuttaa tehokkaammin resurssiintensiivisiä tehtäviä, kuten monimutkaisia ​​tieteellisiä laskelmia, mutta cross-platformin etu menetetään, jos laajennusmoduulin kieli ei ole itsessään cross-platform, kuten Python.

Python-ajoaika

Kuten tiedät, kaikki cross-platform-ohjelmointikielet on rakennettu saman mallin mukaan: tämä on todella kannettava lähdekoodi ja ajonaikainen ympäristö, joka ei ole kannettava ja joka on erityinen jokaiselle alustalle. Tämä ajonaika sisältää yleensä tulkin, joka suorittaa lähdekoodin, ja erilaisia ​​apuohjelmia, joita tarvitaan sovelluksen ylläpitämiseen - debuggerin, käänteisen kokoajan ja niin edelleen.

Java Runtime Environment sisältää lisäksi kääntäjän, koska lähdekoodi on käännettävä Java-virtuaalikoneen tavukoodiksi. Python-ajoaika sisältää vain tulkin, joka on myös kääntäjä, mutta kääntää Python-lähdekoodin suoraan kohdealustan alkuperäiseen koodiin.

Pythonille on tällä hetkellä kolme tunnettua ajonaikaista toteutusta: CPython, Jython ja Python.NET. Kuten nimestä voi päätellä, ensimmäinen ympäristö on toteutettu C:ssä, toinen Javassa ja viimeinen .NET:ssä.

CPython-ajoaikaa kutsutaan yleensä yksinkertaisesti Pythoniksi, ja kun ihmiset puhuvat Pythonista, tähän toteutukseen viitataan useimmiten. Tämä toteutus koostuu tulkista ja C-kielellä kirjoitetuista laajennusmoduuleista ja sitä voidaan käyttää millä tahansa alustalla, jolle on saatavilla standardi C-kääntäjä. Lisäksi ajonaikaisesta on jo käännetty versioita eri käyttöjärjestelmille, mukaan lukien OC Windows -versiot ja erilaiset jakelut.linux. Tässä ja myöhemmissä artikkeleissa CPython otetaan huomioon, ellei erikseen toisin mainita.

Jython-ajoaika on Python-toteutus Java Virtual Machinen (JVM) kanssa työskentelemiseen. Kaikki JVM-versiot ovat tuettuja, alkaen versiosta 1.2.2 (Javan nykyinen versio on 1.6). Jython vaatii asennetun Java-koneen (Java-ajonaikainen ympäristö) ja jonkin verran Java-ohjelmointikielen tuntemusta. Sinun ei tarvitse osata kirjoittaa Java-lähdekoodia, mutta sinun on tunnettava JAR-tiedostot ja Java-sovelmat sekä dokumentaatio JavaDOC-muodossa.

Se, mikä ympäristön versio valitaan, riippuu yksinomaan ohjelmoijan mieltymyksistä, yleensä on suositeltavaa pitää sekä CPython että Jython tietokoneessa, koska ne eivät ole ristiriidassa keskenään, vaan täydentävät toisiaan. CPython-ympäristö on nopeampi, koska siinä ei ole JVM:n muodossa olevaa välikerrosta; Lisäksi Pythonin päivitetyt versiot julkaistaan ​​ensin CPython-ympäristönä. Jython voi kuitenkin käyttää mitä tahansa Java-luokkaa laajennusmoduulina ja toimia millä tahansa alustalla, jolle on olemassa JVM-toteutus.

Molemmat suoritusajat on julkaistu tunnetun GPL:n kanssa yhteensopivalla lisenssillä, joten niitä voidaan käyttää sekä kaupallisten että ilmaisten ohjelmistojen kehittämiseen. Suurin osa Pythonin laajennusmoduuleista julkaistaan ​​myös GPL-lisenssillä ja niitä voidaan käyttää vapaasti missä tahansa projektissa, mutta on myös kaupallisia laajennuksia tai laajennuksia, joissa on tiukemmat lisenssit. Siksi, kun käytät Pythonia kaupallisessa projektissa, sinun on oltava tietoinen laajennuksen laajennuslisenssien rajoituksista.

Pythonin käytön aloittaminen

Ennen kuin voit aloittaa Pythonin käytön, sinun on asennettava sen ajonaikainen ympäristö - tässä artikkelissa se on CPython ja vastaavasti python-tulkki. Asennustapoja on useita: kokeneet käyttäjät voivat kääntää Pythonin itse sen julkisesta lähdekoodista, voit myös ladata valmiita suoritettavia tiedostoja tiettyä käyttöjärjestelmää varten www.python.org-verkkosivustolta ja lopuksi monet Linux-jakelut tulevat mukana Python-tulkki on jo esiasennettu. Tämä artikkeli käyttää Python 2.x:n Windows-versiota, mutta toimitetut esimerkit voidaan suorittaa missä tahansa Python-versiossa.

Kun asennusohjelma on ottanut Python-suoritettavat tiedostot käyttöön määritettyyn hakemistoon, sinun on tarkistettava seuraavien järjestelmämuuttujien arvot:

  • PATH. Tämän muuttujan tulee sisältää polku hakemistoon, johon Python on asennettu, jotta käyttöjärjestelmä voi löytää sen.
  • PYTHONHOME. Tämän muuttujan tulee sisältää vain polku hakemistoon, johon Python on asennettu. Tämän hakemiston tulisi sisältää myös lib-alihakemisto, josta etsitään vakio Python-moduuleja.
  • PYTHONPATH. Muuttuja, jossa on luettelo hakemistoista, jotka sisältävät laajennusmoduuleja, jotka yhdistetään Pythoniin (luettelon elementit on erotettava järjestelmäerottimella).
  • PYTHONSTARTUP . Valinnainen muuttuja, joka määrittää polun Python-komentosarjaan, joka tulee suorittaa aina, kun interaktiivinen Python-tulkki-istunto käynnistetään.

Tulkin kanssa työskentelyn komentorivillä on seuraava rakenne.

PYTHONHOME\python (valinnat) [ -c komento | skriptitiedosto | - ] (argumentit)

Pythonin interaktiivinen tila

Jos käynnistät tulkin määrittämättä komentoa tai komentosarjatiedostoa, se toimii interaktiivisessa tilassa. Tässä tilassa käynnistetään erityinen Python-kuori, johon voit syöttää yksittäisiä komentoja tai lausekkeita, ja niiden arvo lasketaan välittömästi. Tämä on erittäin kätevää Python-opetuksessa, koska voit heti tarkistaa tietyn rakenteen oikeellisuuden.

Arvioidun lausekkeen arvo tallennetaan erityiseen muuttujaan nimeltä Single Underscore (_), jotta sitä voidaan käyttää myöhemmissä lausekkeissa. Voit lopettaa interaktiivisen istunnon painamalla Ctrl-Z Windowsissa tai Ctrl-D Linuxissa.

Vaihtoehdot ovat valinnaisia ​​merkkijonoarvoja, jotka voivat muuttaa tulkin toimintaa istunnon aikana; niiden merkitystä käsitellään tässä ja myöhemmissä artikkeleissa. Vaihtoehtoja seuraa joko yksi komento, joka tulkin tulee suorittaa, tai polku tiedostoon, joka sisältää suoritettavan komentosarjan. On syytä huomata, että komento voi koostua useista lausekkeista, jotka on erotettu puolipisteillä ja jotka on suljettava lainausmerkein, jotta käyttöjärjestelmä voi välittää sen oikein tulkille. Argumentit ovat parametreja, jotka välitetään jatkokäsittelyä varten suoritettavalle komentosarjalle; ne välitetään ohjelmalle merkkijonoina ja erotetaan välilyönneillä.

Voit suorittaa seuraavat komennot varmistaaksesi, että Python on asennettu oikein ja toimii:

c:\>python-v
c:\> python –c "tuontiaika; tulostusaika.asctime()"

Vaihtoehto -v näyttää käytetyn Python-toteutuksen version ja poistuu, kun taas toinen komento tulostaa järjestelmän aika-arvon näytölle.

Python-komentosarjoja voi kirjoittaa missä tahansa tekstieditorissa, koska ne ovat pelkkiä tekstitiedostoja, mutta Pythonin kanssa toimivia erityisiä kehitysympäristöjä on olemassa.

Python-syntaksin perusteet

Python-lähdekoodiskriptit koostuvat ns loogisia merkkijonoja, joista jokainen puolestaan ​​koostuu fyysiset jouset. #-symbolia käytetään merkitsemään kommentteja. Tulkki jättää huomiotta kommentit ja tyhjät rivit.

Seuraava on erittäin tärkeä näkökohta, joka saattaa tuntua oudolta ohjelmoijille, jotka oppivat Pythonin toisena ohjelmointikielenä. Asia on siinä, että Pythonissa ei ole symbolia, joka olisi vastuussa lausekkeiden erottamisesta toisistaan ​​lähdekoodissa, kuten esimerkiksi puolipiste (;) C++:ssa tai Javassa. Puolipisteen avulla voit erottaa useita käskyjä, jos ne ovat samalla fyysisellä rivillä. Ei ole myöskään sellaista rakennetta kuin kiharat sulut (), jonka avulla voit yhdistää joukon ohjeita yhdeksi lohkoksi.

Fyysiset merkkijonot erotetaan itse rivin loppumerkillä, mutta jos lauseke on liian pitkä yhdelle merkkijonolle, voidaan nämä kaksi fyysistä merkkijonoa yhdistää yhdeksi loogiseks. Tätä varten sinun on syötettävä kenoviivamerkki (\) ensimmäisen rivin loppuun, ja sitten tulkki tulkitsee seuraavan rivin jatkoksi ensimmäiselle, mutta muut merkit eivät voi olla ensimmäisellä rivillä merkin \ jälkeen, esimerkiksi kommentti, jossa on #. Sisennystä käytetään korostamaan koodilohkoja. Loogiset rivit, joilla on sama sisennyskoko, muodostavat lohkon, ja lohko päättyy, kun näkyviin tulee pienempi sisennys. Tästä syystä Python-skriptin ensimmäistä riviä ei tule sisentää. Näiden yksinkertaisten sääntöjen hallitseminen auttaa sinua välttämään useimmat uuden kielen oppimiseen liittyvät virheet.

Pythonin syntaksissa ei ole muita radikaaleja eroja muihin ohjelmointikieliin verrattuna. On olemassa vakiosarja operaattoreita ja avainsanoja, joista suurin osa on jo tuttuja ohjelmoijille, mutta Python-kohtaisia ​​käsitellään tässä ja myöhemmissä artikkeleissa. Muuttujien, menetelmien ja luokkien tunnisteiden asettamisessa käytetään myös vakiosääntöjä - nimen tulee alkaa alaviivalla tai latinalaisella kirjaimella, eikä se saa sisältää @, $, %. Myöskään vain yhtä alaviivaa ei voi käyttää tunnisteena (katso alaviite interaktiivisesta tilasta).

Pythonissa käytetyt tietotyypit

Pythonissa käytetyt tietotyypit ovat myös samoja kuin muissa kielissä - kokonaisluku- ja todelliset tietotyypit; lisäksi tuetaan monimutkaista tietotyyppiä - reaali- ja imaginaariosalla (esimerkki tällaisesta luvusta on 1,5J tai 2j, jossa J on -1:n neliöjuuri). Python tukee merkkijonoja, jotka voidaan sulkea yksi-, kaksois- tai kolminkertaisiin lainausmerkkeihin, kun taas merkkijonot, kuten Javassa, ovat muuttumattomia objekteja, ts. eivät voi muuttaa arvoaan luomisen jälkeen.

Pythonissa on myös looginen bool-tietotyyppi, jossa on kaksi arvovaihtoehtoa - True ja False. Pythonin vanhemmissa versioissa ei kuitenkaan ollut tätä tietotyyppiä, ja lisäksi mikä tahansa tietotyyppi voitiin lähettää boolen arvoon True tai False. Kaikkia nollasta poikkeavia lukuja ja ei-tyhjiä merkkijonoja tai tietokokoelmia käsiteltiin tosina, kun taas tyhjiä ja nolla-arvoja käsiteltiin epätoseina. Tämä ominaisuus on säilytetty uusissa Python-versioissa, mutta koodin luettavuuden parantamiseksi on suositeltavaa käyttää bool-tyyppiä boolen muuttujille. Samanaikaisesti, jos sinun on säilytettävä taaksepäin yhteensopivuus Pythonin vanhempien toteutusten kanssa, sinun tulee käyttää loogisina muuttujina arvoa 1 (tosi) tai 0 (false).

Toiminto tietojoukkojen kanssa työskentelyyn

Python määrittelee kolmen tyyppisiä kokoelmia tietojoukkojen tallentamista varten:

  • monikko;
  • lista (luettelo);
  • sanakirja.

Tuple on muuttumaton järjestystietosarja. Se voi sisältää erityyppisiä elementtejä, kuten muita monikkoja. Tuple määritellään suluissa, ja sen elementit erotetaan pilkuilla. Erityinen sisäänrakennettu funktio tuple() mahdollistaa monikkojen luomisen tietystä datasekvenssistä.

Lista on muuttuva järjestetty elementtisarja. Listan elementit erotetaan myös pilkuilla, mutta ne on asetettu jo hakasulkeisiin. Lista()-funktiota käytetään luetteloiden luomiseen.

Sanakirja on hash-taulukko, joka tallentaa elementin ja sen avaintunnisteen. Elementtien myöhempi käyttö tapahtuu myös avaimella, joten sanakirjan tallennusyksikkö on avainobjektipari ja siihen liittyvä arvoobjekti. Sanakirja on muuttuva, mutta ei järjestetty kokoelma, joten sanakirjan elementtien järjestys voi muuttua ajan myötä. Sanakirja määritellään aaltosulkeissa, avain erotetaan arvosta kaksoispisteellä ja itse avain/arvo-parit erotetaan pilkuilla. Dict()-funktio on käytettävissä sanakirjojen luomiseen.

Lista 1 näyttää esimerkkejä Pythonissa saatavilla olevista kokoelmista.

Listaus 1. Pythonissa saatavilla olevat kokoelmatyypit
('w','o','r','l','d') # viiden elementin monikko (2.62,) # yhden elementin monikko ["test","me"] # kahden elementin luettelo # tyhjä lista ( 5:'a', 6:'b', 7:'c' ) # 3-osainen sanakirja int-näppäimillä

Funktioiden määrittäminen Pythonissa

Vaikka Python tukee OOP:ta, monet sen ominaisuuksista on toteutettu erillisinä funktioina; lisäksi laajennusmoduulit tehdään useimmiten myös funktiokirjaston muodossa. Funktioita käytetään myös luokissa, joissa niitä kutsutaan perinteisesti menetelmiksi.

Pythonin funktioiden määrittelyyn käytettävä syntaksi on erittäin yksinkertainen; edellä mainittujen vaatimusten mukaisesti:

def FUNCTION_NAME(parametrit): lauseke #1 lauseke #2 ...

Kuten näet, on välttämätöntä käyttää avainsanaa def, kaksoispistettä ja sisennystä. Toiminnon kutsuminen on myös hyvin yksinkertaista:

FUNCTION_NAME(parametrit)

On vain muutamia Python-kohtaisia ​​asioita, jotka on otettava huomioon. Kuten Javassa, primitiiviset arvot välitetään arvon mukaan (parametrin kopio tulee funktioon, eikä se voi muuttaa ennen funktion kutsumista asetettua arvoa), ja monimutkaiset objektityypit välitetään viittauksella (viite välitetään funktioon ja se voi hyvinkin muuttaa objektia).

Parametrit voidaan välittää joko yksinkertaisesti luettelointijärjestyksessä tai nimellä, tässä tapauksessa kutsuttaessa ei tarvitse määrittää niitä parametreja, joille on oletusarvot, vaan vain pakolliset välitetään tai parametrien järjestystä muutetaan kutsuttaessa. toiminto:

#funktio, joka suorittaa kokonaislukujaon - operaattorilla // def foo(delimoe, delitel): return delimoe // delitel print divide(50,5) # tulos: 10 tulosta jako(delitel=5, delimoe=50) # tulos toimii: 10

Pythonin funktion on palautettava arvo joko eksplisiittisesti käyttämällä return-lausetta ja sen jälkeen paluuarvoa, tai jos return-lausetta ei ole, palautettava vakio None, kun funktion loppu saavutetaan. Kuten funktion määritysesimerkeistä näkyy, Pythonissa ei tarvitse määrittää, palautetaanko jotain funktiosta vai ei, mutta jos funktiossa on yksi return-käsky, joka palauttaa arvon, niin muut paluulauseet tämän funktion on palautettava arvot, ja jos sellainen arvo on ei, sinun on nimenomaisesti kirjoitettava return None.

Jos funktio on hyvin yksinkertainen ja koostuu yhdestä rivistä, niin se voidaan määritellä heti käyttöpaikalla, Pythonissa tällaista rakennetta kutsutaan lambda-funktioksi (lambda). Lambda-funktio on anonyymi funktio (ilman omaa nimeään), jonka runko on return-lause, joka palauttaa jonkin lausekkeen arvon. Tämä lähestymistapa voi olla kätevä joissakin tilanteissa, mutta on syytä huomata, että tällaisten toimintojen uudelleenkäyttö on mahdotonta ("missä synnyit, siitä oli hyötyä").

Kannattaa myös kuvata Pythonin suhtautumista rekursion käyttöön. Oletusarvoisesti rekursion syvyys on rajoitettu 1000 tasoon, ja kun tämä taso ylitetään, tehdään poikkeus ja ohjelma pysähtyy. Tätä rajaa voidaan kuitenkin tarvittaessa muuttaa.

Pythonin funktioilla on muita mielenkiintoisia ominaisuuksia, kuten dokumentaatio tai kyky määritellä sisäkkäisiä toimintoja, mutta niitä käsitellään sarjan seuraavissa artikkeleissa monimutkaisempien esimerkkien kera.

O Python(on parempi sanoa "python", vaikka jotkut sanovat "python") - tämän tutkimuksen kohde, tämän ohjelmointikielen luoja, hollantilainen Guido van Rossum, sanoo parhaiten:

"Python on tulkittu, oliosuuntautunut korkean tason ohjelmointikieli dynaamisella semantiikkalla. Sisäänrakennetut korkean tason tietorakenteet yhdistettynä dynaaminen kirjoitus ja sitova tekevät kielestä houkuttelevan nopeaan sovelluskehitykseen (RAD, Rapid Application Development). Lisäksi sitä voidaan käyttää skriptikielinä ohjelmistokomponenttien linkittämiseen. Pythonin syntaksi on helppo oppia, se korostaa koodin luettavuutta, mikä vähentää ohjelmistotuotteiden ylläpitokustannuksia. Python tukee moduuleja ja paketteja, mikä rohkaisee modulaarisuutta ja koodin uudelleenkäyttöä. Python-tulkki ja suuri standardikirjasto ovat saatavilla ilmaiseksi lähde- ja suoritettavana koodina kaikille tärkeimmille alustoille, ja niitä voidaan jakaa uudelleen."

Tämän määritelmän merkitys paljastuu tutkimuksen aikana, mutta toistaiseksi riittää, että tietää, että Python on universaali ohjelmointikieli. Sillä on hyvät ja huonot puolensa sekä käyttöalueet. Pythonissa on laaja standardikirjasto monenlaisia ​​tehtäviä varten. Pythonin laadukkaita kirjastoja on saatavilla Internetissä eri aihealueilla: tekstinkäsittelytyökalut ja Internet-tekniikat, kuvankäsittely, työkalut sovellusten luomiseen, tietokantojen käyttömekanismit, tieteelliset laskentapaketit, GUI-rakennuskirjastot jne. Lisäksi Pythonilla on melko yksinkertaiset keinot integroida C:n, C++:n (ja Javan) kanssa sekä upottamalla tulkki näiden kielten ohjelmiin että päinvastoin käyttämällä näillä kielillä kirjoitettuja kirjastoja Python-ohjelmissa. Python-kieli tukee useita paradigmoja ohjelmointi: pakollinen (proseduurit, rakenteelliset, modulaariset lähestymistavat), olio- ja toiminnallinen ohjelmointi.

Voimme ajatella, että Python on kokonaisuus ohjelmistotuotteiden (ja niiden prototyyppien) luomiseen. Se on saatavana lähes kaikilla nykyaikaisilla alustoilla (sekä 32-bittisellä että 64-bittisellä) C-kääntäjällä ja Java-alustalla.

Vaikuttaa siltä, ​​että ohjelmistoteollisuudessa ei ole sijaa millekään muulle kuin C/C++:lle, Javalle, Visual Basicille ja C#:lle. Se ei kuitenkaan ole. Ehkä tämän luentokurssin ja käytännön harjoitusten ansiosta Python saa uusia kannattajia, joille siitä tulee välttämätön työkalu.

Kuinka kuvailla kieltä?

Tämän luennon tarkoituksena ei ole kuvata Pythonia systemaattisesti: sitä varten on alkuperäinen käsikirja. Tässä ehdotetaan kielen tarkastelemista samanaikaisesti useissa näkökohdissa, mikä saavutetaan esimerkkijoukolla, jonka avulla voit nopeasti liittyä todelliseen ohjelmointiin kuin tiukan akateemisen lähestymistavan tapauksessa.

On kuitenkin syytä kiinnittää huomiota oikeaan lähestymistapaan kielen kuvauksessa. Ohjelman luominen on aina viestintää, jossa ohjelmoija välittää tietokoneelle tiedot, joita tämä tarvitsee toimintojen suorittamiseen. Tapa, jolla ohjelmoija ymmärtää nämä toimet (eli "merkityksen"), voidaan kutsua semantiikka. Keino tämän merkityksen välittämiseksi on syntaksi ohjelmointikieli. No, mitä tulkki tekee hyväksytyn perusteella, kutsutaan yleensä ns pragmatiikkaa. Ohjelmaa kirjoitettaessa on erittäin tärkeää, että tässä ketjussa ei ole vikoja.

Syntaksi on täysin formalisoitu osa: se voidaan kuvata muodollinen kieli syntaksikaaviot (mitä tehdään viiteoppaissa). Pragmatiikan ilmaisu on kielen tulkki itse. Hän lukee syntaksin mukaisesti kirjoitetun "viestin" ja muuttaa sen toimiksi siihen upotetun algoritmin mukaisesti. Vain semantiikka jää epämuodolliseksi komponentiksi. Ohjelmoinnin suurin monimutkaisuus piilee merkityksen kääntämisessä muodolliseksi kuvaukseksi. Python-kielen syntaksissa on tehokkaita ominaisuuksia, jotka auttavat tuomaan ohjelmoijan käsityksen ongelmasta lähemmäksi tulkin "ymmärrystä". Pythonin sisäistä rakennetta käsitellään yhdessä loppuluennoista.

Python-kielen historia

Pythonin aloitti Guido van Rossum vuonna 1991, kun hän työskenteli hajautetun Amoeba-käyttöjärjestelmän parissa. Hän tarvitsi laajennettavan kielen, joka tarjoaisi tukea järjestelmäpuheluille. ABC ja Modula-3 otettiin perustaksi. Hän valitsi Pythonin nimeksi BBC:n komediasarjan Monty Python's Flying Circus mukaan, ei käärmeen nimeksi. Siitä lähtien Python on kehittynyt niiden organisaatioiden tuella, joissa Guido on työskennellyt. Kieltä kehitetään erityisen aktiivisesti tällä hetkellä, kun sen parissa työskentelee tekijöiden lisäksi koko yhteisö ohjelmoijia eri puolilta maailmaa. Ja kuitenkin viimeinen sana kielen kehityksen suunnasta jää Guido van Rossumille.

Tämä materiaali on tarkoitettu ohjelmoinnin jo tunteville ja Python-ohjelmointikielen opiskelijoille. Se on suunniteltu näyttämään Python-kielen ominaisuudet, syntaksiominaisuudet ja Python-työskentelyn perusperiaatteet 10 minuutissa esimerkkien kera. Tässä ei ole "vettä" - tietoa, joka ei liity suoraan ohjelmointikieleen. Aloitetaan!

Python-ohjelmointikieli erottuu vahvasta kirjoituksesta (Vahva kirjoittaminen erottuu siitä, että kieli ei salli eri tyyppien sekoittamista lausekkeisiin eikä suorita automaattisia implisiittisiä muunnoksia, esimerkiksi on mahdotonta vähentää joukkoa merkkijonosta) , käytetään dynaamista kirjoitusta - kaikki tyypit selvitetään jo ohjelman suorituksen aikana.

Muuttujien ilmoitus on valinnainen, nimet ovat isot ja pienet kirjaimet erottuvat (var ja VAR ovat kaksi eri muuttujaa).

Python on oliokieli, kaikki kielessä on objektia.

Hae apua

Pythonin ohje (help) on aina saatavilla suoraan tulkissa. Jos haluat tietää miten esine toimii, soita apua( ). Myös hyödyllinen ohje on dir() , joka näyttää kaikki objektin menetelmät ja objektien ominaisuudet .__doc__ , joka näyttää dokumenttimerkkijonon:

>>> ohje(5) Ohje int-objektille: (etc etc) >>> dir(5) ["__abs__", "__add__", ...] >>> abs.__doc__ "abs(numero) -> numero Palauta argumentin itseisarvo."

Pythonin syntaksi

Pythonissa ei ole lohkon päätteitä (kuten esimerkiksi luokka- tai funktiomäärityksiä) - lohkot määritellään sisennyksen avulla. Lisää sisennystä lohkon alussa, vähennä sitä lohkon lopussa. Sisennystä vaativat lauseet päätetään kaksoispisteeseen (:). Jos sinulla ei ole koodia lohkon aloituskäskyn jälkeen, lisää syntaksitarkistuksen hyväksymiskäsky.

Vaikka rangelist == 1: pass

Yksiriviset kommentit alkavat puntamerkillä (#), moniriviset kommentit käyttävät ("") kommentin alussa ja lopussa.

Arvot määritetään yhtäläisyysmerkillä ("=") (itse asiassa kohteille annetaan nimet prosessissa).

Erotarkistus suoritetaan kahdella yhtä suurella merkillä ("==").

Voit suurentaa arvoa +=-operaattorilla ja pienentää sitä -=:lla, mikä osoittaa vasemmalla olevan muuttujan ja oikealla arvon, jolla lisäys/vähennys tapahtuu. Tämä toimii monien tietotyyppien kanssa Pythonissa, mukaan lukien merkkijonot.

Voit määrittää arvon useille muuttujille samalla rivillä. Esimerkkejä:

>>> myvar = 3 >>> myvar += 2 >>> myvar 5 >>> myvar -= 1 >>> myvar 4 """Tämä on monirivinen kommentti. Seuraavat rivit yhdistävät kaksi merkkijonoa.""" >>> mystring = "Hei" >>> mystring += "maailma." >>> tulosta mystring Hello world. # Tämä vaihtaa muuttujat yhdelle riville (!). # Se ei riko vahvaa kirjoittamista, koska arvoja ei # todellisuudessa määritetä, vaan uudet objektit on # sidottu vanhoihin nimiin. >>> myvar, mystring = mystring, myvar

Tietotyypit Pythonissa

Pythonissa on saatavilla tietotyyppejä, kuten listat (listat), monikot (tuples) ja sanakirjat (sanakirjat). Sarjoja on myös saatavilla käyttämällä sets-moduulia Python 2.5:tä vanhemmissa versioissa ja sisäänrakennettuna kieleen myöhemmissä versioissa.

Listat ovat samanlaisia ​​kuin yksiulotteiset taulukot. On mahdollista, että luettelo koostuu muista listoista.

Sanakirjat ovat assosiatiivisia taulukoita, joissa tietoihin päästään avaimella.

Tuples ovat muuttumattomia yksiulotteisia taulukoita.

Pythonin "taulukot" voivat olla mitä tahansa tyyppiä, mikä tarkoittaa, että voit yhdistää numeroita, merkkijonoja ja muita tietotyyppejä listoissa/sanakirjoissa/tupleissa.

Ensimmäisen elementin indeksi on 0. Negatiivinen indeksiarvo alkaa laskea viimeisestä ensimmäiseen, [-1] osoittaa viimeiseen elementtiin.

Muuttujat voivat viitata funktioihin.

>>> sample = , ("a", "tuple")] >>> mylist = ["Luettelokohde 1", 2, 3.14] >>> mylist = "Listakohde 1 uudelleen" # Muutamme kohdetta >>> mylist[-1] = 3.21 # Tässä viitataan viimeiseen kohteeseen >>> mydict = ("Avain 1": "Arvo 1", 2: 3, "pi": 3.14) >>> mydict[ "pi"] = 3.15 # Näin muutat sanakirjan arvoja>>> mytuple = (1, 2, 3) >>> myfunction = len >>> print myfunction(mylist) 3

Voit leikata taulukon (luettelo tai monikko) kaksoispisteellä (:). Indeksin alkuarvon jättäminen tyhjäksi kehottaa sinua aloittamaan ensimmäisestä arvosta, indeksin lopun tyhjä arvo olettaa taulukon viimeisen elementin. Negatiiviset indeksit lasketaan taaksepäin taulukon lopusta (-1 tarkoittaa viimeistä elementtiä).

Katso esimerkkejä:

>>> mylist = ["Luettelokohde 1", 2, 3.14] >>> tulosta mylist[:] ["Luettelokohde 1", 2, 3.1400000000000001] >>> tulosta mylist ["Luettelokohde 1", 2] > >> print mylist[-3:-1] ["List item 1", 2] >>> print mylist # Kun lisäät kolmannen parametrin, "step" saa Python-askeleen # N kohteen askelin 1:n sijaan. # Esim. , tämä palauttaa ensimmäisen kohteen, siirtyy sitten kolmanteen ja # palauttaa sen (eli kohteet 0 ja 2 0-indeksoinnissa). >>> tulosta mylist[::2] ["Luettelokohde 1", 3.14]

Jouset Pythonissa

Merkkijonoa voidaan käyttää heittomerkkiä (') tai lainausmerkkejä (lainausmerkkiä - "). Tästä johtuen merkkijonon sisällä voi olla lainausmerkkejä, jotka on merkitty heittomerkillä (esim. "Hän sanoi "hei." on kelvollinen merkkijono).

Moniriviset merkkijonot merkitään kolminkertaisella heittomerkillä tai lainausmerkeillä ("""). Python tukee unicodea heti valmiina. Pythonin toinen versio kuitenkin käyttää merkkiä (u) merkitsemään unicoden sisältävää merkkijonoa: u"Tämä on unicode-merkkijono". Python3 kaikki merkkijonot ovat unicodea Jos Python3:ssa haluat tavujonon, joka oli olennaisesti merkkijono aiemmissa versioissa, käytä merkkiä (b): b"Tämä on tavumerkkijono".

Operaattoria (%) ja monikkoa käytetään korvaamaan parametriarvot merkkijonoksi. Jokainen %s korvataan elementillä monista vasemmalta oikealle. Voit myös käyttää sanakirjaa korvataksesi nimetyt parametrit:

>>>tulosta "Nimi: %s\ Numero: %s\ Merkkijono: %s" % (omaluokka.nimi, 3, 3 * "-") Nimi: Poromenos Numero: 3 Merkkijono: --- string = """ Tämä on monirivinen merkkijono.""" # VAROITUS: Varo "%(key)s":n lopussa olevia s-merkkejä. >>> tulosta "Tämä %(verbi)s a %(substantiivi)." % ("substantiivi": "testi", "verbi": "on") Tämä on testi.

Virtauksen ohjausohjeet - jos, jonkin aikaa

If-, for- ja while-lauseita käytetään ohjaamaan ohjelman suoritusjärjestystä. Pythonissa ei ole kytkintä tai koteloa, jos sitä käytetään sen sijaan. For käytetään iteroitaessa listan (tai monikon) elementtejä. Saadaksesi numerosarjan käytä range( ) . Break-toimintoa käytetään katkaisemaan silmukan suoritus.

Tämän rakenteen syntaksi on:

Rangelist = range(10) >>> tulosta rangelist numerolle rangelistissa: # Tarkista, onko numero yksi # monista luvuista. jos numero (3, 4, 7, 9): # "Break" päättää for ilman # suorittaa "else"-lauseen. break else: # "Continue" aloittaa silmukan seuraavan iteraation #. Se on melko hyödytöntä, # koska se on silmukan viimeinen lause. jatka else: # "else"-lause on valinnainen ja # suoritetaan vain jos silmukka ei "katkaistu". pass # Älä tee mitään, jos rangelist == 2: print "Toinen kohde (luettelot ovat 0-pohjaisia) on 2 " elif rangelist == 3: print "Toinen kohde (luettelot ovat 0-pohjaisia) on 3" else: print "Dunno" while rangelist == 1: pass

Toiminnot Pythonissa

Funktiot ilmoitetaan käyttämällä "def"-avainsanaa. Valinnaiset argumentit seuraavat funktion määrittelyn pakollisia argumentteja, ja niille on määritetty oletusarvo. Kun kutsut funktiota, voit välittää argumentteja määrittämällä niiden nimen ja arvon samalla, kun ohitat osan valinnaisista argumenteista tai sijoitat ne eri järjestykseen kuin funktiossa on ilmoitettu.

Funktiot voivat palauttaa monikon ja käyttämällä monikon purkamista voit palauttaa useita arvoja.

Lambda-funktiot ovat erikoisfunktioita, jotka käsittelevät yhden argumentin.

Parametrit välitetään linkin kautta. Lisäämällä elementtejä hyväksyttyjen listaan ​​saat päivitetyn listan funktion ulkopuolelle. Tässä tapauksessa uuden arvon määrittäminen funktion sisällä oleville parametreille jää paikalliseksi toimenpiteeksi. Koska vain muistipaikka välitetään, uuden objektin määrittäminen parametrille muuttujaksi luo uuden objektin.

Esimerkkejä koodista:

# Sama kuin def funcvar(x): return x + 1 funcvar = lambda x: x + 1 >>> print funcvar(1) 2 # an_int ja a_string ovat valinnaisia, niillä on oletusarvot # jos sitä ei hyväksytä ( 2 ja "oletusmerkkijono"). def passing_example(a_list, an_int=2, a_string="Oletusmerkkijono"): a_list.append("Uusi kohde") an_int = 4 return a_list, an_int, a_string >>> my_list = >>> my_int = 10 >> > tulosta passing_example(my_list, my_int) (, 4, "Oletusmerkkijono") >>> my_list >>> my_int 10

Python-tunnit

Python tukee rajoitettua moniperinnön muotoa luokissa.

Yksityiset muuttujat ja menetelmät voidaan ilmoittaa (sopimuksen mukaan tulkki ei tarkista tätä) käyttämällä kahta alaviivaa nimen alussa ja enintään yhtä nimen lopussa (esim. "__spam").

Voimme myös antaa mielivaltaisia ​​nimiä luokkaesiintymille. Katso esimerkkejä:

Luokka MyClass(objekti): yhteinen = 10 def __init__(self): self.omamuuttuja = 3 def myfunction(self, arg1, arg2): return self.myvariable # Tämä on luokan ilmentymä >>> classinstance = MyClass() >> > classinstance.myfunction(1, 2) 3 # Tämä muuttuja on kaikkien luokkien yhteinen. >>> classinstance2 = MyClass() >>> classinstance.common 10 >>> classinstance2.common 10 # Huomaa, kuinka käytämme luokan nimeä # esiintymän sijaan. >>> MyClass.common = 30 >>> classinstance.common 30 >>> classinstance2.common 30 # Tämä ei päivitä luokan muuttujaa, # sen sijaan se sitoo uuden objektin vanhaan # muuttujan nimeen. >>> classinstance.common = 10 >>> classinstance.common 10 >>> classinstance2.common 30 >>> MyClass.common = 50 # Tämä ei ole muuttunut, koska "common" on # nyt ilmentymämuuttuja. >>> classinstance.common 10 >>> classinstance2.common 50 # Tämä luokka periytyy MyClassista. Yllä oleva esimerkki # luokka perii "objektista", mikä tekee # siitä niin sanotun "uuden tyylin luokan". # Moniperintö ilmoitetaan seuraavasti: # class OtherClass(OmaLuokka1, OmaLuokka2, OmaLuokkaN) luokka OtherClass(MyClass): # "self"-argumentti välitetään automaattisesti # ja viittaa luokan ilmentymään, joten voit asettaa # ilmentymämuuttujia kuten edellä, mutta class.def __init__(self, arg1): self.myvariable = 3 print arg1 >> > classinstance = OtherClass("hello") hello >>> classinstance.myfunction(1, 2) 3 # Tällä luokalla ei ole .test-jäsentä, mutta # voimme kuitenkin lisätä sellaisen ilmentymään. Huomaa #, että tämä on vain luokkatason jäsen. >>> classinstance.test = 10 >>> classinstance.test 10

Poikkeukset Pythonissa

Pythonin poikkeukset käsitellään try-except-lohkoissa:

Def some_function(): try: # Nollalla jakaminen aiheuttaa poikkeuksen 10/0 paitsi ZeroDivisionError: print "Hups, virheellinen." muuten: # Poikkeus ei tapahtunut, olemme hyviä. pass final: # Tämä suoritetaan, kun koodilohko on suoritettu # ja kaikki poikkeukset on käsitelty, vaikka # jos käsittelyn aikana nostetaan esiin uusi poikkeus. print "Olemme tehneet sen." >>> some_function() Hups, virheellinen. Olemme tehneet sen.

Moduulien tuonti Pythonissa

Ulkoisia kirjastoja käytetään tuonnin jälkeen tuontiavainsanalla. Voit myös käyttää tuontia yksittäisten funktioiden tuomiseen.

Tuo satunnainen aika tuontikello randomint = random.randint(1, 100) >>> tulosta randomint 64

Työskentely tiedostojen kanssa Pythonissa

Pythonilla on suuri määrä kirjastoja tiedostojen käsittelyä varten. Esimerkiksi serialisointi (tietojen muuntaminen merkkijonoiksi suolakurkkukirjaston avulla):

Import pickle mylist = ["Tämä", "on", 4, 13327] # Avaa tiedosto C:\\binary.dat kirjoittamista varten. Kirjainta r ​​ennen #-tiedostonimen merkkijonoa käytetään estämään kenoviivaa. omatiedosto = open(r"C:\\binary.dat", "w") pickle.dump(mylist, myfile) myfile.close() omatiedosto = avoin(r"C:\\teksti.txt", "w" ) myfile.write("Tämä on esimerkkimerkkijono") myfile.close() myfile = open(r"C:\\text.txt") >>> print myfile.read() "Tämä on esimerkkimerkkijono" omatiedosto .close() # Avaa tiedosto lukemista varten. omatiedosto = open(r"C:\\binary.dat") loadedlist = pickle.load(omatiedosto) myfile.close() >>> tulosta latauslista ["Tämä", "on", 4, 13327]

Sekalaista

  • Olosuhteet voivat tarttua yhteen, esimerkiksi 1< a < 3 проверит, что a одновременно меньше 3 и больше 1.
  • Voit käyttää del-komentoa muuttujien tai elementtien poistamiseen taulukoista.
  • Listat tarjoavat erittäin tehokkaita tiedonkäsittelyominaisuuksia. Voit laatia lausekkeen käyttämällä for-komentoa, jota seuraa if tai lausekkeille:
>>> lst1 = >>> lst2 = >>> tulosta >>> tulosta # Tarkista, onko ehto tosi jollekin kohteelle. # "any" palauttaa tosi, jos jokin luettelon kohde on tosi. >>> any(]) True # Tämä johtuu siitä, että 4 % 3 = 1 ja 1 on tosi, joten any() # palauttaa True. # Tarkista, kuinka monta kohdetta ehto on tosi. >>> summa(1 for i in if i == 4) 2 >>> del lst1 >>> print lst1 >>> del lst1
  • Globaalit muuttujat ilmoitetaan funktioiden ulkopuolella ja ne voidaan lukea ilman erityisiä määrityksiä sisällä, mutta jos haluat kirjoittaa ne ulos, sinun on ilmoitettava funktion alusta alkaen käyttämällä erityistä "globaali" avainsanaa, muuten Python antaa uuden arvon paikalliseen muuttujaan:
numero = 5 def myfunc(): # Tämä tulostaa 5. print number def otherfunc(): # Tämä aiheuttaa poikkeuksen, koska muuttujaa ei ole # sidottu ennen tulostusta. Python tietää, että se #-objekti sidotaan siihen myöhemmin ja luo uuden, paikallisen #-objektin sen sijaan, että hän käyttäisi globaalia objektia. tulosta numero numero = 3 def yetanotherfunc(): globaali numero # Tämä muuttaa globaalin oikein. numero = 3

Kuinka oppia Python-ohjelmointikieli

Tämä materiaali ei väitä olevan kattava Python-opas. Python-ohjelmointikielessä on valtava määrä kirjastoja ja erilaisia ​​toimintoja, joihin tutustut jatkamalla työskentelyä kielen kanssa ja tutkimalla lisälähteitä.

Jos yllä olevat tiedot eivät riitä sinulle - tutustu Python-ohjelmointikieltä kuvaavaan laajennettuun materiaaliin - - siinä on tietoa kielestä tarkemmin.

Suosittelen muun materiaalin ohella Learn Python The Hard Way. Ja tietysti Python 2 Tutorial ja Python 3 Tutorial .

Suuri kiitos Stavros Korokithakisille hänen erinomaisesta opetusohjelmastaan ​​"Opi Python 10 minuutissa".

Jos haluat parantaa jotain tässä materiaalissa - kirjoita kommentteihin.

Kielen syntaksi Python monin tavoin samanlainen kuin kielten, kuten Perl, C ja Java, syntaksi, mutta samalla sillä on useita eroja näistä ohjelmointikielistä. Tässä artikkelissa tarkastelemme tarpeellisia perusasiat Tämä ohjelmointikieli.

Ensimmäinen Python-ohjelma:

Ensinnäkin on huomattava, että päällä Python voit ohjelmoida kahdessa tilassa: interaktiivinen ja käsikirjoitettu

Interaktiivinen ohjelmointitila:

Jos tiedoston nimeä ei välitetä argumenttina, se suoritetaan Python tulkki:

Kirjoita seuraava teksti kehotteen rivin jälkeen Python ja paina Enter:

>>> tulosta "Hei, Python!"

Jos teit kaiken oikein, tulkki antaa rivin:

Jos saat virheilmoituksen, varmista, että olet kirjoittanut koodin uudelleen oikein ja että käytät 2.x-tulkkia (versiossa 3.x kannattaa käyttää komentoa print ("Hei, Python"))

Skriptiohjelmointitila:

Suorita python-komentorivillä Kun parametrina on tiedoston nimi (tätä kutsutaan myös skriptiksi), aloittaa tähän tiedostoon kirjoitetun koodin suorittamisen. Kun komentosarja on suoritettu, tulkki on jälleen passiivinen.

Luodaan sisään yksinkertainen komentosarjaohjelma Python. Avaa mikä tahansa tekstieditori (Sublime, Notepad++, gedit...), luo siihen tiedosto, jonka nimi on testi ja tunniste .py (kaikki tiedostot, jotka sisältävät koodin Python pitää olla laajennus .py) ja kirjoita meille jo tuttu koodi tähän tiedostoon ja tallenna tiedosto:

Tulosta "Hei, Python!"

(Oletetaan, että Python tulkki olet asettanut sen PATH-muuttujaan, eli voit kirjoittaa pythonin mihin tahansa hakemistoon tulkin käynnistämiseksi)

Kirjoita sen jälkeen seuraava rivi komentokehotteeseen ja paina Enter:

Tunnisteet Pythonissa:

Tunnisteet Pythonissa ovat nimiä, joita käytetään viittaamaan muuttujaan, funktioon, luokkaan, moduuliin tai muuhun objektiin. Tunnisteen tulee alkaa kirjaimella (a–Z) tai alaviivalla (_), jota seuraa mikä tahansa määrä kirjaimia, alaviivoja ja numeroita (0–9).

AT Python välimerkit tai erikoismerkit, kuten @, $ tai %, eivät ole sallittuja tunnisteina. Sitä paitsi, Python kirjainkoolla, eli kissa ja kissa ne ovat kaksi eri nimeä.

Pythonilla on seuraava tapa nimetä tunnisteet:

  • Luokkien nimet alkavat isolla kirjaimella, kaikki muut tunnisteet alkavat pienellä kirjaimella.
  • Alaviivan käyttö tunnisteen ensimmäisenä merkkinä tarkoittaa, että annettu tunniste on yksityinen (suojattu luokan ulkopuolelta).
  • Jos tunniste alkaa ja päättyy kahdella alaviivalla (esim. __init__), se tarkoittaa, että se on kielessä määritetty erityinen nimi.

Varatut (avainsanat) sanat Pythonissa:

Tämä taulukko sisältää kaikki Python-avainsanat.

ja elif jos Tulosta
kuten muu tuonti nostaa
väittää paitsi sisään palata
tauko exec On yrittää
luokkaa vihdoinkin lambda sillä aikaa
jatkaa varten ei mikä
def alkaen tai tuotto
del maailmanlaajuisesti kulkea

Näitä varattuja sanoja ei voi käyttää muuttujan nimenä tai muuna tunnisteena. Kaikki Python-avainsanat koostuvat vain pienistä kirjaimista. Tulkkiin on mahdollista saada avainsanaluettelo komennolla

Ohje("avainsanat")

Viivat ja sisennykset:

Yksi ensimmäisistä ominaisuuksista Python Ohjelmoijien, jotka alkavat oppia tätä ohjelmointikieltä, huomio kiinnittää se, että se ei käytä sulkeita osoittamaan yksittäisiä koodilohkoja. Niiden sijaan Python käytetään kaksoispisteitä ja sisennystä.

Välilyöntien määrä sisennyksissä on mielivaltainen ja jokainen valitsee oman harkintansa mukaan, mutta sopimuksen mukaan se on neljä välilyöntiä. Tässä tapauksessa koko lohkon sisennyksen tulee olla sama.

Esimerkiksi tämä koodilohko toimii (vaikka sinun ei pitäisi kirjoittaa sitä näin):

Jos tosi: tulosta "Hei" muuten: tulosta "Hei"

Tämä antaa virheilmoituksen:

Jos totta: tulosta "Hei" tulosta "Hei"

Siten sisään Python useat koodirivit samalla sisennyksellä muodostavat erillisen koodilohkon. Tällaisen järjestelmän ansiosta koodin luettavuus lisääntyy huomattavasti ja kirjoitustottumus on selkeää ja jäsenneltyä.

Moniriviset lausekkeet:

Ilmaisut Pythonissa yleensä päättyy rivinvaihtoon. Tässä ohjelmointikielessä on kuitenkin erityinen rivinvaihtomerkki (\), joka osoittaa, että koodi ei pääty rivin loppuun. Esimerkiksi:

Yhteensä = tuote1 + \tuote2 + \tuote3

Hakasulkeissa olevat lausekkeet: neliö ((), kihara (( )) tai pyöreä (()) eivät tarvitse rivinvaihtomerkkiä. Esimerkiksi:

Days = ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"]

Pythonin lainaukset:

AT Python Voit käyttää yksittäisiä ("), kaksinkertaisia ​​("") ja kolminkertaisia ​​lainausmerkkejä (""" tai """) merkitsemään merkkijonotietotyyppiä, ja merkkijonon on alettava ja loputtava samoilla lainausmerkeillä. Useita koodirivejä kattava merkkijono on suljettava kolminkertaisten lainausmerkkien sisällä. Esimerkiksi:

Nimi = "wasd" description = "Jonkin verran tekstiä" elämäkerta = """ Pitkää tekstiä muutamalle riville koodia """

Onko sinulla kysyttävää?

Ilmoita kirjoitusvirheestä

Toimituksellemme lähetettävä teksti: