Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Savjet
  • Lekcije Python programiranja od nule. Programski jezik Python umire

Lekcije Python programiranja od nule. Programski jezik Python umire

(prijevod)

Stranica Poromenos "Stuff" objavila je članak u kojem na sažet način govore o osnovama jezika Python. Nudim vam prijevod ovog članka. Prijevod nije doslovan. Pokušao sam da objasnim detaljnije neke tačke koje možda nisu jasne.

Ako želite da naučite jezik Python, ali ne možete pronaći odgovarajući vodič, onda će vam ovaj članak biti vrlo koristan! Za kratko vreme moći ćete da se upoznate sa osnovama jezika Python. Iako se ovaj članak često oslanja na činjenicu da već imate iskustva u programiranju, nadam se da će i početnicima ovaj materijal biti koristan. Pažljivo pročitajte svaki pasus. Zbog kompaktnosti materijala, neke se teme razmatraju površno, ali sadrže sve potrebne metrike.

Osnovna svojstva

Python ne zahtijeva eksplicitnu deklaraciju varijabli, on je objektno orijentirani jezik (var nije ekvivalentan Var ili VAR su tri različite varijable).

Sintaksa

Prvo, vredi napomenuti zanimljivu karakteristiku Pythona. Umjesto toga, ne sadrži operatorske zagrade (početak..kraj u pascalu ili (..) u C). blokovi su uvučeni: razmacima ili tabulatorima, a unos bloka iskaza vrši se dvotočkom. Jednoredni komentari počinju znakom funte "#", višeredni komentari počinju i završavaju sa tri dvostruka navodnika "" "" ".

Znak "=" se koristi za dodjelu vrijednosti varijabli, a "==" se koristi za poređenje. Za povećanje vrijednosti varijable ili dodavanje u red koristite operator "+ =", a za smanjenje - "- =". Sve ove operacije mogu biti u interakciji s većinom tipova, uključujući nizove. na primjer

>>> myvar = 3

>>> myvar + = 2

>>> myvar - = 1

"" "Ovo je komentar sa više redaka

Redovi zatvoreni u tri dvostruka navodnika se zanemaruju "" "

>>> mystring = "Zdravo"

>>> mystring + = "svijet."

>>> print mystring

Zdravo svijete.

# Sljedeći red se mijenja

Varijabilne vrijednosti na mjestima. (Samo jedan red!)

>>> myvar, mystring = mystring, myvar

Strukture podataka

Python sadrži strukture podataka kao što su liste, torke i rječnici). Liste su kao jednodimenzionalni nizovi (ali možete koristiti Uključujući liste - višedimenzionalni niz), tuple su nepromjenjive liste, rječnici su također liste, ali indeksi mogu biti bilo kojeg tipa, ne samo numerički. "Nizovi" u Pythonu mogu sadržavati podatke bilo kojeg tipa, odnosno jedan niz može sadržavati numeričke, stringove i druge tipove podataka. Nizovi počinju na indeksu 0, a posljednji element se može dobiti na indeksu -1. Možete dodijeliti funkcije varijablama i koristiti ih u skladu s tim.

>>> sample =, ("a", "tuple")] # Lista se sastoji od cijelog broja, druge liste i tuple

>>> mylist = ["Stavka liste 1", 2, 3.14] # Ova lista sadrži niz, cijeli broj i razlomak

>>> mylist = "Ponovo stavka liste 1" # Promijenite prvi (nulti) element liste mylist

>>> mylist [-1] = 3.14 # Promijenite posljednji element lista

>>> mydict = ("Ključ 1": "Vrijednost 1", 2: 3, "pi": 3.14) # Kreirajte rečnik, sa numeričkim i celobrojnim indeksima

>>> mydict ["pi"] = 3.15 # Promijenite element rječnika na indeksu "pi".

>>> mytuple = (1, 2, 3) # Postavi tuple

>>> myfunction = len #Python vam omogućava da na ovaj način deklarirate sinonime funkcije

>>> print myfunction (mylist)

Možete koristiti dio niza navođenjem prvog i posljednjeg indeksa odvojenih dvotočkom ":". U ovom slučaju, dobićete dio niza, od prvog indeksa do drugog, ne uključujući. Ako prvi element nije naveden, tada odbrojavanje počinje od početka niza, a ako posljednji nije naveden, tada se niz čita do posljednjeg elementa. Negativne vrijednosti definiraju krajnju poziciju elementa. Na primjer:

>>> mylist = ["Stavka liste 1", 2, 3.14]

>>> print mylist [:] # Svi elementi niza se čitaju

["Stavka liste 1", 2, 3.1400000000000001]

>>> print mylist # Čitaju se nula i prvi element niza.

["Stavka liste 1", 2]

>>> print mylist [-3: -1] # Čitanje stavki od nule (-3) do sekunde (-1) (ne uključujući)

["Stavka liste 1", 2]

>>> print mylist # Stavke se čitaju od prve do posljednje

Strings

Stringovi u Pythonu odvojeno dvostrukim navodnicima "" "ili jednostrukim" ""... Jednostruki navodniki mogu biti prisutni unutar dvostrukih navodnika ili obrnuto. Na primjer, redak "On je rekao zdravo!" će biti prikazano kao "On je rekao zdravo!" Ako trebate koristiti niz od nekoliko redaka, onda ovaj red mora početi i završiti s tri dvostruka navodnika "" "" ". Možete zamijeniti elemente iz tuple ili rječnika u šablonu niza. Znak postotka"% "između string i tuple, zamjenjuje znakove u nizu "% S" na elementu tuple. Rječnici vam omogućavaju da umetnete u string element sa datim indeksom.

>>> print "Ime:% s \ nBroj:% s \ nString:% s"% (ime moje klase, 3, 3 * "-")

Ime: Poromenos

Broj: 3

String: ---

strString = "" "Ovaj tekst se nalazi

u više redova "" "

>>> print "Ovaj% (glagol) s a% (imenica) s." % ("imenica": "test", "glagol": "je")

Ovo je test.

Operateri

Naredbe while, if, for čine naredbe poteza. Ne postoji analog naredbi select, tako da morate zaobići if. Poređenje se odvija u for naredbi varijabla i lista... Da biste dobili listu cifara do broja - koristite raspon funkcija ( ). Evo primjera korištenja operatora

rangelist = raspon (10) # Dobijte listu od deset cifara (0 do 9)

>>> štampaj listu raspona

za broj u listi raspona: # Dok promenljiva broj (koja se svaki put povećava) ulazi u listu ...

# Provjerite je li varijabla uključena

# brojeva u niz brojeva (3, 4, 7, 9)

Ako je broj u (3, 4, 7, 9): # Ako je broj varijable u nizu (3, 4, 7, 9) ...

# Operacija "break" obezbeđuje

# izađite iz petlje u bilo kom trenutku

Pauza

ostalo:

# "Nastavi" skroluje

# petlja. Ovo ovdje nije potrebno, jer nakon ove operacije

# u svakom slučaju, program se vraća na obradu petlje

Nastavi

ostalo:

# "Ostalo" je opciono. Uslov je ispunjen

# osim ako je petlja prekinuta sa "break".

Pass # Ne radi ništa

ako lista raspona == 2:

Print "Druga stavka (liste su zasnovane na 0) je 2"

elif rangelist == 3:

Print "Druga stavka (liste su zasnovane na 0) je 3"

ostalo:

Štampaj "Ne znam"

dok lista raspona == 1:

Proći

Funkcije

Da biste deklarirali funkciju, koristite ključna riječ "def"... Argumenti funkcije navedeni su u zagradama iza imena funkcije. Možete dati opcione argumente, dajući im zadanu vrijednost. Funkcije mogu vratiti tuple, u kom slučaju povratne vrijednosti moraju biti odvojene zarezima. Lambda ključna riječ se koristi za deklariranje elementarnih funkcija.

# arg2 i arg3 su neobavezni argumenti, uzmite zadanu vrijednost,

# osim ako im ne date drugačiju vrijednost prilikom pozivanja funkcije.

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

Vrati arg3, arg2, arg1

# Funkcija se poziva sa vrijednošću prvog argumenta - "Argument 1", drugog - po defaultu, a trećeg - "Named argument".

>>> ret1, ret2, ret3 = moja funkcija ("Argument 1", arg3 = "Nazvani argument")

# ret1, ret2 i ret3 uzimaju vrijednosti "Named argument", 100, "Argument 1" respektivno

>>> ispis ret1, ret2, ret3

Imenovani argument 100 Argument 1

# Sljedeće je ekvivalentno def f (x): vrati x + 1

functionvar = lambda x: x + 1

>>> print functionvar (1)

Casovi

Jezik Python je ograničen na višestruko nasljeđivanje u klasama. Interne varijable i metode interne klase počinju s dvije donje crte "__" (na primjer, "__myprivatevar"). Također možemo eksterno dodijeliti vrijednost varijabli klase. primjer:

klasa Myclass:

Uobičajeno = 10

Def __init __ (self):

Self.myvarijable = 3

Def myfunction (self, arg1, arg2):

Vrati self.myvariable

# Ovdje smo deklarirali klasu Myclass. Funkcija __init__ se poziva automatski kada se klase inicijaliziraju.

>>> classinstance = Myclass () # Inicijalizirali smo klasu i myvarijable je postavljeno na 3 kako je deklarirano u metodi inicijalizacije

>>> classinstance.myfunction (1, 2) # Metoda myfunction klase Myclass vraća vrijednost varijable myvariable

# Zajednička varijabla je deklarirana u svim klasama

>>> classinstance2 = Moja klasa ()

>>> classinstance.common

>>> classinstance2.common

# Stoga, ako promijenimo njegovu vrijednost u klasi Myclass će se promijeniti

# i njegove vrijednosti u objektima inicijaliziranim od strane Myclass

