Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Mësime programimi nga scratch python. Gjuha e programimit Python po vdes

(Përkthim)

Në faqen e internetit Poromenos "Stuff" u botua një artikull, në të cilin, në një formë koncize, ata flasin për bazat e gjuhës Python. Unë ju ofroj një përkthim të këtij artikulli. Përkthimi nuk është fjalë për fjalë. Unë u përpoqa të shpjegoj më shumë detajoni disa pika që mund të mos jenë të qarta.

Nëse po mendoni të mësoni Python, por nuk mund të gjeni një tutorial të përshtatshëm, atëherë ky artikull do t'ju ndihmojë shumë! Në një kohë të shkurtër do të mund të njiheni me bazat e gjuhës Python. Edhe pse ky artikull shpesh mbështetet në faktin se ju tashmë keni përvojë programimi, por shpresoj se edhe fillestarët do ta gjejnë këtë material të dobishëm. Lexoni me kujdes çdo paragraf. Për shkak të koncizitetit të materialit, disa tema konsiderohen sipërfaqësisht, por përmbajnë të gjithë materialin e nevojshëm.

Vetitë themelore

Python nuk kërkon deklarim të qartë të variablave, është një gjuhë e orientuar drejt objektit (variabla var nuk është ekuivalente me Var ose VAR janë tre variabla të ndryshëm).

Sintaksë

Së pari, vlen të përmendet një veçori interesante e Python. Në vend të kësaj, ai nuk përmban kllapa operatori (fillojnë..mbarojnë me pascal ose (..) në C). blloqet janë të dhëmbëzuara: hapësira ose skeda, dhe hyrja në bllokun e deklaratave kryhet me dy pika. Komentet me një rresht fillojnë me shenjën e paundit "#", komentet me shumë rreshta fillojnë dhe mbarojnë me tre thonjëza të dyfishta """".

Për t'i caktuar një vlerë një ndryshoreje, përdoret shenja "=", dhe për krahasim - "==". Për të rritur vlerën e një ndryshoreje, ose për të shtuar në një varg, përdoret operatori "+=", dhe për të ulur - "-=". Të gjitha këto operacione mund të ndërveprojnë me shumicën e llojeve, duke përfshirë vargjet. Për shembull

>>>myvar=3

>>> myvar += 2

>>> myvar -= 1

"""Ky është një koment me shumë rreshta

Vargjet e mbyllura në tre thonjëza të dyfishta nuk merren parasysh"""

>>> mystring = "Përshëndetje"

>>> mystring += "botë."

>>> mystring print

Përshendetje Botë.

# Rreshti tjetër ndryshon

Vlerat e variablave në vende. (Vetëm një rresht!)

>>> myvar, mystring = mystring, myvar

Strukturat e të dhënave

Python përmban struktura të dhënash si p.sh lista (lista), tuple (tuple) dhe fjalorë (fjalor).). Listat janë të ngjashme me grupet njëdimensionale (por mund të përdorni një listë që përfshin lista - një grup shumëdimensional), tuplet janë lista të pandryshueshme, fjalorët janë gjithashtu lista, por indekset mund të jenë të çdo lloji, jo vetëm numerikë. "Arrays" në Python mund të përmbajnë të dhëna të çdo lloji, domethënë, një grup mund të përmbajë numerike, vargje dhe lloje të tjera të dhënash. Vargjet fillojnë me indeksin 0 dhe elementi i fundit mund të aksesohet në indeksin -1. Mund t'u caktoni funksione variablave dhe t'i përdorni ato në përputhje me rrethanat.

>>> mostër = , ("a", "tuple")] #Një listë përbëhet nga një numër i plotë, një listë tjetër dhe një tuple

>>> mylist = ["Artikulli i listës 1", 2, 3.14] #Kjo listë përmban një varg, një numër të plotë dhe një fraksion

>>> mylist = "Përsëri artikullin 1 të listës" #Ndrysho elementin e parë (zero) të listës ime

>>> mylist[-1] = 3.14 #Ndrysho elementin e fundit të listës

>>> mydict = ("Ky 1": "Vlera 1", 2: 3, "pi": 3.14) #Krijoni një fjalor, me indekse numerike dhe të plota

>>> mydict["pi"] = 3.15 #Ndrysho hyrjen e fjalorit në indeksin "pi".

>>> mytuple = (1, 2, 3) #Set the tuple

>>> myfunction = len #Python ju lejon të deklaroni sinonime funksioni në këtë mënyrë

>>> printoni funksionin tim (lista ime)

Ju mund të përdorni një pjesë të një grupi duke specifikuar indeksin e parë dhe të fundit të ndarë me dy pika ":". Në këtë rast, ju do të merrni një pjesë të grupit, nga indeksi i parë në të dytin, përfshirës. Nëse elementi i parë nuk është i specifikuar, atëherë numërimi fillon nga fillimi i grupit, dhe nëse elementi i fundit nuk specifikohet, atëherë grupi lexohet deri në elementin e fundit. Vlerat negative përcaktojnë pozicionin e elementit nga fundi. Për shembull:

>>> mylist = ["Artikulli i listës 1", 2, 3.14]

>>> print mylist[:] #Lexo të gjithë elementët e grupit

["Artikulli i listës 1", 2, 3.14000000000000001]

>>> print mylist #Lexo elementin zero dhe të parë të grupit.

["Artikulli 1 i listës", 2]

>>> print mylist[-3:-1] #Leximi i elementeve nga zero (-3) në sekondë (-1) (nuk përfshihet)

["Artikulli 1 i listës", 2]

>>> print mylist #Leximi i elementeve nga i pari tek i fundit

Vargjet

Vargjet në Python të ndara me thonjëza të dyfishta """ ose thonjëza të vetme """. Thomat e vetme mund të jenë të pranishme brenda thonjëzave të dyfishta ose anasjelltas. Për shembull, rreshti "Ai tha "përshëndetje"!" do të shfaqet si "Ai tha përshëndetje!". Nëse keni nevojë të përdorni një varg prej disa rreshtash, atëherë ky varg duhet të fillojë dhe të përfundojë me tre thonjëza të dyfishta """". Mund të zëvendësoni elemente nga një tuple ose fjalor në shabllonin e vargut. Shenja e përqindjes "%" midis vargu dhe tuple zëvendëson karakteret në vargun "%s" për element të një tupleje. Fjalorët ju lejojnë të futni një element në një indeks të caktuar në një varg. Për ta bërë këtë, përdorni konstruksionin "%(index)s" në Në këtë rast, në vend të "%(index)s", vlera e fjalorit nën indeksin e dhënë do të zëvendësohet me indeksin.

>>>printo "Emri: %s\nNumri: %s\nString: %s" % (myclass.name, 3, 3 * "-")

Emri: Poromenos

Numri: 3

vargu: ---