>>> Myclass.common = 30

>>> classinstance.common

>>> classinstance2.common

# I ovdje ne mijenjamo varijablu klase. Umjesto ovoga

# deklarišemo ga u objektu i dodeljujemo mu novu vrednost

>>> classinstance.common = 10

>>> classinstance.common

>>> classinstance2.common

>>> Myclass.common = 50

# Sada promjena varijable klase neće dodirnuti

# varijabli objekata ove klase

>>> classinstance.common

>>> classinstance2.common

# Sljedeća klasa nasljeđuje klasu Myclass

# nasljeđujući svoja svojstva i metode, osim što klasa može

# naslijediti od nekoliko klasa, u ovom slučaju pisati

# ovako: klasa Otherclass (Myclass1, Myclass2, MyclassN)

klasa Otherclass (Myclass):

Def __init __ (self, arg1):

Self.myvarijable = 3

Print arg1

>>> classinstance = Otherclass ("zdravo")

zdravo

>>> classinstance.myfunction (1, 2)

# Ova klasa nema svojstvo testa, ali mi možemo

# deklarisati takvu varijablu za objekat. I

# ova varijabla će biti samo član classinstance.

>>> classinstance.test = 10

>>> classinstance.test

Izuzeci

Python izuzeci imaju strukturu try-except:

def somefunction ():

Pokušajte:

# Deljenje sa nulom izaziva grešku

10 / 0

Osim ZeroDivisionError:

# Ali program ne "izvodi ilegalnu operaciju"

# A obrađuje blok izuzetaka koji odgovara "ZeroDivisionError"

Odštampajte "Ups, nevažeće."

>>> fneexcept ()

Ups, nevažeće.

Uvoz

Eksterne biblioteke se mogu povezati postupkom "import", gdje je naziv biblioteke koja se povezuje. Također možete koristiti naredbu "iz uvoza" tako da možete koristiti funkciju iz biblioteke:

import random # Uvezite "slučajnu" biblioteku

from time import clock # I u isto vrijeme funkcija "clock" iz biblioteke "time".

randomint = random.randint (1, 100)

>>> print randomint

Rad sa datotečnim sistemom

Python ima mnogo ugrađenih biblioteka. U ovom primjeru pokušat ćemo spremiti strukturu liste u binarnu datoteku, pročitati je i spremiti string u tekstualnu datoteku. Za transformaciju strukture podataka koristit ćemo standardnu ​​biblioteku "pickle":

uvozna kisela krastavac

mylist = ["Ovo", "je", 4, 13327]

# Otvorite datoteku C: \ binary.dat za pisanje. Simbol "r".

# sprječava zamjenu specijalnih znakova (kao što su \ n, \ t, \ b, itd.).

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

pickle.dump (mylist, myfile)

myfile.close ()

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

myfile.write ("Ovo je uzorak niza")

myfile.close ()

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

>>> print myfile.read ()

"Ovo je uzorak niza"

myfile.close ()

# Otvorite datoteku za čitanje

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

loadedlist = pickle.load (myfile)

myfile.close ()

>>> print loadedlist

["Ovo", "je", 4, 13327]

Posebnosti

  • Uslovi se mogu kombinovati. 1 < a < 3 выполняется тогда, когда а больше 1, но меньше 3.
  • Koristite operaciju "del" da obrisati varijable ili elemente niza.
  • Python nudi velike mogućnosti za rad sa listama... Možete koristiti operatore da deklarirate strukturu liste. Naredba for vam omogućava da specificirate elemente liste u određenom nizu, a if - omogućava vam da odaberete stavke prema uslovu.

>>> lst1 =

>>> lst2 =

>>> print

>>> print

# Operator "bilo koji" vraća true ako je barem

# da li bi jedan od uslova uključenih u to bio ispunjen.

>>> bilo koji (i% 3 za i in)

Tačno

# Sljedeća procedura izračunava broj

# odgovarajućih stavki na listi

>>> zbroj (1 za i u ako je i == 3)

>>> del lst1

>>> ispiši lst1

>>> del lst1

  • Globalne varijable su deklarisani izvan funkcija i mogu se čitati bez ikakvih deklaracija. Ali ako trebate promijeniti vrijednost globalne varijable iz funkcije, onda je morate deklarirati na početku funkcije s ključnom riječi "global", ako ne, onda će Python deklarirati varijablu dostupnu samo za ovo funkcija.

broj = 5

def myfunc ():

# Štampa 5

Odštampaj broj

def anotherfunc ():

# Ovo stvara izuzetak jer je globalna varijabla

# nije pozvan iz funkcije. Python u ovom slučaju stvara

# varijabla istog imena unutar ove funkcije i dostupna

# samo za operatore ove funkcije.

Odštampaj broj

Broj = 3

def yetanotherfunc ():

Globalni broj

# I samo iz ove funkcije, vrijednost varijable se mijenja.

Broj = 3

Epilog

Naravno, ovaj članak ne pokriva sve karakteristike Pythona. Nadam se da će vam ovaj članak pomoći ako želite da nastavite učiti ovaj programski jezik.

Prednosti Pythona

  • Brzina izvršavanja programa napisanih u Python-u je veoma visoka. To je zbog činjenice da su glavne Python biblioteke
    su napisani u C ++ i oduzimaju im manje vremena za završetak zadataka od drugih jezika visokog nivoa.
  • Zbog toga možete pisati sopstvene module za Python u C ili C ++
  • U standardnim Python bibliotekama možete pronaći alate za rad sa e-poštom, protokole
    Internet, FTP, HTTP, baze podataka itd.
  • Python skripte rade na većini modernih operativnih sistema. Ova prenosivost omogućava da se Python koristi u raznim oblastima.
  • Python je pogodan za svako programsko rješenje, bilo da se radi o uredskim programima, web aplikacijama, GUI aplikacijama itd.
  • Hiljade entuzijasta iz cijelog svijeta radilo je na razvoju Pythona. Podrška modernih tehnologija u standardnim bibliotekama može se pripisati činjenici da je Python bio otvoren za sve.

Jednom davno, na zatvorenom forumu, pokušao sam da podučavam Python. Generalno, slučaj je tamo zamro. Bilo mi je žao napisanih lekcija, pa sam odlučio da ih objavim široj javnosti. Do sada, prvi, najjednostavniji. Sljedeće je zanimljivije, ali možda neće biti zanimljivo. Općenito, ovaj post će biti probni balon, ako vam se sviđa objavit ću ga dalje.

Python za početnike. Prvo poglavlje. "O čemu pričamo?"

Za svaki slučaj, malo dosadno "evangelizacija". Ako ste umorni od toga, možete preskočiti nekoliko pasusa.
Python (čita se "Python", a ne "Python") je skriptni jezik koji je razvio Guido van Rossum kao jednostavan jezik koji početnik može lako naučiti.
Danas je Python široko rasprostranjen jezik koji se koristi u mnogim područjima:
- Razvoj aplikativnog softvera (na primjer, linux uslužni programi yum, pirut, system-config-*, Gajim IM klijent i mnogi drugi)
- Razvoj web aplikacija (na njegovoj bazi razvijen je najmoćniji aplikacijski server Zope i CMS Plone na osnovu kojih radi npr. CIA web stranica, te mnoštvo okvira za brzi razvoj aplikacija Plones, Django, TurboGears i mnogi drugi)
- Koristi se kao ugrađeni skript jezik u mnogim igrama, a ne samo (u Office paketu OpenOffice.org, Blender 3d editor, Postgre DBMS)
- Upotreba u naučnim proračunima (sa paketima SciPy i numPy za proračune i PyPlot za crtanje Python grafova postaje skoro uporediva sa paketima kao što je MatLab)

I ovo svakako nije potpuna lista projekata koji koriste ovaj divan jezik.

1. Sam tumač, možete ga uzeti ovdje (http://python.org/download/).
2. Razvojno okruženje. Za početak je opciono, a IDLE uključen u distribuciju će odgovarati početniku, ali za ozbiljne projekte treba vam nešto ozbiljnije.
Za Windows koristim divan lagani PyScripter (http://tinyurl.com/5jc63t), za Linux koristim Komodo IDE.

Iako će za prvu lekciju biti dovoljna samo interaktivna ljuska samog Pythona.

Samo pokrenite python.exe. Prompt za unos neće vas dugo čekati, izgleda ovako:

Takođe možete pisati programe u datoteke sa ekstenzijom py, u svom omiljenom uređivaču teksta, koji ne dodaje sopstvene znakove za označavanje u tekst (nijedan Word neće raditi). Takođe je poželjno da ovaj uređivač može da pravi "pametne tabove" i da ne zamenjuje razmake tabularnim karakterom.
Da biste pokrenuli datoteke za izvršenje, možete kliknuti na njih 2 puta. Ako se prozor konzole zatvori prebrzo, umetnite sljedeći red na kraj programa:

Tada će tumač čekati na kraju programa da pritisne enter.

Ili povežite py-datoteke u Far sa Pythonom i otvorite ih pritiskom na enter.

Konačno, možete koristiti jedan od mnogih praktičnih Python IDE-a koji pružaju i otklanjanje grešaka i isticanje sintakse i mnoge druge "pogodnosti".

Malo teorije.

Za početak, Python je jako dinamički ukucan jezik. Šta to znači?

Postoje jezici sa jakim kucanjem (pascal, java, c, itd.), u kojima je tip varijable određen unapred i ne može se menjati, a postoje jezici sa dinamičkim kucanjem (python, ruby, vb ), u kojem se tip varijable tumači u zavisnosti od dodijeljene vrijednosti.
Dinamički tipizirani jezici se mogu dalje podijeliti u 2 tipa. Strogi, koji ne dozvoljavaju implicitne konverzije tipova (Python), i laki, koji izvode implicitne konverzije tipova (na primjer, VB, u koji možete lako dodati string "123" i broj 456).
Nakon što smo se pozabavili Pythonovom klasifikacijom, pokušajmo se malo poigrati s interpretatorom.

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

Dakle, vidimo da se dodjela vrši pomoću znaka =. Možete dodijeliti vrijednost nekoliko varijabli odjednom. Kada nalaže tumaču da interaktivno imenuje varijablu, on ispisuje njenu vrijednost.

Sljedeće što treba znati je kako se grade osnovne algoritamske jedinice - grane i petlje. Prvo, potrebno je malo pozadine. U Pythonu ne postoji poseban graničnik kodnih blokova; uvlake igraju svoju ulogu. To jest, ono što je napisano sa istim uvlačenjem je jedan komandni blok. U početku može izgledati čudno, ali nakon što se malo naviknete, shvatite da vam ova "prisilna" mjera omogućava da dobijete vrlo čitljiv kod.
Dakle, uslovi.

Uvjet se postavlja pomoću if naredbe koja završava sa ":". Alternativne uslove koji će biti ispunjeni ako je prva provjera "neuspjela" specificira elif operator. Konačno, else postavlja granu koja će se izvršiti ako se nijedan od uslova ne podudara.
Imajte na umu da nakon što unese if, tumač koristi prompt "..." da naznači da čeka na nastavak unosa. Da biste ga obavijestili da smo završili, morate unijeti prazan red.

(Primer sa granama iz nekog razloga pokida oznaku na Habréu, uprkos plesovima sa oznakama pre i koda. Izvinite na neprijatnosti, bacio sam ga ovde pastebin.com/f66af97ba, ako mi neko kaže šta nije u redu, biću veoma zahvalan)

Ciklusi.

Najjednostavniji slučaj za petlju je while petlja. Kao parametar, prihvata uslov i izvršava se sve dok je istinit.
Evo malog primjera.

>>> x = 0 >>> dok je x<=10: ... print x ... x += 1 ... 0 1 2 ........... 10

Imajte na umu da pošto su i print x i x + = 1 napisani sa istim uvlačenjem, oni se smatraju tijelom petlje (sjećate se šta sam rekao o blokovima? ;-)).

Druga vrsta petlje u Pythonu je for petlja. Slično je foreach petlji u drugim jezicima. Njegova sintaksa je konvencionalno sljedeća.

Za varijablu na listi:
komande

Varijabli će se redom dodijeliti sve vrijednosti sa liste (zapravo, ne može postojati samo lista, već i bilo koji drugi iterator, ali se za sada nećemo zamarati ovim).

Evo jednostavnog primjera. Lista će biti string, koji nije ništa drugo do lista znakova.

>>> x = "Zdravo, Python!" >>> za char u x: ... ispis char ... H e l ...........!

Na ovaj način možemo proširiti string karakter po karakter.
Šta ako želimo petlju koja se ponavlja određeni broj puta? Jednostavno, funkcija raspona dolazi u pomoć.

Na ulazu prihvata od jednog do tri parametra, na izlazu vraća listu brojeva kroz koju možemo "prošetati" sa for naredbom.

Evo nekoliko primjera korištenja funkcije raspona koji objašnjavaju ulogu njenih parametara.

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

I mali primjer sa petljom.

>>> za x u rasponu (10): ... ispiši x ... 0 1 2 ..... 9

Ulaz Izlaz

Posljednja stvar koju trebate znati prije nego što počnete koristiti Python u potpunosti je kako se I/O izvodi u njemu.

Za izlaz koristite naredbu print, koja ispisuje sve svoje argumente u ljudskom čitljivom obliku.

Za unos sa konzole koristi se funkcija raw_input (prompt), koja prikazuje prompt i čeka na korisnički unos, vraćajući ono što je korisnik unio kao svoju vrijednost.

X = int (raw_input ("Unesite broj:")) print "Kvadrat ovog broja je", x * x

Pažnja! Unatoč postojanju funkcije input () sa sličnom radnjom, nije preporučljivo koristiti je u programima, jer interpretator pokušava izvršiti sintaktičke izraze unesene uz nju, što predstavlja ozbiljnu sigurnosnu rupu u programu.

To je to za prvu lekciju.

Zadaća.

1. Napravite program za izračunavanje hipotenuze pravouglog trougla. Dužina nogavica se traži od korisnika.
2. Napravite program za pronalaženje korena kvadratne jednačine u opštem obliku. Kvote se traže od korisnika.
3. Napravite program za ispis tablice množenja brojem M. Tabela se kompajlira od M * a do M * b, pri čemu su M, a, b traženi od korisnika. Izlaz bi trebao biti izveden u koloni, jedan primjer po redu u sljedećem obliku (na primjer):
5 x 4 = 20
5 x 5 = 25
itd.

Python je popularan i moćan skriptni jezik sa kojim možete raditi šta god želite. Na primjer, možete pretraživati ​​i prikupljati podatke sa web stranica, praviti mreže i alate, izvoditi proračune, programirati za Raspberry Pi, razvijati grafičke programe, pa čak i video igrice. Možete \\ pisati sistemske programe nezavisne od platforme u Pythonu.

U ovom članku ćemo proći kroz osnove programiranja u Pythonu, pokušat ćemo pokriti sve osnovne karakteristike koje su vam potrebne da počnete koristiti jezik. Pogledat ćemo korištenje klasa i metoda za rješavanje različitih problema. Pretpostavlja se da ste već upoznati sa osnovama i sintaksom jezika.

Šta je Python?

Neću ulaziti u istoriju nastanka i razvoja jezika, to možete lako saznati iz videa koji će biti priložen ispod. Važno je napomenuti da je Python skriptni jezik. To znači da se vaš kod provjerava da li ima grešaka i da se izvršava odmah bez ikakve dodatne kompilacije ili dorade. Ovaj pristup se još naziva i interpretiranim.

Ovo usporava performanse, ali je vrlo zgodno. Ovdje se nalazi interpreter u koji možete unijeti komande i odmah vidjeti njihov rezultat. Ovaj interaktivni rad je od velike pomoći u učenju.

Rad u prevodiocu

Vrlo je lako pokrenuti Python interpreter na bilo kojem operativnom sistemu. Na primjer, na Linuxu je dovoljno upisati naredbu python u terminal:

U promptu tumača koji se otvori, vidimo verziju Pythona koja je trenutno u upotrebi. Danas su vrlo rasprostranjene dvije verzije Pythona 2 i Python 3. Obje su popularne jer su na prvoj razvijeni mnogi programi i biblioteke, a druga ima više mogućnosti. Stoga distribucije uključuju obje verzije. Druga verzija se pokreće podrazumevano. Ali ako vam je potrebna verzija 3, onda morate izvršiti:

To je treća verzija koja će se razmatrati u ovom članku. Pogledajmo sada glavne karakteristike ovog jezika.

Operacije sa stringovima

Stringovi u Pythonu su nepromjenjivi; ne možete promijeniti jedan od znakova u nizu. Svaka promjena sadržaja zahtijeva kreiranje nove kopije. Otvorite tumač i slijedite primjere u nastavku da biste bolje razumjeli ono što ste napisali:

1. Konkatenacija nizova

str = "dobrodošli" + "u python"
print (str)

2. Množenje nizova

str = "Izgubljeni" * 2
print (str)

3. Kombinirajte s transformacijom

Možete spojiti niz s brojem ili logičkim vrijednostima. Ali za ovo morate koristiti transformaciju. Za ovo postoji funkcija str ():

str = "Ovo je test broj" + str (15)
print (str)

4. Potražite podniz

Možete pronaći znak ili podniz koristeći metodu pronalaženja:

str = "Dobrodošli na stranicu"
print (str.find ("site"))

Ova metoda prikazuje poziciju prvog pojavljivanja podniza stranice ako je pronađena, ako ništa nije pronađeno, tada se vraća vrijednost -1. Funkcija počinje tražiti od prvog znaka, ali možete početi sa n-tim znakom, na primjer 26:

str = "Dobrodošli na web stranicu"
print (str.find ("gubitak", 26))

U ovom slučaju, funkcija će vratiti -1 jer string nije pronađen.

5. Dobivanje podniza

Dobili smo poziciju podniza koji tražimo, a sada kako doći do samog podniza i šta je iza njega? Da biste to učinili, koristite ovu sintaksu [početak: kraj], samo navedite dva broja ili samo prvi:

str = "Jedan dva tri"
print (str [: 2])
print (str)
print (str)
print (str [-1])

Prvi red će ispisati podniz od prvog do drugog znaka, drugi - od drugog do kraja. Imajte na umu da odbrojavanje počinje od nule. Za odbrojavanje koristite negativan broj.

6. Zamjena podniza

Možete zamijeniti dio niza pomoću metode zamjene:

str = "Ova stranica je o Linuxu"
str2 = str.replace ("Linux", "Windows")
print (str2)

Ako postoji mnogo pojavljivanja, tada se može zamijeniti samo prva:

str = "Ovo je Linux stranica i ja sam pretplaćen na ovu stranicu"
str2 = str.replace ("stranica", "stranica", 1)
print (str2)

7. Čišćenje linija

Možete ukloniti dodatni razmak pomoću funkcije trake:

str = "Ovo je Linux web stranica"
print (str.strip ())

Također je moguće ukloniti dodatne razmake samo na desnoj strani rstrip ili samo na lijevoj - lstrip.

8. Promjena registra

Postoje posebne funkcije za promjenu velikih i malih slova znakova:

str = "Dobrodošli u izgubljeni"
print (str.upper ())
print (str.lower ())

9. Pretvaranje nizova

Postoji nekoliko funkcija za pretvaranje niza u različite numeričke tipove, a to su int (), float (), long () i druge. Funkcija int () se pretvara u cijeli broj, a float () u broj s pomičnim zarezom:

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

10. Dužina linija

Možete koristiti funkcije min (), max (), len () za izračunavanje broja znakova u nizu:

str = "Dobro došli na web stranicu Losst"
print (min (str))
štampa (maks (str))
print (len (str))

Prvi prikazuje minimalnu veličinu znakova, drugi maksimalnu, a treći ukupnu dužinu niza.

11. Petlja preko linije

Svakom karakteru niza možete pristupiti zasebno pomoću for petlje:

str = "Dobrodošli na stranicu"
za i u opsegu (len (str)):
print (str [i])

Da bismo ograničili petlju, koristili smo funkciju len (). Obratite pažnju na udubljenje. Python programiranje se zasniva na tome, nema zagrada za organizovanje blokova, samo uvlačenje.

Operacije sa brojevima

Brojeve u Pythonu je dovoljno lako deklarirati ili koristiti u metodama. Možete kreirati cijele brojeve ili brojeve s pomičnim zarezom:

broj1 = 15
broj2 = 3,14

1. Zaokruživanje brojeva

Možete zaokružiti broj koristeći funkciju round, samo navedite koliko znakova treba ostaviti:

a = 15,5652645
štampa (okrugla (a, 2))

2. Generisanje slučajnih brojeva

Možete dobiti nasumične brojeve koristeći random modul:

import random
print (random.random ())

Podrazumevano, broj se generiše u rasponu od 0,0 do 1,0. Ali možete postaviti svoj raspon:

import random
brojevi =
print (slučajni izbor (brojevi))

Operacije datuma i vremena

Programski jezik Python ima modul DateTime koji vam omogućava da izvodite različite operacije na datum i vrijeme:

import datetime
cur_date = datetime.datetime.now ()
print (cur_date)
print (cur_date.year)
print (cur_date.day)
print (cur_date.weekday ())
print (cur_date.month)
print (cur_date.time ())

Primjer pokazuje kako izdvojiti željenu vrijednost iz objekta. Možete dobiti razliku između dva objekta:

import datetime
vrijeme1 = datumvrijeme.datumvrijeme.sada ()
vrijeme2 = datumvrijeme.datumvrijeme.sada ()
timediff = vrijeme2 - vrijeme1
print (timediff.microseconds)

Možete sami kreirati objekte datuma sa proizvoljnom vrijednošću:

vrijeme1 = datumvrijeme.datumvrijeme.sada ()
vrijeme2 = datetime.timedelta (dana = 3)
vrijeme3 = vrijeme1 + vrijeme2
print (time3.date ())

1. Formatiranje datuma i vremena

Metoda strftime vam omogućava da promijenite format datuma i vremena ovisno o odabranom standardu ili navedenom formatu. Evo osnovnih simbola za formatiranje:

  • % a- dan u sedmici, skraćeni naziv;
  • % A- dan u sedmici, puno ime;
  • % w- broj dana u sedmici, od 0 do 6;
  • % d- dan u mjesecu;
  • % b- skraćeni naziv mjeseca;
  • % B- puni naziv mjeseca;
  • % m- broj mjeseca;
  • % Y- broj godine;
  • % H- sat u danu u 24-satnom formatu;
  • % l- sat u danu u 12-satnom formatu;
  • % str- prijepodne ili popodne;
  • % M- minuta;
  • % S- sekunda.

import datetime
datum1 = datumvrijeme.datumvrijeme.sada ()
print (datum1.strftime ("% d.% B% Y% I:% M% p"))

2. Kreirajte datum iz niza

Možete koristiti funkciju strptime () da kreirate objekt datuma iz niza:

import datetime
datum1 = datetime.datetime.strptime ("2016-11-21", "% Y-% m-% d")
datum2 = datetime.datetime (godina = 2015, mjesec = 11, dan = 21)
print (datum 1);
print (datum 2);

Operacije sistema datoteka

Upravljanje datotekama je vrlo jednostavno u programskom jeziku Python, to je najbolji jezik za rad sa fajlovima. U svakom slučaju, možemo reći da je Python najjednostavniji jezik.

1. Kopiranje datoteka

Da biste kopirali datoteke, trebate koristiti funkcije iz modula subutil:

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

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

2. Premještanje datoteka

Premještanje datoteka se vrši pomoću funkcije premještanja:

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

Funkcija preimenovanja iz os modula vam omogućava da preimenujete datoteke:

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

3. Čitanje i pisanje tekstualnih datoteka

Možete koristiti ugrađene funkcije za otvaranje datoteka, čitanje ili pisanje podataka u njih:

fd = otvori ("file1.txt")
sadržaj = fd.read ()
štampa (sadržaj)

Prvo, morate otvoriti datoteku da biste radili s funkcijom open. Za čitanje podataka iz datoteke koristite funkciju čitanja, pročitani tekst će biti spremljen u varijablu. Možete odrediti broj bajtova za čitanje:

fd = otvori ("file1.txt")
sadržaj = fd.read (20)
štampa (sadržaj)

Ako je datoteka prevelika, možete je podijeliti u redove i izvršiti obradu na sljedeći način:

content = fd.readlines ()
štampa (sadržaj)

Da biste upisali podatke u datoteku, prvo je morate otvoriti za pisanje. Postoje dva načina rada - prepisati i dodati na kraj datoteke. Način snimanja:

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

I dodavanje na kraj fajla:

fd = otvoren ("file1.txt", "a")
content = fd.write ("Novi sadržaj")

4. Kreiranje direktorija

Za kreiranje direktorija koristite funkciju mkdir iz os modula:

import os
os.mkdir ("./ novi folder")

5. Dobivanje vremena kreiranja

Možete koristiti funkcije getmtime (), getatime () i getctime () da biste dobili vrijeme posljednje izmjene, zadnjeg pristupa i kreiranja. Rezultat će biti prikazan u Unix formatu, tako da ga morate pretvoriti u čitljivu formu:

import os
import datetime
tim = os.path.getctime ("./ file1.txt")
print (datetime.datetime.fromtimestamp (tim))

6. Lista datoteka

Pomoću funkcije listdir () možete izlistati datoteke u folderu:

import os
fajlovi = os.listdir (".")
print (fajlovi)

glob modul se može koristiti za postizanje istog zadatka:

import glob
fajlovi = glob.glob ("*")
print (fajlovi)

7. Serijalizacija Python objekata

uvozna kisela krastavac
fd = otvoren ("myfile.pk", "wb")
pickle.dump (mydata, fd)

Zatim za vraćanje objekta koristite:

uvozna kisela krastavac
fd = otvoren ("myfile.pk", "rb")
mydata = pickle.load (fd)

8. Komprimiranje datoteka

Python standardna biblioteka vam omogućava rad sa različitim arhivskim formatima kao što su zip, tar, gzip, bzip2. Za pregled sadržaja datoteke koristite:

import zipfile
my_zip = zipfile.ZipFile ("my_file.zip", mode = "r")
print (file.namelist ())

I da kreirate zip arhivu:

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

Također možete raspakovati arhivu:

import zipfile
datoteka = zipfile.ZipFile ("files.zip", "r")
file.extractall ()
file.close ()

Možete dodati fajlove u arhivu na sljedeći način:

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

9. Parsing CSV i Exel fajlova

Koristeći modul pandas, možete pregledati i analizirati sadržaj CSV i Exel tabela. Prvo morate instalirati modul koristeći pip:

sudo pip install pandas

Zatim, da raščlanite, otkucajte:

uvoz pande
podaci = pandas.read_csv ("file.csv)

Podrazumevano, pandas koristi prvu kolonu za naslove svakog reda. Možete odrediti stupac za indeks koristeći parametar index_col ili navesti False ako nije potrebno. Za pisanje promjena u datoteku koristite funkciju to_csv:

data.to_csv ("file.csv)

Exel fajl se može raščlaniti na isti način:

data = pd.read_excel ("file.xls", sheetname = "Sheet1")

Ako trebate otvoriti sve tabele, koristite:

podaci = pd.ExcelFile ("file.xls")

Tada možete vratiti sve podatke:

data.to_excel ("file.xls", sheet = "Sheet1")

Umrežavanje u Pythonu

Python 3 programiranje često uključuje umrežavanje. Python standardna biblioteka uključuje socket mogućnosti za pristup mreži niskog nivoa. Ovo je neophodno za podršku mnogih mrežnih protokola.

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

Ovaj kod se povezuje na port 4040 na mašini 192.168.1.5. Kada je utičnica otvorena, možete slati i primati podatke:

my_sock.sendall (b "Hello World")

Moramo napisati znak b prije stringa, jer trebamo prenijeti podatke u binarnom modu. Ako je objava prevelika, možete ponoviti:

msg = b "Ovdje ide duža poruka"
mesglen = len (msg)
ukupno = 0
dok ukupno< msglen:
poslano = my_sock.send (msg)
ukupno = ukupno + poslano

Za primanje podataka potrebno je otvoriti i socket, samo se koristi metoda my_sock_recv:

data_in = my_sock.recv (2000)

Ovdje označavamo koliko podataka treba primiti - 20.000, podaci se neće prenijeti u varijablu dok se ne primi 20.000 bajtova podataka. Ako je poruka veća, da biste je primili morate kreirati petlju:

bafer = bajt niz (b "" * 2000)
my_sock.recv_into (bafer)

Ako je bafer prazan, primljena poruka će biti upisana tamo.

Rad sa poštom

Python standardna biblioteka vam omogućava da primate i šaljete e-poruke.

1. Prijem pošte sa POP3 servera

Za primanje poruka koristimo POP server:

import getpass, poplib
pop_serv = poplib.POP3 ("192.168.1.5")
pop_serv.user ("moj korisnik")
pop_serv.pass_ (getpass.getpass ())

Getpass modul vam omogućava da bezbedno preuzmete korisničku lozinku tako da ona neće biti prikazana na ekranu. Ako POP server koristi sigurnu vezu, trebate koristiti klasu POP3_SSL. Ako je veza bila uspješna, možete komunicirati sa serverom:

msg_list = pop_serv.list () # za popis poruka
msg_count = pop_serv.msg_count ()

Za završetak posla koristite:

2. Prijem pošte od IMAP servera

Za povezivanje i rad sa IMAP serverom koristi se imaplib modul:

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

Ako vaš IMAP server koristi sigurnu vezu, trebate koristiti klasu IMAP4_SSL. Za dobijanje liste poruka koristite:

podaci = my_imap.search (Ništa, "SVE")

Zatim možete proći kroz odabranu listu i pročitati svaku poruku:

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

Ali ne zaboravite da zatvorite vezu:

my_imap.close ()
my_imap.logout ()

3. Slanje pošte

Za slanje pošte koriste se SMTP protokol i smtplib modul:

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

Kao i prije, koristite SMTP_SSL za sigurnu vezu. Kada se veza uspostavi, možete poslati poruku:

from_addr = " [email protected]"
to_addr = " [email protected]"
msg = "Od: [email protected]\ r \ nZa: [email protected]\ r \ n \ r \ nZdravo, ovo je probna poruka "
my_smtp.sendmail (od_addr, do_addr, msg)

Rad sa web stranicama

Python programiranje se često koristi za pisanje različitih skripti za rad s webom.

1. Web puzanje

Urllib modul vam omogućava da postavljate zahtjeve web stranicama na različite načine. Klasa zahtjeva se koristi za slanje redovnog zahtjeva. Na primjer, hajde da izvršimo uobičajeni zahtjev za stranicu:

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

2. Korištenje POST metode

Ako trebate poslati web obrazac, ne morate koristiti GET zahtjev, već POST:

import urllib.request
mydata = b "Vaši podaci idu ovdje"
my_req = urllib.request.Request ("http: // localhost", data = mydata, method = "POST")
my_form = urllib.request.urlopen (my_req)
print (my_form.status)

3. Kreiranje web servera

Koristeći klasu Socket, možete prihvatiti dolazne veze, što znači da možete kreirati web server sa minimalnim mogućnostima:

import socket
host = ""
port = 4242
moj_server = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
my_server.bind ((host, port))
my_server.listen (1)

Kada je server kreiran. možete početi prihvaćati veze:

addr = my_server.accept ()
print ("Povezano sa hosta", adresa)
podaci = conn.recv (1024)

I ne zaboravite da zatvorite vezu:

Multithreading

Kao i većina modernih jezika, Python vam omogućava da pokrenete više paralelnih niti, što može biti korisno ako trebate izvesti složene proračune. Standardna biblioteka ima modul za obradu niti koji sadrži klasu Therad:

import threading
def print_message ():
print ("Poruka je odštampana iz druge niti")
my_thread = threading.Thread (cilj = print_message)
my_thread.start ()

Ako funkcija traje predugo, možete provjeriti da li je sve u redu pomoću funkcije is_alive (). Ponekad vaše niti trebaju pristupiti globalnim resursima. Za to se koriste brave:

import threading
broj = 1
my_lock = threading.Lock ()
def my_func ():
globalni broj, my_lock
my_lock.acquire ()
zbir = broj + 1
print (zbir)
my_lock.release ()
my_thread = threading.Thread (cilj = my_func)
my_thread.start ()

zaključci

U ovom članku pokrili smo osnove python programiranja. Sada znate većinu uobičajenih funkcija i možete ih primijeniti u svojim malim programima. Svideće vam se Python 3 programiranje, veoma je lako! Ako imate pitanja, pitajte u komentarima!

Da zaključimo ovaj članak sjajnim predavanjem o Pythonu:

Uvod


U vezi sa trenutno uočenim brzim razvojem tehnologije personalnog računarstva, dolazi do postepene promene zahteva za programskim jezicima. Interpretirani jezici počinju da igraju sve veću ulogu, kako sve veća snaga personalnih računara počinje da pruža dovoljnu brzinu za izvršavanje interpretiranih programa. A jedina značajna prednost kompajliranih programskih jezika je kod velike brzine koji kreiraju. Kada brzina izvršavanja programa nije kritična vrijednost, najispravniji izbor je interpretirani jezik, jer je to jednostavniji i fleksibilniji programski alat.

U tom smislu, od određenog je interesa razmotriti relativno novi programski jezik Python (Python), koji je kreirao njegov autor Guido van Rossum početkom 90-ih.

Opće informacije o Pythonu. Prednosti i nedostaci


Python je interpretirani, izvorno objektno orijentirani programski jezik. Izuzetno je jednostavan i sadrži mali broj ključnih riječi, a istovremeno je vrlo fleksibilan i izražajan. To je jezik višeg nivoa od Pascala, C++ i, naravno, C, što se postiže uglavnom zahvaljujući ugrađenim strukturama podataka visokog nivoa (liste, rječnici, tuple).

Vrline jezika.
Nesumnjiva prednost je što je Python interpreter implementiran na gotovo svim platformama i operativnim sistemima. Prvi takav jezik bio je C, ali njegovi tipovi podataka na različitim mašinama mogli su zauzeti različite količine memorije i to je služilo kao neka prepreka prilikom pisanja istinski prenosivog programa. Python nema ovaj nedostatak.

Sljedeća bitna karakteristika je proširivost jezika, tome se pridaje veliki značaj i, kako sam autor piše, jezik je zamišljen upravo kao proširiv. To znači da postoji mogućnost za unapređenje jezika od strane svih zainteresovanih programera. Interpretator je napisan u C-u i izvorni kod je dostupan za svaku manipulaciju. Ako je potrebno, možete ga umetnuti u svoj program i koristiti ga kao ugrađenu ljusku. Ili, pisanjem dodataka za Python u C i kompajliranjem programa, možete dobiti "prošireni" tumač s novim funkcijama.

Sljedeća prednost je prisustvo velikog broja plug-in modula koji pružaju razne dodatne mogućnosti. Takvi moduli su napisani u C-u i na samom Pythonu i može ih razviti svaki razumno kvalifikovan programer. Kao primjeri mogu se navesti sljedeći moduli:

  • Numerički Python - Napredne matematičke mogućnosti kao što su cjelobrojni vektor i manipulacija matricom.
  • Tkinter - izrada aplikacija pomoću grafičkog korisničkog interfejsa (GUI) zasnovanog na široko korišćenom Tk interfejsu na X-Windows;
  • OpenGL - Koristi Silicon Graphics Inc. opsežnu biblioteku za 2D i 3D grafičko modeliranje, Open Graphics Library. Ovaj standard je podržan, između ostalog, u uobičajenim operativnim sistemima kao što su Microsoft Windows 95 OSR 2, 98 i Windows NT 4.0.
Nedostaci jezika.
Jedini nedostatak koji je autor primetio je relativno mala brzina izvršavanja Python programa, što je posledica njegove interpretabilnosti. Međutim, po našem mišljenju, to je više nego nadoknađeno prednostima jezika pri pisanju programa koji nisu previše kritični za brzinu izvršavanja.

Pregled karakteristika


1. Python, za razliku od mnogih jezika (Pascal, C++, Java, itd.), ne zahtijeva deklaracije varijabli. Oni se kreiraju na mjestu njihove inicijalizacije, tj. prvi put kada dodijelite vrijednost varijabli. To znači da je tip varijable određen tipom dodijeljene vrijednosti. Python u tom pogledu liči na Basic.
Tip varijable nije nepromjenjiv. Svaka dodjela za nju je ispravna i to samo dovodi do toga da tip varijable postaje tip nove dodijeljene vrijednosti.

2. U jezicima kao što su Pascal, C, C++, organizacija lista predstavljala je određene poteškoće. Za njihovu implementaciju trebalo je dobro proučiti principe rada sa pokazivačima i dinamičkom memorijom. Čak i sa dobrim kvalifikacijama, programer bi, svaki put ponovo implementirajući mehanizme za kreiranje, rad i uništavanje lista, mogao lako napraviti suptilne greške. S obzirom na to, kreirani su neki alati za rad sa listama. Na primjer, Delphi Pascal ima TList klasu koja implementira liste; za C ++ razvijena je biblioteka STL (Standard Template Library) koja sadrži strukture kao što su vektori, liste, skupovi, rječnici, stekovi i redovi. Međutim, takvi objekti nisu dostupni na svim jezicima i njihovim implementacijama.

Jedna od karakterističnih karakteristika Pythona je prisustvo takvih struktura ugrađenih u sam jezik kao tuples(torka), liste(lista) i rječnici(rečnik) ponekad se naziva mape(mapa). Razmotrimo ih detaljnije.

  1. Tuple ... Donekle podsjeća na niz: sastoji se od elemenata i ima strogo definiranu dužinu. Elementi mogu biti bilo koje vrijednosti - jednostavne konstante ili objekti. Za razliku od niza, elementi tuple nisu nužno uniformni. A ono što razlikuje tuple od liste je to što se tuple ne može mijenjati, tj. ne možemo dodijeliti nešto novo i-tom elementu tuple i ne možemo dodati nove elemente. Dakle, Tuple se može nazvati konstantnom listom. Sintaktički, tuple je specificiran navođenjem svih elemenata odvojenih zarezima, a sve ovo je zatvoreno u zagradama:

  2. (1, 2, 5, 8)
    (3.14, 'string', -4)
    Svi elementi su indeksirani od nule. Da biste dobili i-ti element, morate navesti ime tuple, a zatim indeks i u uglastim zagradama. primjer:
    t = (0, 1, 2, 3, 4)
    ispisati t, t [-1], t [-3]
    Rezultat: 0 4 2
    Prema tome, Tuple bi se mogao nazvati konstantnim vektorom ako su njegovi elementi uvijek uniformni.
  3. Lista ... Dobar primjer liste je Turbo Pascal string. Elementi niza su pojedinačni znakovi, njegova dužina nije fiksna, moguće je izbrisati elemente ili, naprotiv, umetnuti ih bilo gdje u nizu. Elementi liste mogu biti proizvoljni objekti, ne nužno istog tipa. Da biste kreirali listu, dovoljno je navesti njene elemente odvojene zarezima, stavljajući sve ovo u uglaste zagrade:


  4. ['String', (0,1,8),]
    Za razliku od Tuple-a, liste se mogu mijenjati po želji. Elementima se pristupa na isti način kao u torkama. primjer:
    l =]
    ispisati l, l, l [-2], l [-1]
    Rezultat: 1 s (2,8) 0
  5. Rječnik ... Podsjeća na tip zapisa u Pascal-u ili strukturni tip u C-u. Međutim, umjesto sheme "polje zapisa" - "vrijednost", koristi "ključ" - "vrijednost". Rječnik je skup parova "ključ" - "vrijednost". Ovdje je "ključ" konstanta bilo kojeg tipa (ali se uglavnom koriste nizovi), služi za imenovanje (indeksiranje) neke vrijednosti koja joj odgovara (koja se može mijenjati).

  6. Rječnik se kreira navođenjem njegovih elemenata (parova "ključ" - "vrijednost", odvojenih dvotočkom), odvojenih zarezima i zatvaranjem svih njih u vitičaste zagrade. Za pristup određenoj vrijednosti potrebno je upisati odgovarajući ključ u uglastim zagradama iza naziva rječnika. primjer:
    d = ("a": 1, "b": 3, 5: 3,14, "ime": "Jovan")
    d ["b"] = d
    ispisati d ["a"], d ["b"], d, d ["ime"]
    Rezultat: 1 3,14 3,14 Ivan
    Da biste dodali novi par "ključ" - "vrijednost", dovoljno je elementu sa novim ključem dodijeliti odgovarajuću vrijednost:
    d ["new"] = "nova vrijednost"
    print d
    Rezultat: ("a": 1, "b": 3, 5: 3.14, "ime": "Jovan", "novo": "nova vrijednost")

3. Python za razliku od Pascala, C, C ++ ne podržava rad sa pokazivačima, dinamičkom memorijom i adresnom aritmetikom. Po tome je sličan Javi. Kao što znate, pokazivači su izvor suptilnih grešaka i rad s njima je više povezan sa programiranjem na niskom nivou. Radi veće pouzdanosti i jednostavnosti, nisu uključeni u Python.

4. Jedna od posebnosti Pythona je kako se jedna varijabla dodjeljuje drugoj, tj. kada sa obe strane operatera " = "postoje varijable.

Prateći Timothyja Budda (), nazvat ćemo semantika pokazivača slučaj kada dodjela vodi samo do dodjele reference (pokazivača), tj. nova varijabla postaje samo drugo ime, označavajući istu memorijsku lokaciju kao i stara varijabla. U ovom slučaju, promjena vrijednosti označene novom varijablom dovest će do promjene vrijednosti stare, jer oni zapravo znače istu stvar.

Kada dodjela dovede do stvaranja novog objekta (ovdje objekt - u smislu komada memorije za pohranjivanje vrijednosti nekog tipa) i kopiranja sadržaja dodijeljene varijable u njega, ovaj slučaj ćemo nazvati semantiku kopiranja... Dakle, ako je semantika kopiranja važeća prilikom kopiranja, tada će varijable s obje strane znaka "=" značiti dva nezavisna objekta sa istim sadržajem. I ovdje naknadna promjena jedne varijable neće ni na koji način utjecati na drugu.

Dodjela u Pythonu funkcionira ovako: if dodjeljiva objekt je instanca takvih tipova kao što su brojevi ili stringovi, tada se primjenjuje semantika kopiranja, ali ako se na desnoj strani nalazi instanca klase, lista, rječnik ili tuple, tada se primjenjuje semantika pokazivača. primjer:
a = 2; b = a; b = 3
print "semantika kopiranja: a =", a, "b =", b
a =; b = a; b = 3
print "semantika pokazivača: a =", a, "b =", b
Rezultat:
semantika kopiranja: a = 2 b = 3
Semantika pokazivača: a = b =

Za one od vas koji žele da znaju šta je ovo, ja ću drugačije pogledati zadatak u Pythonu. Ako smo se u takvim jezicima kao što su Basic, Pascal, C / C ++ bavili varijablama - "kapacitetima" i konstantama pohranjenim u njima (numeričkim, simboličkim, string - ne tačka), a operacija dodjeljivanja značila je "stavljanje " konstantu u varijablu koja se dodeljuje , tada u Pythonu već moramo da radimo sa varijablama "name" i objektima koje oni imenuju. (Primjećujete li neku analogiju sa Prolog jezikom?) Šta je objekat u Pythonu? Ovo je sve čemu se može dati ime: brojevi, nizovi, liste, rječnici, instance klasa (koje se u Object Pascal-u nazivaju objekti), same klase (!), funkcije, moduli, itd. Dakle, kada se nekom objektu dodijeli varijabla, varijabla postaje njeno "ime", a objekt može imati neograničen broj takvih "imena" i svi oni ni na koji način ne zavise jedno od drugog.

Sada se objekti dijele na promjenjive (promjenjive) i nepromjenjive. Promjenjivi - oni koji mogu promijeniti svoj "interni sadržaj", na primjer, liste, rječnike, instance klasa. I one nepromjenjive - kao što su brojevi, torke, nizovi (da, stringovi također; možete dodijeliti varijablu novom nizu izvedenom iz starog, ali ne možete mijenjati sam stari niz).

Pa ako pišemo a =; b = a; b = 3 Python to tumači ovako:

  • dajte objektu listu "ime a ;
  • daj ovom objektu drugo ime - b ;
  • modificirati nulti element objekta.

  • Tako smo dobili "pseudo" semantiku pokazivača.

    I posljednja stvar koju treba reći o ovome: iako ne postoji mogućnost promjene strukture tuple-a, ali promjenjive komponente sadržane u njemu i dalje su dostupne za modifikaciju:

    T = (1, 2,, "string") t = 6 # ovo nije dozvoljeno del t # takođe greška t = 0 # dozvoljeno, sada je treća komponenta lista t = "S" # greška: nizovi nisu promjenjiv

    5. Način na koji su operatori grupirani u Pythonu je prilično originalan. U Pascalu se za to koriste operatorske zagrade. početak-kraj, u C, C ++, Java - vitičaste zagrade (), u Basic-u se koriste završni završnici jezičkih konstrukcija (NEXT, WEND, END IF, END SUB).
    U Pythonu je sve mnogo jednostavnije: odabir bloka iskaza se vrši pomicanjem odabrane grupe za jedan ili više razmaka ili znakova tabele udesno u odnosu na naslov strukture na koju će se ovaj blok odnositi. Na primjer:

    ako je x> 0: ispiši ‘x> 0’ x = x - 8 ostalo: ispiši ‘x<= 0 ’ x = 0 Dakle, dobar stil pisanja programa na koji pozivaju profesori Pascala, C++, Jave itd., ovdje se stiče od samog početka, jer jednostavno neće raditi drugačije.

    Opis jezika. Kontrolne konstrukcije



    Obrada izuzetaka


    probaj:
    <оператор1>
    [osim[<исключение> [, <переменная>] ]:
    <оператор2>]
    [ostalo <оператор3>]
    Izvedeno<оператор1>ako dođe do izuzetka<исключение>, onda se izvršava<оператор2>... Ako<исключение>stvari, onda se dodjeljuje<переменной>.
    U slučaju uspješnog završetka<оператора1>, izvedeno<оператор3>.
    probaj:
    <оператор1>
    konačno:
    <оператор2>
    Izvedeno<оператор1>... Ako se ne dodaju izuzeci, onda<оператор2>... inače,<оператор2>i odmah se izbacuje izuzetak.
    podići <исключение> [<значение>] Pokreće izuzetnu situaciju<исключение>sa parametrom<значение>.

    Izuzeci su samo žice. primjer:

    My_ex = 'loš indeks' pokušaj: ako je loš: podići my_ex, loše osim my_ex, vrijednost: ispisati 'Greška', vrijednost

    Deklaracija funkcije



    Deklarisanje klasa



    Klasa cMyClass: def __init __ (self, val): self.value = val # def printVal (self): print 'value =', self.value # # end cMyClass obj = cMyClass (3.14) obj.printVal () obj. vrijednost = "(! LANG: string sada" obj.printVal () !} rezultat:
    vrijednost = 3,14
    vrijednost = string sada

    Operatori za sve vrste sekvenci (liste, tuple, stringovi)


    Operateri za liste (list)


    s [i] = x I-ti element od s je zamijenjen sa x.
    s = t neki od elemenata s od i do j-1 su zamijenjeni sa t (t također može biti lista).
    del s uklanja s dio (kao i s =).
    s.dodati (x) dodaje element x na kraj s.
    s.broj (x) vraća broj elemenata s jednak x.
    s.indeks (x) vraća najmanji i takav da je s [i] == x.
    s.umetnuti (i, j) dio s počevši od i-tog elementa je pomjeren udesno, a s [i] je dodijeljen x.
    s.ukloni (x) isto što i del s [s.index (x)] - uklanja prvi element s jednak x.
    s.reverse () piše string obrnutim redoslijedom
    s.sort () sortira listu uzlaznim redoslijedom.

    Operatori rječnika


    File objekti


    Kreiran inline funkcijom otvori ()(pogledajte njegov opis ispod). Na primjer: f = otvoren ('mydan.dat', 'r').
    Metode:

    Ostali jezički elementi i ugrađene funkcije


    = zadatak.
    print [ < c1 > [, < c2 >]* [, ] ] izlazi vrijednosti< c1 >, < c2 >na standardni izlaz. Stavite razmak između argumenata. Ako na kraju liste argumenata nema zareza, onda se izvodi novi red.
    trbušnjaci (x) vraća apsolutnu vrijednost x.
    primijeniti ( f , <аргументы>) poziva funkciju (ili metodu) f sa< аргументами >.
    chr (i) vraća niz od jednog znaka sa ASCII kodom i.
    cmp (x, y) vraća negativnu, nulu ili pozitivnu ako je x respektivno<, ==, или >nego y.
    divmod (a, b) vraća tuple (a / b, a% b), gdje je a / b div b (cijeli dio rezultata dijeljenja), a% b je mod b (ostatak dijeljenja).
    eval (s)
    vraća objekt specificiran u s kao string. S može sadržavati bilo koju strukturu jezika. S također može biti kodni objekt, na primjer: x = 1; incr_x = eval ("x + 1").
    plutati (x) vraća realnu vrijednost jednaku broju x.
    heksadecimalni (x) vraća string koji sadrži heksadecimalni prikaz x.
    unos (<строка>) deduces<строку>, čita i vraća vrijednost iz standardnog unosa.
    int (x) vraća cjelobrojnu vrijednost broja x.
    len (s) vraća dužinu (broj elemenata) objekta.
    dugo (x) vraća vrijednost dugog cjelobrojnog tipa x.
    max (s), min (s) vraćaju najveći i najmanji od elemenata niza s (to jest, s je niz, lista ili tuple).
    oktobar (x) vraća string koji sadrži prikaz broja x.
    otvoren (<имя файла>, <режим>= 'R' ) vraća objekt datoteke otvoren za čitanje.<режим>= 'W' - otvor za pisanje.
    red (c) vraća ASCII kod znaka (niz dužine 1) c.
    pow (x, y) vraća vrijednost x na stepen y.
    domet (<начало>, <конец>, <шаг>) vraća listu cijelih brojeva većih ili jednakih<начало>i manje od<конец>generisan sa datom<шагом>.
    raw_input ( [ <текст> ] ) deduces<текст>na standardni izlaz i čita string sa standardnog ulaza.
    okrugli (x, n = 0) vraća realni x zaokružen na n-tu decimalu.
    str (<объект>) vraća string reprezentaciju<объекта>.
    tip (<объект>) vraća tip objekta.
    Na primjer: ako tip (x) == tip (‘’): ispiši ‘ovo je niz’
    xrange (<начало>, <конец>, <шаг>) slično rasponu, ali samo oponaša listu bez kreiranja. Koristi se u for petlji.

    Posebne funkcije za rad sa listama


    filter (<функция>, <список>) vraća listu tih elemenata<спиcка>za koji<функция>poprima vrijednost "true".
    mapa (<функция>, <список>) primjenjuje<функцию>svakom elementu<списка>i vraća listu rezultata.
    smanjiti ( f , <список>,
    [, <начальное значение> ] )
    vraća vrijednost dobivenu "smanjenjem"<списка>funkcija f. To znači da postoji neka interna varijabla p, koja je inicijalizirana<начальным значением>, zatim, za svaki element<списка>, funkcija f se poziva s dva parametra: p i element<списка>... Rezultat koji vraća f dodjeljuje se p. Nakon što sam prošao kroz sve<списка>smanjiti povrat str.
    Koristeći ovu funkciju, možete, na primjer, izračunati zbir elemenata liste: def func (crveno, el): vrati crveno + el suma = smanji (func,, 0) # sada suma == 15
    lambda [<список параметров>] : <выражение> "anonimna" funkcija koja nema svoje ime i napisana je na mjestu njenog poziva. Prihvata parametre navedene u<списке параметров>, i vraća vrijednost<выражения>... Koristi se za filter, smanjenje, mapu. Na primjer: >>> filter za ispis (lambda x: x> 3,) >>> ispis mape (lambda x: x * 2,) >>> p = smanjiti (lambda r, x: r * x,, 1) >>> štampa str 24

    Uvoz modula



    Standardni matematički modul


    Varijable: pi, e.
    Funkcije(slično funkcijama jezika C):

    akos (x) cosh (x) ldexp (x, y) sqrt (x)
    asin (x) exp (x) dnevnik (x) preplanulost (x)
    atan (x) fabs (x) sinh (x) frexp (x)
    atan2 (x, y) sprat (x) pow (x, y) modf (x)
    strop (x) fmod (x, y) grijeh (x)
    cos (x) log10 (x) tanh (x)

    String modul


    Funkcije:

    Zaključak


    Zbog jednostavnosti i fleksibilnosti jezika Python može se preporučiti korisnicima (matematičarima, fizičarima, ekonomistima itd.) koji nisu programeri, ali u svom radu koriste računarsku tehnologiju i programiranje.
    Programi u Pythonu se razvijaju u prosjeku jedan i po do dva (a ponekad i dva do tri) puta brže nego u kompajliranim jezicima (C, C++, Pascal). Stoga, jezik može biti od velikog interesa za profesionalne programere koji razvijaju aplikacije koje nisu kritične za brzinu izvršavanja, kao i programe koji koriste složene strukture podataka. Posebno se Python dobro pokazao u razvoju programa za rad sa grafovima i generisanje stabala.

    Književnost


    1. Budd T. Objektno orijentirano programiranje. - SPb.: Petar, 1997.
    2. Guido van Rossum... Python Tutorial. (www.python.org)
    3. Chris Hoffman... Brza referenca za Python. (www.python.org)
    4. Guido van Rossum... Reference Python biblioteke. (www.python.org)
    5. Guido van Rossum... Python Referentni priručnik. (www.python.org)
    6. Guido van Rossum... Radionica Python programiranja. (http://sultan.da.ru)

    U ovoj kolekciji sakupili smo najkorisnije knjige o programskom jeziku Python koje će pomoći i početnicima i iskusnim programerima u učenju.
    Ovdje ćete pronaći resurse za kreiranje aplikacija, kao i tutorijale koji će vam pomoći da se upoznate sa kompletom alata, savladate baze podataka i poboljšate svoje profesionalne vještine.

    Odjeljci:

    Za početnike

    To je odličan i međunarodno priznat uvod u jezik Python. Brzo vas uči kako da napišete efikasan, visokokvalitetan kod. Pogodno i za programere početnike i za one koji već imaju iskustva u korištenju drugih jezika. Osim teorije, knjiga sadrži testove, vježbe i korisne ilustracije – sve što vam je potrebno da naučite Python 2 i 3. Osim toga, upoznaćete se sa nekim naprednim karakteristikama jezika koje još malo stručnjaka nije savladalo.

    Python je višeparadigmski višeplatformski programski jezik koji je nedavno postao posebno popularan na Zapadu iu velikim kompanijama kao što su Google, Apple i Microsoft. Zahvaljujući svojoj minimalističkoj sintaksi i moćnom kernelu, jedan je od najproduktivnijih i najčitanijih programskih jezika na svijetu.

    Ova knjiga će vas brzo i na zabavan način provesti kroz osnove jezika, prije nego što pređete na rukovanje izuzetcima, web razvoj, rad sa SQL-om, obradu podataka i Google App Engine. Također ćete naučiti kako pisati Android aplikacije i još mnogo toga o moći koju vam daje Python.

    Još jedna nagrađivana Python knjiga sa 52 posebno kurirane vježbe za učenje jezika. Ispitujući ih, shvatit ćete kako jezik funkcionira, kako pravilno pisati programe i kako ispraviti vlastite greške. Obrađene su sljedeće teme:

    • Postavljanje okoline;
    • Organizacija kodeksa;
    • Osnovna matematika;
    • Varijable;
    • Stringovi i tekst;
    • Interakcija sa korisnicima;
    • Rad sa fajlovima;
    • Petlje i logika;
    • Strukture podataka;
    • Razvoj softvera;
    • Nasljeđe i sastav;
    • Moduli, klase i objekti;
    • Paketi;
    • Otklanjanje grešaka;
    • Automatizacija testiranja;
    • Razvoj igara;
    • Web development.

    Ova knjiga je namijenjena početnicima u učenju programiranja. Potreban je vrlo standardni pristup nastavi, ali nestandardni jezik 🙂 Vrijedi napomenuti da je ovo više knjiga o osnovama programiranja nego o Pythonu.

    Python programiranje za početnike je odlično mjesto za početak. To je sveobuhvatan vodič napisan posebno za početnike koji žele savladati jezik. Sa osnovama, preći ćete na objektno orijentirano programiranje i CGI skriptiranje za obradu podataka web obrasca, te kako kreirati grafičke aplikacije s prozorima i distribuirati ih na druge uređaje.

    Ovaj vodič će vas provesti kroz sve korake od instaliranja interpretera do pokretanja i otklanjanja grešaka u punopravnim aplikacijama.

    "Python Crash Course" je opsežna priča o jeziku Python. U prvoj polovini knjige upoznaćete se sa osnovnim konceptima jezika, kao što su liste, rečnici, klase i petlje, i naučićete kako da napišete čist i čitljiv kod. Pored toga, naučićete kako da testirate svoje programe. U drugoj polovini knjige od vas će se tražiti da svoje znanje primijenite u praksi pisanjem 3 projekta: arkadna igra poput Space Invaders, aplikacija za vizualizaciju podataka i jednostavna web aplikacija.

    Ovo je vrlo zgodna džepna varalica napravljena za Python 3.4 i 2.7. U njemu ćete pronaći najpotrebnije informacije o različitim aspektima jezika. Obrađene teme:

    • Ugrađeni tipovi objekata;
    • Izrazi i sintaksa za kreiranje i obradu objekata;
    • Funkcije i moduli;
    • OOP (imamo poseban);
    • Ugrađene funkcije, izuzeci i atributi;
    • Metode preopterećenja operatera;
    • Popularni moduli i ekstenzije;
    • Opcije komandne linije i razvojni alati;
    • Hints;
    • Python SQL API baze podataka.

    Knjiga za učenje Pythona sa mnoštvom praktičnih primjera.

    Praktične primjere možete pronaći u našoj rubrici. Na primjer, pročitajte našu o samoimplementirajućoj zip funkciji.

    Svrha ove knjige je da čitatelja upozna sa popularnim alatima i raznim smjernicama za kodiranje usvojenim u zajednici otvorenog koda. Osnove jezika Python nisu obrađene u ovoj knjizi, jer se o tome uopće ne radi.

    Prvi dio knjige sadrži opis različitih uređivača teksta i razvojnih okruženja koja se mogu koristiti za pisanje Python programa, kao i mnoge vrste interpretatora za različite sisteme. Drugi dio knjige govori o stilu kodiranja zajednice otvorenog koda. Treći dio knjige pruža pregled mnogih Python biblioteka koje se koriste u većini projekata otvorenog koda.

    Glavna razlika između ove knjige i svih ostalih tutorijala za početnike u učenju Pythona je u tome što se uporedo sa proučavanjem teorijskog materijala, čitalac upoznaje sa implementacijom projekata raznih igara. Tako će budući programer moći bolje razumjeti kako se određene karakteristike jezika koriste u stvarnim projektima.

    Knjiga pokriva osnove Pythona i programiranja općenito. Odlična knjiga za prvo upoznavanje ovog jezika.

    Za napredne

    Ako želite da migrirate na Python 3 ili pravilno ažurirate svoj stari kod napisan u Python 2, onda je ova knjiga za vas. I za vas - da bez muke prevedete projekat sa Python 2 na Python 3.

    U knjizi ćete pronaći mnogo praktičnih primjera u Pythonu 3.3, od kojih je svaki detaljno obrađen. Obrađene su sljedeće teme:

      • Strukture podataka i algoritmi;
      • Stringovi i tekst;
      • Brojevi, datumi i vremena;
      • Iteratori i generatori;
      • Datoteke i operacije čitanja/pisanja;
      • Kodiranje i obrada podataka;
      • Funkcije;
      • Klase i objekti;
      • Metaprogramiranje;
      • Moduli i paketi;
      • Web programiranje;
      • Konkurentnost;
      • Administracija sistema;
      • Testiranje i otklanjanje grešaka;
      • C ekstenzije.

    Dok budete čitali ovu knjigu, razvijat ćete web aplikaciju dok istražujete praktične prednosti razvoja vođenog testom. Pokrivat ćete teme kao što su integracija baze podataka, JS alati za automatizaciju, NoSQL, websockets i asinkrono programiranje.

    Knjiga detaljno pokriva Python 3: tipove podataka, operatore, uslove, petlje, regularne izraze, funkcije, objektno orijentisane programske alate, rad sa datotekama i direktorijumima, često korišćene module standardne biblioteke. Pored toga, knjiga se takođe fokusira na SQLite bazu podataka, interfejs za pristup bazi podataka i kako doći do podataka sa Interneta.

    Drugi dio knjige u potpunosti je posvećen PyQt 5 biblioteci, koja vam omogućava da kreirate GUI aplikacije u Pythonu. Raspravlja o alatima za obradu signala i događaja, upravljanju svojstvima prozora, razvoju aplikacija sa više niti, opisuje glavne komponente (dugmad, tekstualna polja, liste, tabele, meniji, trake sa alatkama, itd.), opcije za njihovo postavljanje unutar prozora, alate za rad s bazama podataka, multimediju, ispis dokumenata i izvoz u Adobe PDF format.

    Vaši Pyhton programi mogu raditi, ali mogu biti brži. Ovaj praktični vodič će vam pomoći da bolje razumete strukturu jezika, a naučićete kako da pronađete uska grla u kodu i povećate brzinu programa koji rade sa velikim količinama podataka.

    Kao što samo ime govori, svrha ove knjige je da pruži najkompletniji koncept Django okvira za razvoj web aplikacija. Zbog činjenice da je knjiga objavljena na ruskom jeziku još 2010. godine, smatra se zastarjelom verzijom okvira, Django 1.1. Ipak, ova knjiga se toplo preporučuje jer pruža osnovni uvod u Django. I praktično nema dobrih knjiga o ovom okviru na ruskom, osim ove.

    Autori Adrian Golovaty i Jacob Kaplan-Moss pomno razmatraju komponente okvira. Knjiga sadrži mnogo materijala o razvoju Internet resursa u Djangu, od osnova do posebnih tema kao što su generisanje PDF-a i RSS-a, sigurnost, keširanje i internacionalizacija. Preporučuje se da prije čitanja ove knjige savladate osnovne koncepte web razvoja.

    Razvoj igara

    Pravljenje igara uz Python & Pygame je knjiga o biblioteci za razvoj igara Pygame. Svako poglavlje pruža kompletan izvorni kod za novu igru ​​i detaljna objašnjenja korištenih principa razvoja.

    Knjiga "Izmislite sopstvene kompjuterske igre sa Pythonom" vas uči kako da programirate na Pythonu kroz razvoj igara. U kasnijim igrama razmatra se kreiranje dvodimenzionalnih igara koristeći Pygame biblioteku. Naučićete da:

    • koristiti petlje, varijable i logičke izraze;
    • koristiti strukture podataka kao što su liste, rječnici i torke;
    • otklanjanje grešaka u programima i traženje grešaka;
    • pisati jednostavan AI za igre;
    • kreirajte jednostavne grafike i animacije za svoje igre.

    Analiza podataka i mašinsko učenje

    Unaprijedite svoje vještine radeći sa strukturama podataka i algoritmima na novi način - naučni. Istražite primjere složenih sistema sa jasnim objašnjenjima. Knjiga predlaže:

    • Istražite koncepte kao što su NumPy nizovi, SciPy metode, obrada signala, brze Fourierove transformacije i hash tablice;
    • upoznati apstraktne modele složenih fizičkih sistema, fraktala i Turingovih mašina;
    • istražiti naučne zakone i teorije;
    • analizirati primjere složenih zadataka.

    Ova knjiga govori o Python-u kao alatu za rješavanje računski intenzivnih zadataka. Cilj ove knjige je da nauči čitaoca kako da koristi Python data mining stack za efikasno skladištenje, manipulaciju i razumevanje podataka.

    Svako poglavlje knjige fokusira se na određenu biblioteku za rad sa velikim podacima. Prvo poglavlje se bavi IPythonom i Jupyterom, drugo NumPy, a treće Pandas. Četvrto poglavlje sadrži materijal o Matplotlibu, a peto o Scikit-Learn-u.

    "Python za analizu podataka" govori o svim vrstama načina obrade podataka. Knjiga je odličan uvod u naučno računarstvo. Evo šta ćete saznati:

    • interaktivna ljuska IPython;
    • biblioteka za numeričke proračune NumPy:
    • biblioteka za analizu podataka o pandama;
    • biblioteka za crtanje matplotlib dijagrama.

    Također ćete naučiti kako mjeriti podatke tokom vremena i rješavati analitičke probleme u mnogim područjima nauke.

    Ova knjiga vas poziva da istražite različite metode za analizu podataka pomoću Pythona. Evo šta ćete naučiti nakon čitanja:

    • upravljati podacima;
    • riješiti probleme nauke o podacima;
    • kreirati visokokvalitetne prikaze;
    • primijeniti linearne regresije za procjenu odnosa između varijabli;
    • kreirati sisteme preporuka;
    • rukuju velikim podacima.

    Ovaj vodič objašnjava principe obrade prirodnog jezika jednostavnim riječima. Naučit ćete kako pisati programe koji mogu rukovati velikim skupovima nestrukturiranog teksta, dobiti pristup ogromnim skupovima podataka i upoznati se s osnovnim algoritmima.

    Ostalo

    Ako ste ikada satima preimenovali datoteke ili ažurirali stotine ćelija tabele, znate koliko je to iscrpljujuće. Želite li naučiti kako automatizirati takve procese? Knjiga "Automatizirajte dosadne stvari s Pythonom" objašnjava kako kreirati programe koji će rješavati razne svakodnevne zadatke za nekoliko minuta. Nakon čitanja naučit ćete kako automatizirati sljedeće procese:

    • traženje datog teksta u fajlovima;
    • kreiranje, ažuriranje, premještanje i preimenovanje datoteka i mapa;
    • Pretraživanje i preuzimanje podataka na webu;
    • ažuriranje i formatiranje podataka u Excel tabelama;
    • cijepanje, spajanje i šifriranje PDF datoteka;
    • distribucija pisama i obavještenja;
    • popunjavanje onlajn formulara.

    Odlična knjiga sa minimalnim pragom za ulazak. Više govori o biologiji nego o jeziku, ali će svakako dobro doći svima koji rade u ovoj oblasti. Opremljen velikim brojem rastavljenih primjeraka različite složenosti.

    Ova knjiga pokriva osnove programiranja Raspberry Pi sistema. Autor je već sastavio mnoge skripte za vas, a također je pružio lako razumljiv i detaljan vodič za kreiranje vlastitog. Pored uobičajenih vježbi, pozvani ste da implementirate tri projekta: igru ​​Hangman, LED sat i softverski kontroliranog robota.

    "Hakovanje tajnih šifri pomoću Pythona" ne samo da govori o istoriji postojećih šifri, već vas takođe uči kako da kreirate sopstvene programe za šifrovanje i razbijanje šifri. Odlična knjiga za učenje osnova kriptografije.

    Podijelite korisne Python knjige u komentarima!

    Top srodni članci