strString = """Ky tekst ndodhet

në linja të shumta

>>> printoni "Kjo %(folje)s është %(emër)s." %("emër": "test", "folje": "është")

Ky eshte nje test.

Operatorët

Ndërsa, nëse , për deklaratat përbëjnë deklaratat e lëvizjes. Nuk ka asnjë analog të deklaratës Select, kështu që ju duhet të anashkaloni if ​​. Deklarata për krahason variabël dhe listë. Për të marrë një listë me shifra para një numri - përdorni diapazonin ( ). Këtu është një shembull duke përdorur operatorët

rangelist = varg (10) #Merr një listë me dhjetë shifra (nga 0 në 9)

>>> printoni listën e diapazonit

për numrin në listën e diapazonit: #Përderisa numri i ndryshores (i cili rritet me një çdo herë) është në listë...

# Kontrolloni nëse ndryshorja është përfshirë

# numra në një tufë numrash (3, 4, 7, 9)

Nëse numri është në (3, 4, 7, 9): #Nëse numri është në (3, 4, 7, 9)...

# Operacioni "pushim" siguron

# dil nga cikli në çdo kohë

Pushim

tjetër:

# "vazhdim" "lëvizje"

# lak. Kjo nuk kërkohet këtu, pasi pas këtij operacioni

# në çdo rast, programi kthehet në përpunimin e ciklit

Vazhdoni

tjetër:

# "tjetër" është opsionale. Kushti i plotësuar

# përveç rasteve kur laku u prish me "break".

Kaloni # Mos bëni asgjë

nëse lista e diapazonit == 2:

Printo "Artikulli i dytë (listat janë të bazuara në 0) është 2"

elif rangelist == 3:

Printo "Artikulli i dytë (listat janë të bazuara në 0) është 3"

tjetër:

Shtyp "Nuk e di"

ndërsa lista e diapazonit == 1:

Kaloni

Funksione

Përdoret për të deklaruar një funksion fjala kyçe "def". Argumentet e funksionit specifikohen në kllapa pas emrit të funksionit. Ju mund të specifikoni argumente opsionale duke u dhënë atyre një vlerë të paracaktuar. Funksionet mund të kthejnë tuple, në këtë rast vlerat e kthimit duhet të ndahen me presje. Fjala kyçe lambda përdoret për të deklaruar funksionet elementare.

# arg2 dhe arg3 janë argumente opsionale, ata marrin vlerën e deklaruar si parazgjedhje,

# nëse nuk u jepni atyre një vlerë të ndryshme kur thërrisni funksionin.

def myfunction(arg1, arg2 = 100, arg3 = "test"):

Ktheni arg3, arg2, arg1

#Funksioni thirret me vlerën e argumentit të parë - "Argumenti 1", i dyti - si parazgjedhje dhe i treti - "Argumenti i emërtuar".

>>>ret1, ret2, ret3 = myfunction("Argumenti 1", arg3 = "Argumenti i emërtuar")

# ret1, ret2 dhe ret3 marrin respektivisht vlerat "Argumenti i emërtuar", 100, "Argumenti 1"

>>> printoni ret1, ret2, ret3

Argumenti i emërtuar 100 Argumenti 1

# Më poshtë është ekuivalente me def f(x): ktheni x + 1

funksionvar = lambda x: x + 1

>>> funksioni i printimit (1)

Klasat

Gjuha Python është e kufizuar në trashëgimi të shumëfishtë në klasa. Variablat e brendshëm dhe metodat e brendshme të klasës fillojnë me dy nënviza "__" (p.sh. "__myprivatevar"). Ne gjithashtu mund t'i caktojmë një vlerë një ndryshoreje të klasës nga jashtë. Shembull:

classMyclass:

E zakonshme = 10

Def __fillim__(vetë):

Vetë.myvariabla = 3

Definimi i funksionit tim (vetë, arg1, arg2):

Kthehu vetë.myvariable

# Këtu kemi shpallur klasën Myclass. Funksioni __init__ thirret automatikisht kur klasat inicializohen.

>>> classinstance = Myclass() # Ne kemi inicializuar klasën dhe myvariable është vendosur në 3 siç deklarohet në metodën e inicializimit

>>> classinstance.myfunction(1, 2) #Method myfunction i klasës Myclass kthen vlerën e ndryshores myvariable

# Ndryshorja e përbashkët deklarohet në të gjitha klasat

>>> classinstance2 = Myclass()

>>> classinstance.e zakonshme

>>> classinstance2.common

# Prandaj, nëse ndryshojmë vlerën e tij në klasë, Myclass do të ndryshojë

# dhe vlerat e tij në objektet e inicializuara nga klasa Myclass

>>>Myclass.common = 30

>>> classinstance.e zakonshme

>>> classinstance2.common

# Këtu nuk e ndryshojmë variablin e klasës. Në vend të kësaj

# e deklarojmë në objekt dhe i caktojmë një vlerë të re

>>> classinstance.common = 10

>>> classinstance.e zakonshme

>>> classinstance2.common

>>>Myclass.common = 50

# Tani ndryshimi i variablës së klasës nuk do të ndikojë

# objekte të ndryshueshme të kësaj klase

>>> classinstance.e zakonshme

>>> classinstance2.common

# Klasa e mëposhtme është një nënklasë e Myclass

# duke trashëguar vetitë dhe metodat e saj, kushdo që mundet klasa

# të trashëgohet nga disa klasa, në këtë rast hyrja

# si kjo: klasa Otherclass (Myclass1, Myclass2, MyclassN)

klasa Klasa tjetër (Myclass):

Def __fillim__(vetja, arg1):

Vetë.myvariabla = 3

Shtypni arg1

>>> classinstance = Klasa tjetër ("përshëndetje")

Përshëndetje

>>> classinstance.myfunction(1, 2)

# Kjo klasë nuk ka vetinë e testimit, por ne mundemi

# deklaroni një variabël të tillë për objektin. Dhe

# kjo variabël do të jetë vetëm një anëtar i klasës.

>>> classinstance.test = 10

>>>classinstance.test

Përjashtimet

Përjashtimet në Python kanë një strukturë try-except:

defsomefunksioni ():

provoni:

# Pjesëtimi me zero ngre një gabim

10 / 0

Përveç ZeroDivisionError:

# Por programi nuk "Kryen një operacion të paligjshëm"

# A trajton bllokun e përjashtimit që korrespondon me gabimin "ZeroDivisionError".

Printo "Oops, e pavlefshme."

>>> fnexcept()

Mos, e pavlefshme.

Importi

Bibliotekat e jashtme mund të përfshihen duke përdorur procedurën e importit, ku është emri i bibliotekës së përfshirë. Ju gjithashtu mund të përdorni komandën "nga importi" në mënyrë që të mund të përdorni funksionin nga biblioteka:

import random #Importo bibliotekën "të rastësishme".

nga koha e importit të orës #Dhe në të njëjtën kohë funksioni "clock" nga biblioteka "time".

randomint = random.randint(1, 100)

>>> printoni rastësisht

Puna me sistemin e skedarëve

Python ka shumë biblioteka të integruara. Në këtë shembull, ne do të përpiqemi të ruajmë një strukturë liste në një skedar binar, ta lexojmë atë dhe ta ruajmë vargun në një skedar teksti. Për të transformuar strukturën e të dhënave, ne do të përdorim bibliotekën standarde "turshi":

turshi importi

mylist = ["Kjo", "është", 4, 13327]

# Hap skedarin C:\binary.dat për shkrim. Simboli "r"

# parandalon zëvendësimin e karaktereve speciale (si p.sh. \n, \t, \b, etj.).

myfile = skedar (r"C:\binary.dat", "w")

pickle.dump (mylist, myfile)

myfile.close()

myfile = skedar (r"C:\text.txt", "w")

myfile.write ("Ky është një varg mostër")

myfile.close()

myfile = skedar (r"C:\text.txt")

>>> printoni myfile.read()

"Ky është një varg mostër"

myfile.close()

# Hap skedarin për lexim

myfile = skedar (r"C:\binary.dat")

loadedlist = pickle.load(myfile)

myfile.close()

>>>printo listën e ngarkuar

["Kjo", "është", 4, 13327]

Veçoritë

  • Kushtet mund të kombinohen. 1 < a < 3 выполняется тогда, когда а больше 1, но меньше 3.
  • Përdorni operacionin "del" për të pastroni variablat ose elementet e grupit.
  • Python ofron mundësi të mëdha për punoni me lista. Ju mund të përdorni deklaratat e deklarimit të strukturës së listës. Deklarata for ju lejon të vendosni elementet e listës në një sekuencë të caktuar, dhe if - ju lejon të zgjidhni elementet sipas kushteve.

>>> lst1 =

>>> lst2=

>>> printoni

>>> printoni

# Operatori "çdo" kthehet i vërtetë nëse edhe pse

# nëse plotësohet një nga kushtet e përfshira në të.

>>> çdo (i % 3 për i në )

E vërtetë

# Procedura e mëposhtme numëron numrin

# artikuj që përputhen në listë

>>> shuma (1 për i në nëse i == 3)

>>> del lst1

>>> print lst1

>>> del lst1

  • Variablat globalë deklarohen jashtë funksioneve dhe mund të lexohen pa asnjë deklaratë. Por nëse ju duhet të ndryshoni vlerën e një ndryshoreje globale nga një funksion, atëherë duhet ta deklaroni atë në fillim të funksionit me fjalën kyçe "global", nëse nuk e bëni, atëherë Python do ta deklarojë variablin të disponueshëm vetëm për këtë. funksionin.

numri = 5

def myfunc():

# Rezultatet 5

numri i printimit

definoni një funksion tjetër ():

# Kjo hedh një përjashtim sepse globali është një ndryshore

# nuk u thirr nga një funksion. Python në këtë rast krijon

# ndryshore me të njëjtin emër brenda këtij funksioni dhe e aksesueshme

# vetëm për operatorët e këtij funksioni.

numri i printimit

Numri = 3

def yetanotherfunc():

numri global

# Dhe vetëm nga ky funksion ndryshohet vlera e ndryshores.

Numri = 3

Epilogu

Sigurisht, ky artikull nuk mbulon të gjitha tiparet e Python. Shpresoj se ky artikull do t'ju ndihmojë nëse dëshironi të vazhdoni të mësoni këtë gjuhë programimi.

Përfitimet e Python

  • Shpejtësia e ekzekutimit të programeve të shkruara në Python është shumë e lartë. Kjo për shkak se bibliotekat kryesore të Python
    janë të shkruara në C++ dhe detyrat kërkojnë më pak kohë për t'u përfunduar sesa në gjuhë të tjera të nivelit të lartë.
  • Në këtë drejtim, ju mund të shkruani modulet tuaja për Python në C ose C++
  • Në bibliotekat standarde Python mund të gjeni mjete për të punuar me e-mail, protokolle
    Internet, FTP, HTTP, bazat e të dhënave, etj.
  • Skriptet e shkruara me Python ekzekutohen në shumicën e sistemeve operative moderne. Kjo transportueshmëri lejon Python të përdoret në një shumëllojshmëri të gjerë aplikacionesh.
  • Python është i përshtatshëm për çdo zgjidhje programimi, qofshin ato programe zyre, aplikacione ueb, aplikacione GUI, etj.
  • Mijëra entuziastë nga e gjithë bota punuan në zhvillimin e Python. Mbështetjen e teknologjive moderne në bibliotekat standarde mund t'ia detyrojmë pikërisht faktit që Python ishte i hapur për të gjithë ata që vijnë.

Njëherë e një kohë, në një forum të mbyllur, u përpoqa të mësoja Python. Në përgjithësi, gjërat kanë ngecur atje. Më erdhi keq për mësimet e shkruara dhe vendosa t'i postoj për publikun e gjerë. Ndërsa e para, më e thjeshta. Bëhet më interesante, por ndoshta nuk do të jetë interesante. Ne pergjithesi ky postim do te jete nje tullumbace prove, nese ju pelqen do ta shperndaj me tej.

Python për fillestarët. Kapitulli i parë. "Për çfarë jemi ne"

Për çdo rast, pak “ungjillizëm” i mërzitshëm. Kush është i lodhur prej tij, mund të kaloni disa paragrafë.
Python (shqiptohet "Python" jo "python") është një gjuhë skriptimi e zhvilluar nga Guido van Rossum si një gjuhë e thjeshtë që është e lehtë për t'u mësuar për një fillestar.
Në ditët e sotme, Python është një gjuhë e përdorur gjerësisht që përdoret në shumë fusha:
- Zhvillimi i softuerit të aplikacionit (për shembull, shërbimet linux yum, pirut, system-config-*, klienti Gajim IM dhe shumë të tjerë)
- Zhvillimi i aplikacioneve në internet (serveri më i fuqishëm Zope Application dhe CMS Plone i zhvilluar në bazë të tij, në bazë të të cilit, për shembull, funksionon faqja e internetit e CIA-s, dhe shumë korniza për zhvillimin e shpejtë të aplikacioneve Plones, Django, TurboGears dhe shumë të tjerë)
- Përdorni si një gjuhë skriptimi të integruar në shumë lojëra, dhe jo vetëm (në paketën e zyrës OpenOffice.org, redaktuesin Blender 3d, Postgre DBMS)
- Përdorimi në llogaritjet shkencore (me paketat SciPy dhe numPy për llogaritjet dhe PyPlot për vizatimin, Python bëhet pothuajse i krahasueshëm me paketat si MatLab)

Dhe kjo sigurisht nuk është një listë e plotë e projekteve që përdorin këtë gjuhë të mrekullueshme.

1. Vetë përkthyesi, mund ta merrni këtu (http://python.org/download/).
2. Mjedisi zhvillimor. Nuk është e nevojshme të filloni, dhe IDLE e përfshirë në shpërndarje është e përshtatshme për një fillestar, por për projekte serioze ju duhet diçka më serioze.
Për Windows përdor PyScripter-in e mrekullueshëm të lehtë (http://tinyurl.com/5jc63t), për Linux përdor Komodo IDE.

Edhe pse për mësimin e parë, do të mjaftojë vetëm guaska interaktive e Python.

Thjesht ekzekutoni python.exe. Kërkesa e hyrjes nuk do të zgjasë shumë, duket kështu:

Ju gjithashtu mund të shkruani programe në skedarë me shtesën py, në redaktuesin tuaj të preferuar të tekstit, i cili nuk i shton karakteret e tij të shënimit në tekst (asnjë Word nuk do ta bëjë këtë). Është gjithashtu e dëshirueshme që ky redaktues të jetë në gjendje të bëjë "skedat inteligjente" dhe të mos zëvendësojë hapësirat me një karakter tab.
Për të ekzekutuar skedarët për ekzekutim, mund të klikoni mbi to 2 herë. Nëse dritarja e konsolës mbyllet shumë shpejt, futni rreshtin e mëposhtëm në fund të programit:

Pastaj përkthyesi do të presë që të shtypet enter në fund të programit.

Ose lidhni skedarët py në Far me Python dhe hapeni duke shtypur enter.

Më në fund, mund të përdorni një nga shumë IDE-të e dobishme të Python që ofrojnë aftësi korrigjimi dhe theksim të sintaksës dhe shumë "komoditete" të tjera.

Pak teori.

Si fillim, Python është një gjuhë e shtypur fuqishëm dinamikisht. Çfarë do të thotë kjo?

Ka gjuhë me shtypje të fortë (pascal, java, c, etj.), në të cilat lloji i një variabli përcaktohet paraprakisht dhe nuk mund të ndryshohet, dhe ka gjuhë me shtypje dinamike (python, ruby, vb ), në të cilën lloji i një variabli interpretohet në varësi të vlerës së caktuar.
Gjuhët e shtypura në mënyrë dinamike mund të ndahen më tej në 2 lloje. Strikte, të cilat nuk lejojnë konvertimin e tipit të nënkuptuar (Pyton) dhe jo strikte, të cilat kryejnë konvertime të tipit të nënkuptuar (p.sh. VB, në të cilën mund të shtoni lehtësisht vargun "123" dhe numrin 456).
Duke u marrë me klasifikimin e Python-it, le të përpiqemi të "luajmë" pak me interpretuesin.

>>> a = b = 1 >>> a, b (1, 1) >>> b = 2 >>> a, b (1, 2) >>> a, b = b, a >>> a , b (2, 1)

Kështu, shohim se caktimi kryhet duke përdorur shenjën =. Ju mund t'i caktoni një vlerë variablave të shumtë në të njëjtën kohë. Kur i tregon interpretuesit emrin e një ndryshoreje në mënyrë interaktive, ai nxjerr vlerën e saj.

Gjëja tjetër që duhet të dini është se si janë ndërtuar njësitë bazë algoritmike - degët dhe sythe. Për të filluar, ne kemi nevojë për një ndihmë të vogël. Në Python, nuk ka një kufizues të veçantë të bllokut të kodit, roli i tyre luhet nga dhëmbëzimi. Kjo do të thotë, ajo që shkruhet me të njëjtën dhëmbëzim është një bllok komandues. Në fillim mund t'ju duket e çuditshme, por pasi mësoheni pak, kuptoni se kjo masë "e detyruar" ju lejon të merrni një kod shumë të lexueshëm.
Pra kushtet.

Kushti specifikohet duke përdorur një deklaratë if që përfundon me ":". Kushtet alternative që do të plotësohen nëse testi i parë "dështoi" jepen nga deklarata elif. Së fundi, other specifikon degën që do të ekzekutohet nëse asnjë nga kushtet nuk përputhet.
Vini re se pasi të shkruani if, përkthyesi tregon me promptin "..." se është duke pritur që hyrja të vazhdojë. Për t'i thënë se kemi mbaruar, duhet të futni një varg bosh.

(Për disa arsye, shembulli me degë thyen shënimin në Habré, pavarësisht kërcimeve me etiketat para dhe kode. Më falni për shqetësimin, e hodha këtu pastebin.com/f66af97ba, nëse dikush më thotë se çfarë nuk shkon, do të ji shumë mirënjohës)

cikle.

Rasti më i thjeshtë i një cikli është cikli while. Merr një kusht si parametër dhe ekzekutohet për aq kohë sa është i vërtetë.
Këtu është një shembull i vogël.

>>> x = 0 >>> ndërsa x<=10: ... print x ... x += 1 ... 0 1 2 ........... 10

Vini re se duke qenë se të dy printimet x dhe x+=1 janë shkruar me të njëjtën dhëmbëzim, ato konsiderohen si trupi i lakut (kujtoni atë që thashë për blloqet? ;-)).

Lloji i dytë i ciklit në Python është cikli for. Është e ngjashme me ciklin foreach në gjuhë të tjera. Sintaksa e tij konvencionalisht është si më poshtë.

Për variablin në listë:
komandat

Ndryshores do t'i caktohen nga ana tjetër të gjitha vlerat nga lista (në fakt, mund të ketë jo vetëm një listë, por edhe çdo përsëritës tjetër, por ne nuk do të shqetësohemi me këtë për momentin).

Këtu është një shembull i thjeshtë. Lista do të jetë një varg, i cili nuk është gjë tjetër veçse një listë karakteresh.

>>> x = "Përshëndetje, Python!" >>> për char në x: ... print char ... H e l ........... !

Kështu, ne mund ta zbërthejmë vargun në karaktere.
Çfarë duhet të bëjmë nëse kemi nevojë për një lak që përsëritet një numër të caktuar herë? Shumë e thjeshtë, funksioni i rrezes do të vijë në shpëtim.

Në hyrje, merr nga një deri në tre parametra, në dalje kthen një listë numrash, të cilat mund të "përshkojmë" me deklaratën for.

Këtu janë disa shembuj të përdorimit të funksionit të diapazonit që shpjegojnë rolin e parametrave të tij.

>>> diapazoni (10) >>> diapazoni (2, 12) >>> diapazoni (2, 12, 3) >>> diapazoni (12, 2, -2)

Dhe një shembull i vogël me një cikël.

>>> për x në intervalin (10): ... print x ... 0 1 2 ..... 9

Hyrje dalje

Gjëja e fundit që duhet të dini përpara se të filloni të përdorni plotësisht Python është se si ai trajton I/O.

Për dalje, përdoret komanda print, e cila printon të gjitha argumentet e saj në formë të lexueshme nga njeriu.

Për hyrjen e konsolës, përdoret funksioni raw_input(prompt), i cili shfaq një prompt dhe pret për hyrjen e përdoruesit, duke kthyer atë që përdoruesi ka futur si vlerë.

X = int(raw_input ("Fut një numër:")) print "Katrori i këtij numri është ", x * x

Kujdes! Pavarësisht ekzistencës së funksionit të hyrjes () të një veprimi të ngjashëm, nuk rekomandohet përdorimi i tij në programe, pasi interpretuesi përpiqet të ekzekutojë shprehjet sintaksore të futura duke përdorur atë, gjë që është një vrimë serioze sigurie në program.

Kjo është e gjitha për mësimin e parë.

Detyre shtepie.

1. Shkruani një program për njehsimin e hipotenuzës së një trekëndëshi kënddrejtë. Gjatësia e këmbëve kërkohet nga përdoruesi.
2. Shkruani një program për gjetjen e rrënjëve të një ekuacioni kuadratik në terma të përgjithshëm. Koeficientët kërkohen nga përdoruesi.
3. Shkruani një program për të shfaqur tabelën e shumëzimit me numrin M. Tabela përpilohet nga M * a në M * b, ku M, a, b kërkohen nga përdoruesi. Prodhimi duhet të jetë në një kolonë, një shembull për rresht në formën e mëposhtme (për shembull):
5 x 4 = 20
5 x 5 = 25
etj.

Python është një gjuhë skriptuese popullore dhe e fuqishme me të cilën mund të bësh çfarë të duash. Për shembull, ju mund të zvarritni faqet e internetit dhe të mbledhni të dhëna prej tyre, të krijoni rrjete dhe mjete, të kryeni llogaritje, të programoni për Raspberry Pi, të zhvilloni programe grafike dhe madje edhe video lojëra. Python mund të \\ të shkruajë programe të sistemit të pavarur nga platforma.

Në këtë artikull, ne do të mbulojmë bazat e programimit Python, do të përpiqemi të mbulojmë të gjitha tiparet bazë që do t'ju nevojiten për të filluar përdorimin e gjuhës. Ne do të shqyrtojmë përdorimin e klasave dhe metodave për të zgjidhur probleme të ndryshme. Supozohet se tashmë jeni njohur me bazat dhe sintaksën e gjuhës.

Çfarë është Python?

Nuk do të hyj në historinë e krijimit dhe zhvillimit të gjuhës, këtë mund ta mësoni lehtësisht nga videoja që do të bashkangjitet më poshtë. Është e rëndësishme të theksohet se Python është një gjuhë skriptimi. Kjo do të thotë se kodi juaj kontrollohet për gabime dhe ekzekutohet menjëherë pa ndonjë përpilim ose ripunim shtesë. Kjo qasje quhet edhe interpretuese.

Kjo zvogëlon performancën, por është shumë i përshtatshëm. Ekziston një përkthyes në të cilin mund të futni komanda dhe të shihni menjëherë rezultatin e tyre. Një punë e tillë ndërvepruese ndihmon shumë në mësim.

Puna në përkthyes

Fillimi i interpretuesit Python është shumë i lehtë në çdo sistem operativ. Për shembull, në Linux, thjesht shkruani komandën python në terminal:

Në promptin e interpretuesit që hapet, ne shohim versionin e Python që është aktualisht në përdorim. Në ditët e sotme, dy versione të Python 2 dhe Python 3 janë shumë të përhapur. Ata janë të dy të njohur sepse i pari zhvilloi shumë programe dhe biblioteka, dhe i dyti ka më shumë veçori. Prandaj, shpërndarjet përfshijnë të dy versionet. Si parazgjedhje, lëshohet versioni i dytë. Por nëse keni nevojë për versionin 3, atëherë duhet të ekzekutoni:

Është versioni i tretë që do të shqyrtohet në këtë artikull. Tani le të shohim veçoritë kryesore të kësaj gjuhe.

Operacionet e vargut

Vargjet në Python janë të pandryshueshme, ju nuk mund të ndryshoni një nga karakteret në një varg. Çdo ndryshim në përmbajtje kërkon që të bëhet një kopje e re. Hapni përkthyesin dhe ndiqni shembujt e renditur më poshtë në mënyrë që të kuptoni më mirë gjithçka që është shkruar:

1. Lidhja e vargjeve

str = "mirë se erdhët" + "në python"
print(rr)

2. Shumëzimi i vargut

str = "humbje" * 2
print(rr)

3. Kombinimi me transformimin

Ju mund të lidhni një varg me një numër ose një boolean. Por për këtë ju duhet të përdorni një transformim. Ekziston një funksion str() për këtë:

str = "Ky është një numër provë" + str(15)
print(rr)

4. Kërkoni për një nënvarg

Ju mund të gjeni një karakter ose nënvarg duke përdorur metodën e gjetjes:

str = "Mirëserdhe në sit"
print(str.find("faqe"))

Kjo metodë printon pozicionin e shfaqjes së parë të faqes së nënvargut nëse gjendet, nëse nuk gjendet asnjë, atëherë -1 kthehet. Funksioni fillon me karakterin e parë, por mund të filloni me karakterin e n-të, si 26:

str = "Mirëserdhe në faqen e sajtit"
print(str.find("humbje",26))

Në këtë rast, funksioni do të kthehet -1 sepse vargu nuk u gjet.

5. Marrja e një nënvargu

Ne morëm pozicionin e nënvargut që po kërkojmë, dhe tani si ta marrim vetë nënvargun dhe çfarë është pas tij? Për ta bërë këtë, përdorni këtë sintaksë [fillimi:fund], thjesht specifikoni dy numra ose vetëm të parin:

str = "Një dy tre"
print(rr[:2])
print(rr)
print(rr)
print (rr[-1])

Rreshti i parë do të nxjerrë një nënvarg nga karakteri i parë në të dytën, i dyti - nga i dyti në fund. Ju lutemi vini re se numërimi mbrapsht fillon nga zero. Për të numëruar mbrapsht, përdorni një numër negativ.

6. Zëvendësimi i nënvargut

Ju mund të zëvendësoni një pjesë të një vargu me metodën e zëvendësimit:

str = "Kjo faqe ka të bëjë me Linux"
str2 = str.replace ("Linux", "Windows")
print (str2)

Nëse ka shumë dukuri, atëherë vetëm e para mund të zëvendësohet:

str = "Kjo është një faqe Linux dhe unë jam abonuar në këtë sajt"
str2 = str.replace("faqe në internet", "faqe",1)
print (str2)

7. Pastrimi i linjave

Ju mund të hiqni hapësirat shtesë me funksionin e shiritit:

str = "Kjo është një faqe interneti Linux"
print(str.strip())

Është gjithashtu e mundur të hiqni hapësirat shtesë vetëm në të djathtë të rstrip ose vetëm në të majtë - lstrip.

8. Ndryshimi i rastit

Ekzistojnë funksione të veçanta për ndryshimin e rastit të karaktereve:

str="Mirëserdhe në Lost"
print(rr. sipërme())
print(rr.poshtë())

9. Konvertimi i vargut

Ekzistojnë disa funksione për konvertimin e një vargu në lloje të ndryshme numerike, këto janë int() , float() , long() dhe të tjera. Funksioni int() konvertohet në një numër të plotë dhe float() në një numër me pikë lundruese:

str="10"
str2 = "20"
print (str+str2)
print(int(str)+int(str2))

10. Gjatësia e linjës

Ju mund të përdorni funksionet min(), max(), len() për të llogaritur numrin e karaktereve në një varg:

str="Mirëserdhe në Lost"
print (min (rrugë))
print (maksimumi (str))
print(len (rr))

E para tregon madhësinë minimale të karakterit, e dyta tregon maksimumin dhe e treta tregon gjatësinë totale të vargut.

11. Përsëriteni mbi një rresht

Ju mund të përdorni çdo karakter të një vargu individualisht me një lak for:

str="Mirë se vini në sit"
për i në varg(len(str)):
print(str[i])

Ne përdorëm funksionin len() për të kufizuar ciklin. Vini re dhëmbëzimin. Programimi në Python ndërtohet mbi këtë, nuk ka kllapa për të organizuar blloqe, por vetëm dhëmbëzim.

Veprimet me numra

Numrat në Python janë mjaft të thjeshtë për t'u deklaruar ose përdorur në metoda. Ju mund të krijoni numra të plotë ose notues:

num1 = 15
num2 = 3,14

1. Rrumbullakimi i numrave

Ju mund të rrumbullakosni një numër me funksionin e rrumbullakët, thjesht specifikoni sa shifra duhet të lini:

a=15.5652645
print (rrumbullakët (a, 2))

2. Gjenerimi i numrave të rastësishëm

Ju mund të merrni numra të rastësishëm duke përdorur modulin e rastësishëm:

import të rastësishëm
print(i rastësishëm.random())

Si parazgjedhje, numri gjenerohet nga diapazoni 0.0 në 1.0. Por ju mund të vendosni gamën tuaj:

import të rastësishëm
numrat=
print (i rastësishëm.zgjedhja (numrat))

Operacionet me datë dhe orë

Gjuha e programimit Python ka një modul DateTime që ju lejon të kryeni operacione të ndryshme në data dhe orë:

data e importit
cur_date = datetime.datetime.now()
print (data e tanishme)
print (data e_cur. vit)
print (data e tanishme.dita)
print(data e_kur.ditë e javës())
print (data e_kur. muaj)
print(cur_date.time())

Shembulli tregon se si të nxirret vlera e dëshiruar nga një objekt. Ju mund të gjeni ndryshimin midis dy objekteve:

data e importit
time1 = datetime.datetime.now()
time2 = datetime.datetime.now()
timediff = koha2 - koha1
print (timediff.mikrosekonda)

Ju mund të krijoni vetë objekte data me një vlerë arbitrare:

time1 = datetime.datetime.now()
koha2 = datakoha.kohëdelta(ditë=3)
koha3=koha1+koha2
print(ora 3.datë())

1. Formatimi i datës dhe orës

Metoda strftime ju lejon të ndryshoni formatin e datës dhe orës në varësi të standardit të zgjedhur ose formatit të specifikuar. Këtu janë karakteret bazë të formatimit:

  • %a- dita e javës, emri i shkurtuar;
  • %A- dita e javës, emri i plotë;
  • %w- numri i ditës së javës, nga 0 në 6;
  • %d- dita e muajit;
  • %b- emri i shkurtuar i muajit;
  • %B- emri i plotë i muajit;
  • %m- numri i muajit;
  • %Y- numri i vitit;
  • %H- ora e ditës në format 24 orë;
  • %l- ora e ditës në format 12 orësh;
  • %fq- Paradite apo pasdite;
  • %M- minutë;
  • %S- e dyta.

data e importit
date1 = datetime.datetime.now()
print(data1.strftime("%d. %B %Y %I:%M%p"))

2. Krijo datën nga vargu

Ju mund të përdorni funksionin strptime() për të krijuar një objekt datë nga një varg:

data e importit
date1=datetime.datetime.strptime("2016-11-21", "%Y-%m-%d")
date2=datatime.datatime(viti=2015, muaji=11, dita=21)
print (data 1);
print (data 2);

Operacionet e sistemit të skedarëve

Menaxhimi i skedarëve është shumë i lehtë në gjuhën e programimit Python, është gjuha më e mirë për të punuar me skedarë. Dhe në përgjithësi, mund të themi se Python është gjuha më e lehtë.

1. Kopjoni skedarët

Për të kopjuar skedarët, duhet të përdorni funksionet nga moduli i subutilit:

import shutil
New_path = shutil.copy ("file1.txt", "file2.txt")

new_path = shutil.copy("file1.txt", "file2.txt", follow_symlinks=False)

2. Lëvizja e skedarëve

Lëvizja e skedarëve bëhet duke përdorur funksionin lëviz:

shutil.move ("file1.txt", "file3.txt")

Funksioni i riemërtimit nga moduli os ju lejon të riemërtoni skedarët:

import OS
os.rename("file1.txt", "file3.txt")

3. Leximi dhe shkrimi i skedarëve tekstualë

Ju mund të përdorni funksionet e integruara për të hapur skedarë, lexuar ose shkruar të dhëna në to:

fd = hapur ("file1.txt")
përmbajtje = fd.read()
print (përmbajtja)

Së pari ju duhet të hapni skedarin për të punuar me funksionin e hapur. Për të lexuar të dhënat nga një skedar, përdoret funksioni i leximit, teksti i lexuar do të ruhet në një ndryshore. Ju mund të specifikoni numrin e bajteve për të lexuar:

fd = hapur ("file1.txt")
përmbajtje = fd.read(20)
print (përmbajtja)

Nëse skedari është shumë i madh, mund ta ndani në rreshta dhe ta përpunoni si kjo:

përmbajtje = fd.readlines()
print (përmbajtja)

Për të shkruar të dhëna në një skedar, fillimisht duhet të hapet për shkrim. Ekzistojnë dy mënyra funksionimi - mbishkrimi dhe shtimi në fund të skedarit. Mënyra e regjistrimit:

fd = hapur ("file1.txt", "w")

Dhe duke shtuar në fund të skedarit:

fd = hapur ("file1.txt", "a")
përmbajtje = fd.write ("Përmbajtje e re")

4. Krijo drejtori

Për të krijuar një direktori, përdorni funksionin mkdir nga moduli os:

import OS
os.mkdir ("./dosje e re")

5. Merrni kohën e krijimit

Ju mund të përdorni funksionet getmtime(), getatime() dhe getctime() për të marrë kohën e modifikuar, aksesimin e fundit dhe kohën e krijuar. Rezultati do të dalë në formatin Unix, kështu që duhet të konvertohet në formë të lexueshme:

import OS
data e importit
tim=os.path.getctime("./file1.txt")
print (data ora.data.nga koha e vulës(tim))

6. Lista e dosjeve

Me funksionin listdir(), mund të merrni një listë skedarësh në një dosje:

import OS
files=os.listdir(".")
printoni (skedarët)

Për të zgjidhur të njëjtin problem, mund të përdorni modulin glob:

glob importi
files=glob.glob("*")
printoni (skedarët)

7. Serializimi i objekteve Python

turshi importi
fd = hapur ("myfile.pk", "wb")
pickle.dump(mydata,fd)

Pastaj për të rivendosur objektin përdorni:

turshi importi
fd = hapur ("myfile.pk", "rb")
mydata = pickle.load(fd)

8. Kompresimi i skedarit

Biblioteka standarde Python ju lejon të punoni me formate të ndryshme arkivore, si zip, tar, gzip, bzip2. Për të parë përmbajtjen e një skedari, përdorni:

importoni skedarin zip
my_zip = zipfile.ZipFile ("my_file.zip", mode = "r")
print(lista e emrave të skedarëve())

Dhe për të krijuar një arkiv zip:

importoni skedarin zip
file=zipfile.ZipFile ("files.zip", "w")
file.write ("file1.txt")
file.close()

Ju gjithashtu mund të çzipni arkivin:

importoni skedarin zip
file=zipfile.ZipFile ("files.zip", "r")
file.extractall()
file.close()

Ju mund të shtoni skedarë në një arkiv si ky:

importoni skedarin zip
file=zipfile.ZipFile ("files.zip", "a")
file.write ("file2.txt")
file.close()

9. Parimi i skedarëve CSV dhe Excel

Duke përdorur modulin panda, mund të shikoni dhe analizoni përmbajtjen e tabelave CSV dhe Excel. Së pari ju duhet të instaloni modulin me pip:

sudo pip instaloni panda

Më pas për të analizuar, shkruani:

importojnë panda
data=pandas.read_csv("file.csv)

Si parazgjedhje, pandat përdor kolonën e parë për titujt e çdo rreshti. Ju mund të specifikoni një kolonë për indeksin duke përdorur parametrin index_col, ose të specifikoni False nëse nuk është e nevojshme. Për të shkruar ndryshime në një skedar, përdorni funksionin to_csv:

data.to_csv ("file.csv)

Në të njëjtën mënyrë, mund të analizoni skedarin Excel:

data = pd.read_excel ("file.xls", emri i fletës = "Sheet1")

Nëse keni nevojë të hapni të gjitha tabelat, përdorni:

të dhëna = pd.ExcelFile ("file.xls")

Pastaj mund t'i shkruani të gjitha të dhënat:

data.to_excel ("file.xls", fletë = "Fleta1")

Rrjetëzimi në Python

Programimi i Python 3 shpesh përfshin rrjetëzim. Biblioteka standarde Python përfshin aftësi socket për qasje në rrjet të nivelit të ulët. Kjo është e nevojshme për të mbështetur shumë protokolle rrjeti.

fole importi
host = "192.168.1.5"
port=4040
my_sock = socket.create_connection((host, port))

Ky kod lidhet me portin 4040 në makinën 192.168.1.5. Kur priza është e hapur, mund të dërgoni dhe merrni të dhëna:

my_sock.sendall (b"Përshëndetje Botë")

Duhet të shkruajmë karakterin b, para vargut, sepse duhet të transferojmë të dhëna në modalitetin binar. Nëse mesazhi është shumë i madh, mund të përsërisni:

msg = b"Mesazhi më i gjatë shkon këtu"
mesglen = len (msg)
total = 0
ndërsa totali< msglen:
dërguar = my_sock.send(msg)
total = total + dërguar

Për të marrë të dhëna, gjithashtu duhet të hapni një prizë, përdoret vetëm metoda my_sock_recv:

data_in = my_sock.recv(2000)

Këtu tregojmë se sa të dhëna duhen marrë - 20000, të dhënat nuk do të transferohen në variabël derisa të jenë marrë 20000 bajt të dhëna. Nëse mesazhi është më i madh, atëherë për ta marrë atë, duhet të krijoni një lak:

buffer = bytearray(b" " * 2000)
my_sock.recv_into (buffer)

Nëse buferi është bosh, mesazhi i marrë do të shkruhet atje.

Puna me postë

Biblioteka standarde Python ju lejon të merrni dhe dërgoni mesazhe me email.

1. Marrja e postës nga një server POP3

Për të marrë mesazhe, ne përdorim serverin POP:

importoni getpass,poplib
pop_serv = poplib.POP3 ("192.168.1.5")
pop_serv.user ("myuser")
pop_serv.pass_(getpass.getpass())

Moduli getpass ju lejon të rikuperoni fjalëkalimin e përdoruesit në mënyrë të sigurt në mënyrë që të mos shfaqet në ekran. Nëse serveri POP përdor një lidhje të sigurt, duhet të përdorni klasën POP3_SSL. Nëse lidhja ishte e suksesshme, mund të ndërveproni me serverin:

msg_list = pop_serv.list() # për të renditur mesazhet
msg_count = pop_serv.msg_count()

Për të përfunduar punën tuaj, përdorni:

2. Marrja e postës nga një server IMAP

Moduli imaplib përdoret për t'u lidhur dhe punuar me serverin IMAP:

importoni imaplib, getpass
my_imap = imaplib.IMAP4 ("imap.server.com")
my_imap.login ("myuser", getpass.getpass())

Nëse serveri juaj IMAP përdor një lidhje të sigurt, duhet të përdorni klasën IMAP4_SSL. Për të marrë një listë të mesazheve përdorni:

data = my_imap.search (Asnjë, "ALL")

Më pas mund të kaloni nëpër listën e zgjedhur dhe të lexoni çdo mesazh:

msg = my_imap.fetch(id_email, "(RFC822)")

Por, mos harroni të mbyllni lidhjen:

my_imap.close()
my_imap.logout()

3. Dërgo postë

Për të dërguar postë, përdoret protokolli SMTP dhe moduli smtplib:

import smtplib, getpass
my_smtp = smtplib.SMTP(smtp.server.com")
my_smtp.login("myuser", getpass.getpass())

Si më parë, përdorni SMTP_SSL për një lidhje të sigurt. Kur të vendoset lidhja, mund të dërgoni një mesazh:

nga_addr=" [email i mbrojtur]"
te_addr=" [email i mbrojtur]"
msg = "Nga: [email i mbrojtur]\r\nPër: [email i mbrojtur]\r\n\r\nPërshëndetje, ky është një mesazh provë"
my_smtp.sendmail(from_addr, to_addr, msg)

Puna me ueb faqe

Programimi Python shpesh përdoret për të shkruar skripta të ndryshëm për të punuar me ueb.

1. Zvarritje në ueb

Moduli urllib ju lejon të kërkoni faqet e internetit në mënyra të ndryshme. Për të dërguar një kërkesë normale, përdoret klasa e kërkesës. Për shembull, le të ekzekutojmë një kërkesë normale të faqes:

import urllib.kërkesë
my_web = urllib.request.urlopen ("https://www.google.com")
print(my_web.read())

2. Përdorimi i metodës POST

Nëse keni nevojë të paraqisni një formular në internet, duhet të përdorni një kërkesë POST sesa një kërkesë GET:

import urllib.kërkesë
mydata = b"Të dhënat tuaja shkojnë këtu"
my_req = urllib.request.Request("http://localhost", data=mydata,method="POST")
my_form = urllib.request.urlopen(my_req)
print(my_form.status)

3. Krijoni një server në internet

Me klasën Socket, ju mund të pranoni lidhjet hyrëse, që do të thotë se mund të krijoni një server në internet me karakteristika minimale:

fole importi
host = ""
port=4242
serveri_my = fole.fole(fole.AF_INET, fole.SOCK_STREAM)
my_server.bind((host, port))
my_server.dëgjo(1)

Kur krijohet serveri. mund të filloni të pranoni lidhje:

addr = my_server.accept()
print("Lidhur nga hosti", adr)
të dhëna = conn.recv(1024)

Dhe mos harroni të mbyllni lidhjen:

Multithreading

Ashtu si shumica e gjuhëve moderne, Python ju lejon të ekzekutoni fije të shumta paralele, të cilat mund të jenë të dobishme nëse keni nevojë të kryeni llogaritje komplekse. Biblioteka standarde ka një modul threading që përmban klasën Therad:

filetimi i importit
def print_message():
print ("Mesazhi u printua nga një temë tjetër")
my_thread = threading.Thread(target=print_message)
my_thread.start()

Nëse funksioni funksionon për një kohë të gjatë, mund të kontrolloni nëse gjithçka është në rregull me funksionin is_alive(). Ndonjëherë temat tuaja duhet të kenë qasje në burimet globale. Për këtë, përdoren flokët:

filetimi i importit
num = 1
my_lock = threading.Lock()
def my_func():
numri global, my_lock
my_lock.acquire()
shuma = num + 1
shtyp (shuma)
my_lock.release()
my_thread = threading.Thread(target=my_func)
my_thread.start()

konkluzionet

Në këtë artikull, ne trajtuam bazat e programimit të python. Tani ju i njihni shumicën e funksioneve të përdorura shpesh dhe mund t'i përdorni në programet tuaja të vogla. Do t'ju pëlqejë programimi i Python 3, është shumë i lehtë! Nëse keni ndonjë pyetje, pyesni në komente!

Në fund të artikullit, një leksion i shkëlqyeshëm për Python:

Prezantimi


Në lidhje me zhvillimin e shpejtë të vëzhguar aktualisht të llogaritjes personale, ka një ndryshim gradual në kërkesat për gjuhët e programimit. Gjuhët e interpretuara kanë filluar të luajnë një rol gjithnjë e më të rëndësishëm, pasi fuqia në rritje e kompjuterëve personalë fillon të sigurojë shpejtësi të mjaftueshme për ekzekutimin e programeve të interpretuara. Dhe i vetmi avantazh i rëndësishëm i gjuhëve të programimit të përpiluar është kodi me shpejtësi të lartë që ato krijojnë. Kur shpejtësia e ekzekutimit të programit nuk është kritike, zgjedhja më e përshtatshme është një gjuhë e interpretuar, si një mjet programimi më i thjeshtë dhe më fleksibël.

Në këtë drejtim, është me interes të veçantë të merret parasysh gjuha relativisht e re e programimit Python (python), e cila u krijua nga autori i saj Guido van Rossum në fillim të viteve '90.

Informacione të përgjithshme rreth Python. Avantazhet dhe disavantazhet


Python është një gjuhë programimi e interpretuar, e orientuar drejt objektit. Është jashtëzakonisht i thjeshtë dhe përmban një numër të vogël fjalësh kyçe, megjithatë është shumë fleksibël dhe shprehës. Është një gjuhë e nivelit më të lartë se Pascal, C++ dhe, natyrisht, C, e cila arrihet kryesisht për shkak të strukturave të integruara të të dhënave të nivelit të lartë (lista, fjalorë, tuples).

Përparësitë e gjuhës.
Avantazhi i padyshimtë është se interpretuesi Python zbatohet pothuajse në të gjitha platformat dhe sistemet operative. Gjuha e parë e tillë ishte C, por llojet e saj të të dhënave mund të merrnin sasi të ndryshme memorie në makina të ndryshme, dhe kjo shërbeu si një pengesë për të shkruar një program vërtet portativ. Python nuk e ka këtë disavantazh.

Karakteristika tjetër e rëndësishme është shtrirja e gjuhës, e cila ka një rëndësi të madhe dhe, siç shkruan vetë autori, gjuha është konceptuar pikërisht si e shtrirë. Kjo do të thotë se ka vend për përmirësim të gjuhës nga të gjithë programuesit e interesuar. Përkthyesi është i shkruar në C dhe kodi burim është i disponueshëm për çdo manipulim. Nëse është e nevojshme, mund ta futni atë në programin tuaj dhe ta përdorni si një guaskë të integruar. Ose, duke shkruar shtesat tuaja në Python në C dhe duke përpiluar programin, ju merrni një përkthyes "të zgjeruar" me veçori të reja.

Avantazhi tjetër është prania e një numri të madh modulesh plug-in që ofrojnë veçori të ndryshme shtesë. Module të tilla janë shkruar në C dhe në vetë Python dhe mund të zhvillohen nga të gjithë programuesit mjaftueshëm të aftë. Modulet e mëposhtme janë shembuj:

  • Numerical Python - aftësi të avancuara matematikore siç janë manipulimet me vektorë me numra të plotë dhe matrica;
  • Tkinter - ndërtimi i aplikacioneve duke përdorur një ndërfaqe grafike të përdoruesit (GUI) bazuar në ndërfaqen e përdorur gjerësisht Tk në X-Windows;
  • OpenGL - përdorimi i bibliotekës së gjerë të modelimit grafik të objekteve dy dhe tre-dimensionale Open Graphics Library nga Silicon Graphics Inc. Ky standard mbështetet, ndër të tjera, në sisteme operative të tilla të zakonshme si Microsoft Windows 95 OSR 2, 98 dhe Windows NT 4.0.
Të meta gjuhësore.
E vetmja pengesë e vërejtur nga autori është shpejtësia relativisht e ulët e ekzekutimit të programit Python, e cila është për shkak të interpretueshmërisë së tij. Sidoqoftë, për mendimin tonë, kjo është më se e paguar nga avantazhet e gjuhës kur shkruani programe që nuk janë shumë kritike për shpejtësinë e ekzekutimit.

Përmbledhje e veçorive


1. Python, ndryshe nga shumë gjuhë (Pascal, C++, Java, etj.), Nuk kërkon deklarata të ndryshueshme. Ato krijohen në vendin e inicializimit të tyre, d.m.th. hera e parë që një ndryshore i caktohet një vlerë. Kjo do të thotë se lloji i ndryshores përcaktohet nga lloji i vlerës së caktuar. Në këtë drejtim, Python i ngjan Basic.
Lloji i ndryshores nuk është i pandryshueshëm. Çdo caktim për të është i saktë, dhe kjo çon vetëm në faktin se lloji i ndryshores bëhet lloji i vlerës së re të caktuar.

2. Në gjuhë të tilla si Pascal, C, C++ organizimi i listave paraqiste disa vështirësi. Për t'i zbatuar ato, duhej të studioheshin mirë parimet e punës me tregues dhe memorie dinamike. Dhe edhe me një kualifikim të mirë, një programues, çdo herë duke ri-zbatuar mekanizmat për krijimin, punën dhe shkatërrimin e listave, mund të bëjë lehtësisht gabime delikate. Në funksion të kësaj, u krijuan disa mjete për të punuar me lista. Për shembull, Delphi Pascal ka një klasë TList që zbaton listat; STL (Standard Template Library) është zhvilluar për C++, që përmban struktura të tilla si vektorë, lista, grupe, fjalorë, rafte dhe radhë. Sidoqoftë, lehtësira të tilla nuk janë të disponueshme në të gjitha gjuhët dhe zbatimet e tyre.

Një nga tiparet dalluese të Python është prania e strukturave të tilla të ndërtuara në vetë gjuhën si tuples(dyfish) listat(lista) dhe fjalorë(fjalor), që quhen ndonjëherë kartat(hartë). Le t'i shqyrtojmë ato në më shumë detaje.

  1. Tuple . Ajo të kujton disi një grup: përbëhet nga elementë dhe ka një gjatësi të përcaktuar rreptësisht. Elementet mund të jenë çdo vlerë - konstante të thjeshta ose objekte. Ndryshe nga një grup, elementët e një tuple nuk janë domosdoshmërisht homogjenë. Dhe ajo që e dallon një tuple nga një listë është se tupleja nuk mund të modifikohet, d.m.th. ne nuk mund t'i caktojmë diçka të re elementit tuple të i-të dhe nuk mund të shtojmë elementë të rinj. Kështu, një tuple mund të quhet një listë-konstante. Në mënyrë sintaksore, një tuple specifikohet me një listë të ndarë me presje të të gjithë elementëve, të gjithë të mbyllur në kllapa:

  2. (1, 2, 5, 8)
    (3.14, 'varg', -4)
    Të gjithë elementët janë të indeksuar nga e para. Për të marrë elementin i-të, duhet të specifikoni emrin e tuples së ndjekur nga indeksi i në kllapa katrore. Shembull:
    t = (0, 1, 2, 3, 4)
    shtyp t, t[-1], t[-3]
    Rezultati: 0 4 2
    Kështu, një tufë mund të quhet një vektor konstant nëse elementët e tij ishin gjithmonë homogjenë.
  3. Listë . Një shembull i mirë, i veçantë i një liste është një varg Turbo Pascal. Elementet e një vargu janë karaktere të vetme, gjatësia e tij nuk është fikse, është e mundur të fshihen elementë ose, përkundrazi, t'i futen kudo në varg. Elementet e listës mund të jenë objekte arbitrare, jo domosdoshmërisht të të njëjtit lloj. Për të krijuar një listë, mjafton të renditni elementet e saj të ndara me presje, duke i mbyllur të gjitha këto në kllapa katrore:


  4. ['string', (0,1,8), ]
    Ndryshe nga një tuple, listat mund të modifikohen sipas dëshirës. Elementet aksesohen në të njëjtën mënyrë si në tufa. Shembull:
    l = ]
    printoni l, l, l[-2], l[-1]
    Rezultati: 1 s (2.8) 0
  5. Fjalor . Të kujton rekordin e tipit (rekord) në Pascal ose strukturat (strukturën) në C. Megjithatë, në vend të skemës "fusha e regjistrimit" - "vlera", këtu përdoret "kyç" - "vlerë". Një fjalor është një grup çiftesh "çelës"-"vlerë". Këtu "çelësi" është një konstante e çdo lloji (por përdoren kryesisht vargjet), ai shërben për të emërtuar (indeksuar) një vlerë që i përgjigjet (e cila mund të ndryshohet).

  6. Një fjalor krijohet duke renditur elementët e tij (çifte të ndara me dy pika të vlerave kryesore), të ndara me presje dhe duke i mbyllur të gjitha në kllapa kaçurrelë. Për të fituar akses në një vlerë të caktuar, është e nevojshme të shkruani çelësin përkatës në kllapa katrore pas emrit të fjalorit. Shembull:
    d = ("a": 1, "b": 3, 5: 3.14, "emri": "Gjoni")
    d["b"] = d
    print d["a"], d["b"], d, d["emri"]
    Rezultati: 1 3,14 3,14 Gjoni
    Për të shtuar një çift të ri "çelës"-"vlerë", mjafton t'i caktoni elementit vlerën përkatëse me çelësin e ri:
    d["new"] = "vlere e re"
    shtyp d
    Rezultati: ("a":1, "b":3, 5:3.14, "emri":"Gjoni", "i ri":"vlera e re")

3. Ndryshe nga Pascal, C, C++, Python nuk mbështet tregues, memorie dinamike dhe aritmetikë të adresave. Në këtë është e ngjashme me Java. Siç e dini, treguesit janë një burim gabimesh delikate dhe puna me ta lidhet më shumë me programimin në një nivel të ulët. Për besueshmëri dhe thjeshtësi më të madhe, ato nuk janë përfshirë në Python.

4. Një nga veçoritë e Python është se si një ndryshore i caktohet një tjetre, d.m.th. kur në të dyja anët e operatorit " = " janë variabla.

Duke ndjekur Timothy Budd (), do të telefonojmë semantika e treguesit rasti kur caktimi çon vetëm në caktimin e një referimi (pointeri), d.m.th. ndryshorja e re bëhet vetëm një emër tjetër që tregon të njëjtin vend memorie si ndryshorja e vjetër. Në këtë rast, një ndryshim në vlerën e shënuar me variablin e ri do të çojë në një ndryshim në vlerën e variablit të vjetër, sepse në fakt nënkuptojnë të njëjtën gjë.

Kur caktimi çon në krijimin e një objekti të ri (këtu, një objekt në kuptimin e një pjese memorie për ruajtjen e një vlere të një lloji) dhe kopjimin e përmbajtjes së ndryshores që i është caktuar, ne do ta quajmë këtë rast kopjoni semantikën. Kështu, nëse semantika e kopjimit është në fuqi, atëherë variablat në të dyja anët e shenjës "=" do të nënkuptojnë dy objekte të pavarura me të njëjtën përmbajtje. Dhe këtu, një ndryshim i mëvonshëm në një variabël nuk do të ndikojë në tjetrin në asnjë mënyrë.

Detyra në Python funksionon si kjo: nëse të caktueshme objekti është një shembull i llojeve të tilla si numrat ose vargjet, atëherë zbatohet semantika e kopjimit, por nëse ana e djathtë është një shembull i një klase, liste, fjalori ose tuple, atëherë zbatohet semantika e treguesit. Shembull:
a = 2; b = a; b = 3
print " copy semantics: a=", a, "b=", b
a = ; b = a; b = 3
print " semantikë treguese: a=", a, "b=", b
Rezultati:
semantika e kopjimit: a= 2 b= 3
semantika e treguesit: a= b=

Për ata prej jush që duan të dinë se për çfarë bëhet fjalë, unë do t'ju jap një pikëpamje të ndryshme për detyrën në Python. Nëse në gjuhë të tilla si Basic, Pascal, C / C ++ trajtonim variablat e "kapacitetit" dhe konstantet e ruajtura në to (numerikë, karakter, varg - nuk ka rëndësi), dhe operacioni i caktimit nënkuptonte "hyrje" në konstante në variablin e caktuar, atëherë në Python tashmë duhet të punojmë me variablat-"emrat" dhe objektet e emërtuara prej tyre. (Vini re një analogji me Prolog?) Çfarë është një objekt në Python? Kjo është gjithçka që mund t'i jepet një emër: numra, vargje, lista, fjalorë, instanca të klasave (të cilat quhen objekte në Object Pascal), vetë klasat (!), funksionet, modulet, etj. Pra, kur i caktohet një objekt një ndryshoreje, ndryshorja bëhet "emri" i saj dhe objekti mund të ketë çdo numër "emrash" të tillë dhe të gjithë nuk varen nga njëri-tjetri.

Tani, objektet ndahen në të modifikueshme (të ndryshueshme) dhe të pandryshueshme. Të ndryshueshme - ato që mund të ndryshojnë "përmbajtjen e tyre të brendshme", për shembull, listat, fjalorët, shembujt e klasave. Dhe ato të pandryshueshme - të tilla si numrat, tuplet, vargjet (po, edhe vargjet; mund t'i caktoni një variable një varg të ri të marrë nga ai i vjetër, por nuk mund ta modifikoni vetë vargun e vjetër).

Pra, nëse shkruajmë a = ; b = a; b = 3, Python e interpreton këtë si:

  • jepni objektit një "listë" "emri a ;
  • jepini këtij objekti një emër tjetër - b ;
  • modifikoni elementin null të objektit.

  • Kjo është semantika "pseudo" e treguesve.

    Dhe gjëja e fundit për të thënë për këtë: megjithëse nuk është e mundur të ndryshohet struktura e tuples, përbërësit e ndryshueshëm që përmbahen në të janë ende të disponueshëm për modifikim:

    T = (1, 2, , "string") t = 6 # nuk lejohet del t # gjithashtu një gabim t = 0 # i vlefshëm, tani komponenti i tretë është një listë t = "S" # gabim: vargjet nuk janë të ndryshueshme

    5. Mjaft origjinale është mënyra në të cilën operatorët grupohen në Python. Pascal përdor kllapa për këtë. fillim-fund, në C, C++, Java - kllapa kaçurrelë (), në Basic përdoren mbaresat mbyllëse të konstrukteve të gjuhës (NEXT, WEND, END IF, END SUB).
    Në gjuhën Python, gjithçka është shumë më e thjeshtë: zgjedhja e një blloku deklaratash kryhet duke zhvendosur grupin e zgjedhur me një ose më shumë hapësira ose karaktere skedash në të djathtë në lidhje me titullin e strukturës së cilës do t'i referohet ky bllok. Për shembull:

    nëse x > 0: print ' x > 0 ' x = x - 8 tjetër: print ' x<= 0 ’ x = 0 Kështu, një stil i mirë i të shkruarit të programeve, i cili kërkohet nga mësuesit e Pascal, C ++, Java, etj., fitohet këtu që në fillim, sepse thjesht nuk funksionon ndryshe.

    Përshkrimi i gjuhës. Strukturat e kontrollit



    Përjashtimet e trajtimit


    provoni:
    <оператор1>
    [përveç[<исключение> [, <переменная>] ]:
    <оператор2>]
    [tjetër <оператор3>]
    E kryer<оператор1>nëse ndodh një përjashtim<исключение>, pastaj<оператор2>. Nëse<исключение>ka një vlerë, është caktuar<переменной>.
    Në rast të përfundimit me sukses<оператора1>, kryer<оператор3>.
    provoni:
    <оператор1>
    më në fund:
    <оператор2>
    E kryer<оператор1>. Nëse nuk u hodhën përjashtime, atëherë<оператор2>. Përndryshe,<оператор2>dhe një përjashtim hidhet menjëherë.
    ngre <исключение> [<значение>] Hedh një përjashtim<исключение>me parametër<значение>.

    Përjashtimet janë vetëm vargjet. Shembull:

    My_ex = 'indeks i keq' provo: nëse është i keq: ngre my_ex, keq përveç my_ex, vlera: print 'Gabim', vlera

    Deklarata e funksionit



    Deklarata e klasës



    Klasa cMyClass: def __init__(vetë, val): vetë.vlera = val # def printVal (vetë): print 'vlera = ', vetë.vlera # # fund cMyClass obj = cMyClass (3.14) obj.printVal () obj.value = "(! LANG: vargu tani" obj.printVal () !} Rezultati:
    vlera = 3.14
    vlera = varg tani

    Operatorë për të gjitha llojet e sekuencave (lista, tuples, vargje)


    Operatorët për listat (lista)


    s[i] = x Elementi i-të i s zëvendësohet me x.
    s = t një pjesë e elementeve të s nga i në j-1 zëvendësohet me t (t mund të jetë edhe një listë).
    del s heq pjesën s (njëlloj si s = ).
    s.append(x) shton elementin x në fund të s.
    s.count(x) kthen numrin e elementeve të s të barabartë me x.
    s.indeks(x) kthen i-në më të vogël të tillë që s[i]==x.
    s.insert(i,j) pjesa e s, duke filluar nga elementi i-të, zhvendoset djathtas dhe s[i] i caktohet x.
    s.heq (x) njëjtë si del s[ s.index(x) ] - heq elementin e parë të s të barabartë me x.
    s.reverse() shkruan vargun në rend të kundërt
    rendit () rendit listën në rend rritës.

    Operatorët për fjalorë


    Objektet e skedarit


    Krijuar nga funksioni i integruar hapur ()(shih përshkrimin më poshtë). Për shembull: f = hapur ('mydan.dat','r').
    Metodat:

    Elemente të tjera gjuhësore dhe funksione të integruara


    = detyrë.
    shtypur [ < c1 > [, < c2 >]* [, ] ] nxjerr vlerat< c1 >, < c2 >në dalje standarde. Vendos një hapësirë ​​midis argumenteve. Nëse nuk ka presje në fund të listës së argumenteve, ajo kalon në një rresht të ri.
    abs (x) kthen vlerën absolute të x.
    aplikoni ( f , <аргументы>) thërret funksionin (ose metodën) f me< аргументами >.
    chr(i) kthen një varg të vetëm karakteresh me kodin ASCII i.
    cmp(x, y) kthen një vlerë negative, zero ose pozitive nëse, përkatësisht, x<, ==, или >se y.
    divmod(a,b) kthen një tuple (a/b, a%b), ku a/b është një div b (pjesa e plotë e rezultatit të pjesëtimit), a%b është një mod b (pjesa e mbetur e pjesëtimit).
    vleresimi(et)
    kthen objektin e dhënë në s si varg. S mund të përmbajë çdo strukturë gjuhësore. S mund të jetë gjithashtu një objekt kodi, për shembull: x = 1 ; incr_x = eval("x+1") .
    noton (x) kthen një vlerë reale të barabartë me numrin x.
    heks (x) kthen një varg që përmban paraqitjen heksadecimal të numrit x.
    hyrje (<строка>) shfaq<строку>, lexon dhe kthen një vlerë nga hyrja standarde.
    int(x) kthen vlerën e plotë të x.
    lentet kthen gjatësinë (numrin e elementeve) të objektit.
    e gjatë (x) kthen një vlerë të tipit long integer x.
    maksimumi, min(a) ktheni elementin më të madh dhe më të vogël të një sekuence s (dmth. s është një varg, listë ose tuple).
    tetor (x) kthen një varg që përmban një paraqitje të numrit x.
    hap (<имя файла>, <режим>='r' ) kthen një objekt skedari të hapur për lexim.<режим>= 'w' - e hapur për shkrim.
    ord(c) kthen kodin e karaktereve ASCII (varg me gjatësi 1) c.
    pow (x, y) kthen x në fuqinë e y.
    varg (<начало>, <конец>, <шаг>) kthen një listë të numrave të plotë më të mëdhenj ose të barabartë<начало>dhe më i vogël se<конец>gjeneruar me një të dhënë<шагом>.
    hyrja e papërpunuar ( [ <текст> ] ) shfaq<текст>në dalje standarde dhe lexon një varg nga hyrja standarde.
    rrumbullakët (x, n=0) kthen një x real të rrumbullakosur në numrin e ntë dhjetorë.
    rr (<объект>) kthen një paraqitje të vargut<объекта>.
    lloji(<объект>) kthen llojin e objektit.
    Për shembull: nëse type(x) == type(''): print 'ky është një varg'
    xrange (<начало>, <конец>, <шаг>) e ngjashme me diapazonin, por vetëm simulon një listë pa krijuar një të tillë. Përdoret në një lak for.

    Funksione të veçanta për të punuar me lista


    filtër (<функция>, <список>) kthen një listë të atyre elementeve<спиcка>, per cilin<функция>merr vlerën "e vërtetë".
    harta (<функция>, <список>) zbatohet<функцию>ndaj çdo elementi<списка>dhe kthen një listë të rezultateve.
    reduktuar( f , <список>,
    [, <начальное значение> ] )
    kthen vlerën e marrë nga "zvogëlimi"<списка>funksioni f. Kjo do të thotë se ka një variabël të brendshëm p, i cili është inicializuar<начальным значением>, pastaj, për çdo element<списка>, funksioni f thirret me dy parametra: p dhe element<списка>. Rezultati i kthyer nga f i caktohet p. Pas përsëritjes mbi gjithçka<списка>zvogëloni kthimet f.
    Duke përdorur këtë funksion, ju mund, për shembull, të llogaritni shumën e elementeve të një liste: def func (e kuqe, el): ktheje red+el sum = redukto (func, , 0) # tani shuma == 15
    lambda [<список параметров>] : <выражение> Një funksion "anonim" që nuk ka emrin e tij dhe shkruhet në vendin e thirrjes. Pranon parametrat e specifikuar në<списке параметров>, dhe kthen një vlerë<выражения>. Përdoret për filtrim, reduktim, hartë. Për shembull: >>>filtri i printimit (lambda x: x>3, ) >>>printoni hartën (lambda x: x*2, ) >>>p=zvogëloni (lambda r, x: r*x, , 1) >>> printoni fq 24

    Importimi i moduleve



    Moduli standard i matematikës


    Variablat: pi, e.
    Funksione(të ngjashme me funksionet e gjuhës C):

    akos (x) para të gatshme (x) ldexp(x,y) sqrt(x)
    asin(x) exp(x) regjistri (x) tan (x)
    atan (x) fabs (x) sinh (x) frexp(x)
    atan2(x,y) kati (x) pow (x, y) modf (x)
    tavan (x) fmod(x,y) mëkat (x)
    cos(x) log10(x) tanh(x)

    moduli i vargut


    Funksione:

    konkluzioni


    Për shkak të thjeshtësisë dhe fleksibilitetit të gjuhës Python, ajo mund t'u rekomandohet përdoruesve (matematicienë, fizikanë, ekonomistë, etj.) që nuk janë programues, por që përdorin teknologjinë kompjuterike dhe programimin në punën e tyre.
    Programet në Python zhvillohen mesatarisht një e gjysmë deri në dy (dhe nganjëherë dy deri në tre) herë më shpejt se në gjuhët e përpiluara (C, C ++, Pascal). Prandaj, gjuha mund të jetë me interes jo të vogël për programuesit profesionistë që zhvillojnë aplikacione që nuk janë kritike për shpejtësinë e ekzekutimit, si dhe programe që përdorin struktura komplekse të të dhënave. Në veçanti, Python e ka dëshmuar veten mirë në zhvillimin e programeve për të punuar me grafikë, duke gjeneruar pemë.

    Letërsia


    1. Budd T. Programimi i orientuar nga objekti. - Shën Petersburg: Peter, 1997.
    2. Guido van Rossum. Tutorial Python. (www.python.org)
    3. Chris Hoffman. Një referencë e shpejtë Python. (www.python.org)
    4. Guido van Rossum. Referenca e Bibliotekës Python. (www.python.org)
    5. Guido van Rossum. Manuali i referencës Python. (www.python.org)
    6. Guido van Rossum. Workshop mbi programimin në Python. (http://sultan.da.ru)

    Në këtë koleksion, ne kemi mbledhur librat më të dobishëm në lidhje me gjuhën e programimit Python që do të ndihmojnë si fillestarët ashtu edhe programuesit me përvojë të mësojnë.
    Këtu do të gjeni materiale për krijimin e aplikacioneve, si dhe mësime për t'ju ndihmuar të familjarizoheni me mjetet, të zotëroni bazat e të dhënave dhe të përmirësoni aftësitë tuaja profesionale.

    Seksionet:

    Për fillestarët

    Manuali është një hyrje e shkëlqyer dhe e njohur ndërkombëtarisht në gjuhën Python. Do t'ju mësojë shpejt se si të shkruani kod efikas dhe me cilësi të lartë. I përshtatshëm si për programuesit fillestarë ashtu edhe për ata që tashmë kanë përvojë në përdorimin e gjuhëve të tjera. Përveç teorisë, libri ka teste, ushtrime dhe ilustrime të dobishme - gjithçka që ju nevojitet për të mësuar Python 2 dhe 3. Përveç kësaj, do të njiheni me disa veçori të avancuara të gjuhës që ende nuk janë zotëruar nga shumë specialistë.

    Python është një gjuhë programimi ndër-platformësh me shumë paradigma, e cila kohët e fundit është bërë veçanërisht e popullarizuar në Perëndim dhe në kompani të tilla të mëdha si Google, Apple dhe Microsoft. Me sintaksën e saj minimaliste dhe kernelin e fuqishëm, është një nga gjuhët programuese më performuese dhe më të lexueshme në botë.

    Pas leximit të këtij libri, ju do të mësoni shpejt dhe në një mënyrë argëtuese bazat e gjuhës, më pas do të kaloni te trajtimi i përjashtimeve, zhvillimi i uebit, puna me SQL, përpunimi i të dhënave dhe Motori i aplikacioneve Google. Do të mësoni gjithashtu se si të shkruani aplikacione Android dhe shumë më tepër për fuqinë që ju jep Python.

    Një tjetër libër i njohur Python me 52 ushtrime të kuruara për mësimin e gjuhës. Pasi t'i çmontoni ato, do të kuptoni se si funksionon gjuha, si të shkruani saktë programet dhe si të korrigjoni gabimet tuaja. Janë mbuluar temat e mëposhtme:

    • Vendosja e mjedisit;
    • Organizimi i kodit;
    • matematikë bazë;
    • variabla;
    • Linjat dhe teksti;
    • Ndërveprimi me përdoruesit;
    • Puna me skedarë;
    • Ciklet dhe logjika;
    • Strukturat e të dhënave;
    • zhvillimi i softuerit;
    • Trashëgimia dhe përbërja;
    • Module, klasa dhe objekte;
    • paketa;
    • Debugging;
    • Test automatizimi;
    • Zhvillimi i lojës;
    • Zhvillimi i uebit.

    Ky libër është menduar për fillestarët për të mësuar programim. Ai përdor një qasje shumë standarde për të mësuar, por një gjuhë jo standarde 🙂 Vlen të përmendet se ky është më shumë një libër për bazat e programimit sesa për Python.

    Python Programming for Beginners është një libër i mrekullueshëm për të filluar. Është një udhëzues i detajuar i shkruar posaçërisht për fillestarët që duan të zotërojnë këtë gjuhë. Pasi të mësoni bazat, do të kaloni në programimin e orientuar drejt objektit dhe skriptimin CGI për të përpunuar të dhënat e formave të internetit, do të mësoni se si të krijoni aplikacione me dritare grafike dhe t'i shpërndani ato në pajisje të tjera.

    Me ndihmën e këtij tutoriali, do të mund të kaloni të gjitha hapat nga instalimi i një përkthyesi deri te ekzekutimi dhe korrigjimi i aplikacioneve të plota.

    "Python Crash Course" është një hyrje gjithëpërfshirëse në gjuhën Python. Në gjysmën e parë të librit, do të njiheni me konceptet bazë të gjuhës, të tilla si listat, fjalorët, klasat dhe sythe, dhe do të mësoni se si të shkruani kode të pastër dhe të lexueshëm. Përveç kësaj, do të mësoni se si të testoni programet tuaja. Në gjysmën e dytë të librit, do t'ju kërkohet të vini në praktikë njohuritë tuaja duke shkruar 3 projekte: një lojë arcade si Space Invaders, një aplikacion për vizualizimin e të dhënave dhe një aplikacion të thjeshtë ueb.

    Kjo është një fletë mashtrimi xhepi shumë i dobishëm i krijuar për Python 3.4 dhe 2.7. Në të do të gjeni informacionin më të nevojshëm për aspekte të ndryshme të gjuhës. Temat e mbuluara:

    • Llojet e objekteve të integruara;
    • Shprehjet dhe sintaksa për krijimin dhe përpunimin e objekteve;
    • Funksionet dhe modulet;
    • OOP (ne kemi një të veçantë);
    • Funksionet e integruara, përjashtimet dhe atributet;
    • Metodat e mbingarkesës së operatorit;
    • Module dhe shtesa të njohura;
    • Opsionet e linjës së komandës dhe mjetet e zhvillimit;
    • Këshilla;
    • Python SQL Database API.

    Një libër për të mësuar Python me shumë shembuj praktikë.

    Shembuj praktikë mund të gjenden në seksionin tonë. Për shembull, lexoni vetë-zbatimin tonë të funksionit zip.

    Qëllimi i këtij libri është të prezantojë lexuesin me mjetet e njohura dhe praktikat e ndryshme më të mira në komunitetin me kod të hapur për shkrimin e kodit. Bazat e gjuhës Python nuk janë përfshirë në këtë libër, sepse nuk bëhet fjalë fare për këtë.

    Pjesa e parë e librit përmban një përshkrim të redaktuesve të ndryshëm të tekstit dhe mjediseve të zhvillimit që mund të përdorni për të shkruar programe Python, si dhe shumë lloje interpretuesish për sisteme të ndryshme. Pjesa e dytë e librit flet për stilin e kodimit të pranuar në komunitetin me kod të hapur. Pjesa e tretë e librit përmban një përmbledhje të shkurtër të bibliotekave të shumta Python që përdoren në shumicën e projekteve me burim të hapur.

    Dallimi kryesor i këtij libri nga të gjithë manualet e tjerë për fillestarët për të mësuar Python është se paralelisht me studimin e materialit teorik, lexuesi njihet me zbatimin e projekteve të ndryshme të lojës. Kështu, programuesi i ardhshëm do të jetë në gjendje të kuptojë më mirë se si përdoren veçori të caktuara të gjuhës në projekte reale.

    Libri mbulon bazat e gjuhës Python dhe programimit në përgjithësi. Një libër i shkëlqyer për një njohje të parë me këtë gjuhë.

    Për të avancuar

    Nëse dëshironi të migroni në Python 3 ose të përditësoni siç duhet kodin e vjetër Python 2, atëherë ky libër është për ju. Dhe gjithashtu për ju - në transferimin e një projekti nga Python 2 në Python 3 pa dhimbje.

    Në libër do të gjeni shumë shembuj praktikë në Python 3.3, secili prej të cilëve është analizuar në detaje. Janë mbuluar temat e mëposhtme:

      • Strukturat dhe algoritmet e të dhënave;
      • Linjat dhe teksti;
      • Numrat, datat dhe orët;
      • Iteratorët dhe gjeneratorët;
      • Skedarët dhe operacionet e leximit/shkrimit;
      • Kodimi dhe përpunimi i të dhënave;
      • Funksione;
      • Klasat dhe objektet;
      • Metaprogramimi;
      • Modulet dhe paketat;
      • programim ueb;
      • konkurrueshmëria;
      • Administrimi i sistemit;
      • Testimi dhe korrigjimi;
      • Zgjerime C.

    Ndërsa lexoni këtë libër, ju do të zhvilloni një aplikacion në ueb duke mësuar përfitimet praktike të zhvillimit të drejtuar nga testet. Ju do të mbuloni tema të tilla si integrimi i bazës së të dhënave, mjetet e automatizimit JS, NoSQL, prizat në internet dhe programimi asinkron.

    Libri mbulon Python 3 në detaje: llojet e të dhënave, operatorët, kushtet, unazat, shprehjet e rregullta, funksionet, mjetet e programimit të orientuara nga objekti, puna me skedarët dhe drejtoritë, modulet standarde të bibliotekës që përdoren zakonisht. Përveç kësaj, libri fokusohet gjithashtu në bazën e të dhënave SQLite, ndërfaqen e aksesit në bazën e të dhënave dhe mënyrën e marrjes së të dhënave nga interneti.

    Pjesa e dytë e librit i kushtohet tërësisht bibliotekës PyQt 5, e cila ju lejon të krijoni aplikacione me një ndërfaqe grafike në Python. Këtu kemi parasysh mjetet për përpunimin e sinjaleve dhe ngjarjeve, menaxhimin e vetive të dritares, zhvillimin e aplikacioneve me shumë fije, përshkrimin e komponentëve kryesorë (butonat, fushat e tekstit, listat, tabelat, menytë, shiritat e veglave, etj.), opsionet për vendosjen e tyre brenda dritares, mjete për të punuar me të dhënat e bazave të të dhënave, multimedia, printimin e dokumenteve dhe eksportimin e tyre në formatin Adobe PDF.

    Programet tuaja Python mund të funksionojnë, por ato mund të funksionojnë më shpejt. Ky udhëzues praktik do t'ju ndihmojë të kuptoni më mirë strukturën e gjuhës dhe do të mësoni se si të gjeni pengesa në kod dhe të rrisni shpejtësinë e programeve që punojnë me sasi të mëdha të dhënash.

    Siç nënkupton edhe titulli, qëllimi i këtij libri është të ofrojë kuptimin më të plotë të kornizës së zhvillimit të aplikacioneve në internet Django. Për shkak të faktit se libri u publikua në Rusisht në vitin 2010, ai trajton një version të vjetëruar të kornizës, Django 1.1. Por megjithatë, libri rekomandohet për lexim, sepse mund të mësojë bazat e Django. Dhe praktikisht nuk ka libra të mirë për këtë kornizë në Rusisht, përveç këtij.

    Autorët Adrian Holovaty dhe Jacob Kaplan-Moss hedhin një vështrim të detajuar në përbërësit e kornizës. Libri ka shumë materiale për zhvillimin e burimeve të uebit me Django, nga bazat deri te temat speciale si gjenerimi i PDF dhe RSS, siguria, memoria e fshehtë dhe ndërkombëtarizimi. Përpara se të lexoni librin, rekomandohet të zotëroni konceptet bazë të zhvillimit të uebit.

    Zhvillimi i lojës

    "Making Games with Python & Pygame" është një libër që fokusohet në bibliotekën e zhvillimit të lojërave Pygame. Çdo kapitull ofron kodin e plotë burimor për lojën e re dhe shpjegime të hollësishme të parimeve të zhvillimit të përdorura.

    Shpikni lojërat tuaja kompjuterike me Python ju mëson se si të programoni në Python duke përdorur zhvillimin e lojërave si shembull. Në lojërat e mëvonshme, konsiderohet krijimi i lojërave dydimensionale duke përdorur bibliotekën Pygame. Ti do të mësosh:

    • përdor unazat, variablat dhe shprehjet logjike;
    • përdorni struktura të dhënash si listat, fjalorët dhe tuplet;
    • korrigjoni programet dhe kërkoni për gabime;
    • shkruani AI të thjeshtë për lojëra;
    • krijoni grafika dhe animacione të thjeshta për lojërat tuaja.

    Analiza e të dhënave dhe mësimi i makinerive

    Përmirësoni aftësitë tuaja duke punuar me strukturat e të dhënave dhe algoritmet në një mënyrë të re - shkencore. Eksploroni shembuj të sistemeve komplekse me shpjegime të qarta. Libri ofron:

    • të mësojnë koncepte të tilla si grupet NumPy, metodat SciPy, përpunimi i sinjalit, transformimet e shpejta të Furierit dhe tabelat hash;
    • të njihen me modele abstrakte të sistemeve komplekse fizike, fraktale dhe makina Turing;
    • eksplorojnë ligjet dhe teoritë shkencore;
    • analizojnë shembuj të problemeve komplekse.

    Në këtë libër, gjuha Python konsiderohet si një mjet për zgjidhjen e problemeve që kërkojnë llogaritje me përpunimin e sasive të mëdha të të dhënave. Qëllimi i këtij libri është t'i mësojë lexuesit se si të përdorë grumbullin e të dhënave Python për të ruajtur, manipuluar dhe kuptuar në mënyrë efektive të dhënat.

    Çdo kapitull i librit i kushtohet një biblioteke specifike për të punuar me të dhëna të mëdha. Kapitulli i parë merret me IPython dhe Jupyter, i dyti me NumPy dhe i treti me Pandat. Kapitulli 4 ka të bëjë me Matplotlib, kapitulli 5 ka të bëjë me Scikit-Learn.

    "Python për Analizën e të Dhënave" tregon për të gjitha llojet e mënyrave për të përpunuar të dhënat. Libri është një hyrje e shkëlqyer në informatikë shkencore. Ja çfarë do të mësoni:

    • guaskë interaktive IPython;
    • biblioteka për llogaritjet numerike NumPy:
    • biblioteka e analizës së të dhënave të pandave;
    • biblioteka e komplotit matplotlib.

    Ju gjithashtu do të mësoni se si të matni të dhënat me kalimin e kohës dhe të zgjidhni problemet analitike në shumë fusha të shkencës.

    Ky libër propozon të eksplorojë metoda të ndryshme të analizës së të dhënave duke përdorur Python. Ja çfarë do të mësoni pasi të lexoni:

    • menaxhoni të dhënat;
    • zgjidh problemet e shkencës së të dhënave;
    • krijoni vizualizime me cilësi të lartë;
    • aplikoni regresione lineare për të vlerësuar marrëdhëniet ndërmjet variablave;
    • krijoni sisteme rekomanduese;
    • trajtojnë të dhëna të mëdha.

    Ky manual shpjegon parimet e përpunimit të gjuhës natyrore në një mënyrë të lehtë për t'u kuptuar. Do të mësoni se si të shkruani programe që mund të përpunojnë grupe të mëdha tekstesh të pastrukturuara, të kenë akses në grupe të gjera të dhënash dhe të njihen me algoritmet bazë.

    Të tjera

    Nëse keni shpenzuar ndonjëherë orë të tëra duke riemërtuar skedarët ose duke përditësuar qindra qeliza të fletëllogaritjes, e dini se sa rraskapitës mund të jetë. Dëshironi të mësoni se si të automatizoni procese të tilla? Libri "Automate the Boring Stuff with Python" tregon se si të krijoni programe që do të zgjidhin detyra të ndryshme rutinë në minuta. Pas leximit, do të mësoni se si të automatizoni proceset e mëposhtme:

    • kërkoni për tekstin e specifikuar në skedarë;
    • krijoni, përditësoni, zhvendosni dhe riemërtoni skedarët dhe dosjet;
    • kërkimi dhe shkarkimi i të dhënave në ueb;
    • përditësimi dhe formatimi i të dhënave në tabelat Excel;
    • ndani, bashkoni dhe enkriptoni skedarët PDF;
    • dërgimi i letrave dhe njoftimeve;
    • plotësimi i formularëve online.

    Një libër i shkëlqyer me një prag minimal hyrjeje. Ai tregon më shumë për biologjinë sesa për gjuhën, por padyshim që do t'u vijë në ndihmë të gjithëve që punojnë në këtë fushë. Ai është i pajisur me një numër të madh shembujsh të çmontuar me kompleksitet të ndryshëm.

    Ky libër mbulon bazat e programimit të sistemit Raspberry Pi. Autori ka përpiluar tashmë shumë skripta për ju, dhe gjithashtu ka ofruar një udhëzues të kuptueshëm dhe të detajuar për të krijuar tuajin. Përveç ushtrimeve të zakonshme, ju jeni të ftuar të zbatoni tre projekte: lojën Hangman, një orë LED dhe një robot të kontrolluar nga programi.

    "Hakimi i shifrave sekrete me Python" jo vetëm që tregon historinë e shifrave ekzistuese, por gjithashtu ju mëson se si të krijoni programet tuaja për enkriptimin dhe thyerjen e shifrave. Libër i shkëlqyeshëm për të mësuar bazat e kriptografisë.

    Ndani libra të dobishëm Python në komente!

    Artikujt kryesorë të lidhur