Definicija ishrane. Uvod u Python programiranje. Jezik visokog nivoa opšte namene

Definicija ishrane.  Uvod u Python programiranje.  Jezik visokog nivoa opšte namene
Definicija ishrane. Uvod u Python programiranje. Jezik visokog nivoa opšte namene

Python- moćan i jednostavan za učenje programski jezik. Pruža zgodne strukture podataka visokog nivoa i jednostavan, ali efikasan pristup objektno orijentisanom programiranju. Python interpretirani jezik. Za pokretanje pisanih programa potreban je CPython interpreter. Python interpreter i velika standardna biblioteka su besplatno dostupni kao izvorni i binarni fajlovi za sve glavne platforme na službenoj web stranici Python http://www.python.org i može se redistribuirati bez ograničenja. Osim toga, stranica sadrži distribucije i linkove na brojne module trećih strana i detaljnu dokumentaciju.
Jezik ima jasnu i dosljednu sintaksu, promišljenu modularnost i skalabilnost, tako da izvorni kod napisan u Python programi su laki za čitanje. Language Developers Python pridržavati se određene filozofije programiranja koja se zove "Zen Pythona". Njegov tekst izlazi od strane tumača koristeći import ovu naredbu:

>>> import this Zen of Python, Tim Peters Lepo je bolje nego ružno. Eksplicitno je bolje nego implicitno. Jednostavno je bolje od složenog. Kompleks je bolji od složenog. Stan je bolji od ugniježđenog. Rijetko je bolje nego gusto. Čitljivost se računa. Posebni slučajevi nisu dovoljno posebni da bi prekršili pravila. Iako praktičnost pobjeđuje čistoću. Greške nikada ne bi trebale proći tiho. Osim ako se izričito ne prešućuju. Suočeni s dvosmislenošću, odbijte iskušenje da pogađate. Trebalo bi da postoji jedna - i po mogućnosti samo jedna - - očigledan način da se to uradi. Iako taj način možda neće biti očigledan u početku osim ako niste Holanđanin. Sada je bolje nego nikad. Iako nikad nije često bolje od *trenutno* sada. Ako je implementaciju teško objasniti, to je "loša ideja. Ako je implementacija laka za objasniti, to može biti dobra ideja. Prostori imena su jedna sjajna ideja - hajde da ih uradimo više!

U prevodu zvuči ovako:

  • Lepo je bolje nego ruzno.
  • Eksplicitno je bolje nego implicitno.
  • Jednostavno je bolje od složenog.
  • Bolje je komplikovano nego zbuniti.
  • Stan je bolji od ugniježđenog.
  • Rijetko je bolje nego gusto.
  • Čitljivost je bitna.
  • Posebne prilike nisu dovoljno posebne da bi prekršile pravila.
  • U isto vrijeme, praktičnost je važnija od besprijekornosti.
  • Greške nikada ne treba prešutjeti.
  • Ako nisu eksplicitno zataškani.
  • Kada se suočite sa nejasnoćom, oduprite se iskušenju da pogodite.
  • Trebao bi postojati jedan – i po mogućnosti samo jedan – očigledan način da se to učini.
  • Iako možda u početku neće biti očigledno ako niste Holanđanin.
  • Sada je bolje nego nikad.
  • Iako nikad nije često bolje nego sada.
  • Ako je implementaciju teško objasniti, ideja je loša.
  • Ako je implementaciju lako objasniti, ideja je vjerovatno dobra.
  • Imenski prostori su odlični! Hajde da ih napravimo više!

Python- programski jezik koji se aktivno razvija, nove verzije se objavljuju otprilike svake dvije i po godine. Kao rezultat ovog i nekih drugih razloga, Python ne postoje ANSI, ISO ili drugi zvanični standardi, CPython ispunjava njihovu ulogu.

Istorija stvaranja jezika

Razvoj jezika Python započeo je kasnih 1980-ih uposlenik holandskog CWI instituta. Distribuiranom OS Amoeba bio je potreban proširivi skriptni jezik za koji je Guido van Rossum kreirao Python. Novi jezik je pozajmio neke od razvoja za ABC jezik, koji je bio fokusiran na podučavanje programiranja. U februaru 1991. Guido je objavio izvorni kod u novinskoj grupi alt.sources. Ime jezika nije došlo od vrste gmizavaca. Autor je jezik nazvao po popularnoj britanskoj humorističnoj televizijskoj emisiji Monty Python's Flying Circus iz 1970-ih. Ipak, zmijske glave predstavljaju amblem jezika. Nakon opsežnog testiranja, objavljena je prva verzija Pythona 3.0. Obje grane razvoja su trenutno podržane (Python 3.x i 2.x).

Python je nastao pod uticajem mnogih programskih jezika: Modula-3, C, C++, Smalltalk, Lisp, Fortran, Java, Miranda, Icon. Uprkos činjenici da Python ima prilično karakterističnu sintaksu, jedan od principa dizajna ovog jezika je princip najmanjeg iznenađenja.

Standard Library

Bogata standardna biblioteka jedna je od atrakcija Pythona. Postoje alati za rad sa mnogim mrežnim protokolima i internet formatima. Postoje moduli za rad sa regularnim izrazima, kodiranje teksta, multimedijalni formati, kriptografski protokoli, arhive. Pored standardne biblioteke, postoje mnoge biblioteke koje pružaju interfejs za sve sistemske pozive na različitim platformama.
Za Python je usvojena specifikacija programskog interfejsa baze podataka DB-API 2 i razvijeni su paketi koji odgovaraju ovoj specifikaciji za pristup različitim DBMS-ima: Oracle, MySQL, PostgreSQL, Sybase, Firebird (Interbase), Informix, Microsoft SQL Server i SQLite.
NumPy biblioteka za rad sa višedimenzionalnim nizovima omogućava vam da postignete performanse naučnih proračuna uporedivih sa specijalizovanim paketima. SciPy koristi NumPy i pruža pristup širokom spektru matematičkih algoritama. Numarray je posebno dizajniran za operacije sa velikim količinama naučnih podataka.
Python pruža jednostavan i zgodan C API za pisanje vlastitih modula u C i C++. Alat kao što je SWIG vam omogućava da gotovo automatski dobijete veze za korištenje C / C ++ biblioteka u Python kodu. Alat standardne biblioteke ctypes omogućava Python programima da direktno pristupe dinamičkim bibliotekama napisanim u C. Postoje moduli koji vam omogućavaju da ugradite C/C++ kod direktno u Python izvorne datoteke, kreirajući ekstenzije u hodu.
Python i velika većina njegovih biblioteka su besplatni i dolaze u izvornom kodu. Štaviše, za razliku od mnogih otvorenih sistema, licenca ni na koji način ne ograničava upotrebu Pythona u komercijalnom razvoju i ne nameće nikakve obaveze osim pripisivanja autorskih prava.

Prijave

Python je stabilan i široko rasprostranjen jezik. Koristi se u mnogim projektima iu različitim kapacitetima: kao glavni programski jezik ili za kreiranje ekstenzija i integraciju aplikacija. U Pythonu je implementiran veliki broj projekata, a aktivno se koristi i za izradu prototipova za buduće programe. Python koriste mnoge velike kompanije.
Python sa paketima NumPy, SciPy i MatPlotLib aktivno se koristi kao univerzalno okruženje za naučne proračune kao zamena za uobičajene specijalizovane komercijalne pakete Matlab, IDL, itd.
Profesionalni 3D grafički programi kao što su Houdini i Nuke koriste Python za proširenje standardnih karakteristika programa.

Izvori

Prezentacije

Zadaća

Pripremite poruke:

  • Python kao alat za naučnike
  • Python i Ruby (poređenje)
  • python i web
  • Kreiranje prozorskih aplikacija sa Pythonom i grafičkim bibliotekama (wxPython, PyQt, PyGTK, itd.)

Jednom davno, na jednom zatvorenom forumu, pokušao sam da podučavam Python. Generalno, tu su stvari zastale. Bilo mi je žao napisanih lekcija, pa sam odlučio da ih objavim za širu javnost. Iako prvi, najjednostavniji. Postaje zanimljivije, ali možda neće biti zanimljivo. Generalno, ovaj post će biti probni balon, ako vam se sviđa, proširiću ga dalje.

Python za početnike. Prvo poglavlje. "o čemu smo"

Za svaki slučaj, malo dosadne "evangelizacije". Kome je to dosadilo, možete preskočiti nekoliko pasusa.
Python (izgovara se "Python", a ne "python") je skriptni jezik koji je razvio Guido van Rossum kao jednostavan jezik koji je lako naučiti za početnike.
Danas je Python široko korišten 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 Zope Application server 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 skriptni jezik u mnogim igrama, a ne samo (u uredskom paketu OpenOffice.org, Blender 3d editor, Postgre DBMS)
- Upotreba u naučnim proračunima (sa SciPy i numPy paketima za proračune i PyPlot za crtanje, Python postaje skoro uporediv sa paketima kao što je MatLab)

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

1. Sam tumač, možete ga nabaviti ovdje (http://python.org/download/).
2. Razvojno okruženje. Nije potrebno započeti, a IDLE uključen u distribuciju je pogodan za početnika, 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 Pythona.

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

Takođe možete pisati programe u fajlove sa ekstenzijom py, u svom omiljenom uređivaču teksta, koji ne dodaje svoje znakove za označavanje tekstu (nijedan Word neće učiniti). Takođe je poželjno da ovaj uređivač može da pravi "pametne tabove" i da ne zamenjuje razmake tabulatorom.
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:

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

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 mogućnosti otklanjanja 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 implicitnu konverziju tipa (Pyton) i nestrogi, koji izvode implicitne konverzije tipa (npr. VB, u koji možete lako dodati string "123" i broj 456).
Nakon što smo se pozabavili Pythonovom klasifikacijom, pokušajmo se malo "poigrati" sa 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 više varijabli odjednom. Kada interpretatoru kažete ime varijable interaktivno, on ispisuje njenu vrijednost.

Sljedeće što trebate znati je kako se grade osnovne algoritamske jedinice - grane i petlje. Za početak, potrebna nam je mala pomoć. U Pythonu ne postoji poseban graničnik bloka koda, njihovu ulogu igra uvlačenje. 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 je specificiran korištenjem if naredbe koja završava sa ":". Alternativni uslovi koji će biti ispunjeni ako je prvi test "neuspio" dati su naredbom elif. Konačno, else specificira granu koja će se izvršiti ako se nijedan od uslova ne podudara.
Imajte na umu da nakon što ukuca if, tumač pokazuje promptom "..." da čeka da se unos nastavi. Da biste mu rekli da smo gotovi, morate unijeti prazan niz.

(Iz nekog razloga, primjer sa granama razbija oznaku na Habréu, uprkos plesovima sa oznakama pre i code. Oprostite na neugodnosti, bacio sam ga ovdje pastebin.com/f66af97ba, ako mi neko kaže šta nije u redu, ja ću budi veoma zahvalan)

ciklusa.

Najjednostavniji slučaj petlje je while petlja. Uzima uslov kao parametar 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 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:
timovi

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 ........... !

Dakle, možemo rastaviti string na znakove.
Šta učiniti ako nam je potrebna petlja koja se ponavlja određeni broj puta? Vrlo jednostavno, funkcija raspona će priskočiti u pomoć.

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

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 ciklusom.

>>> 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 on rukuje I/O.

Za izlaz se koristi naredba print, koja ispisuje sve svoje argumente u ljudskom čitljivom obliku.

Za unos na konzoli 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 () slične akcije, ne preporučuje se korištenje u programima, jer interpretator pokušava izvršiti sintaksičke izraze unesene pomoću nje, što predstavlja ozbiljnu sigurnosnu rupu u programu.

To je sve za prvu lekciju.

Zadaća.

1. Napišite program za izračunavanje hipotenuze pravouglog trougla. Dužina nogavica se traži od korisnika.
2. Napišite program za pronalaženje korijena kvadratne jednačine u općim terminima. Koeficijenti se traže od korisnika.
3. Napišite program za prikaz 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 u stupcu, jedan primjer po redu u sljedećem obliku (na primjer):
5 x 4 = 20
5 x 5 = 25
itd.

Uvod


U vezi sa trenutno uočenim brzim razvojem personalnog računarstva, dolazi do postepene promene zahteva za programskim jezicima. Interpretirani jezici počinju da igraju sve važniju ulogu, jer 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, najprikladniji izbor je interpretirani jezik, kao jednostavniji i fleksibilniji programski alat.

U tom smislu, posebno je zanimljivo 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 ipak 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, rečnici, tuple).

Prednosti 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 mogli su zauzimati različite količine memorije na različitim mašinama, a to je služilo kao prepreka u pisanju zaista prenosivog programa. Python nema ovaj nedostatak.

Sljedeća bitna karakteristika je proširivost jezika, koja je od velike važnosti, a kako piše sam autor, jezik je zamišljen upravo kao proširiv. To znači da postoji prostor 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-u i kompajliranjem programa, dobijate "prošireni" tumač sa 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 i na samom Pythonu i mogu ih razviti svi dovoljno vješti programeri. Sljedeći moduli su primjeri:

  • Numerički Python - napredne matematičke mogućnosti kao što su manipulacije cjelobrojnim vektorima i matricama;
  • Tkinter - izrada aplikacija pomoću grafičkog korisničkog interfejsa (GUI) zasnovanog na široko korišćenom Tk interfejsu na X-Windows;
  • OpenGL - korištenje opsežne biblioteke grafičkog modeliranja dvo- i trodimenzionalnih objekata Open Graphics Library kompanije Silicon Graphics Inc. 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.
Jezičke mane.
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 se više nego isplati prednostima jezika pri pisanju programa koji nisu previše kritični za brzinu izvršavanja.

Pregled funkcija


1. Python, za razliku od mnogih jezika (Pascal, C++, Java, itd.), ne zahtijeva deklaracije varijabli. Nastaju na mjestu njihove inicijalizacije, tj. prvi put kada se varijabli dodjeljuje vrijednost. To znači da je tip varijable određen tipom dodijeljene vrijednosti. U tom pogledu, Python liči na Basic.
Tip varijable nije nepromjenjiv. Bilo koja dodjela joj je ispravna, a 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 dobrom kvalifikacijom, 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; STL (Standard Template Library) je razvijen za C++, koji 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(rječnik), koji se ponekad nazivaju kartice(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 homogeni. A ono što razlikuje torku od liste je to što se tuple ne može modificirati, 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 list-konstantom. Sintaktički, tuple je specificiran popisom svih elemenata odvojenih zarezima, a svi su zatvoreni u zagradama:

  2. (1, 2, 5, 8)
    (3.14, ‘string’, -4)
    Svi elementi su indeksirani od nule. Da biste dobili i-ti element, potrebno je da navedete ime tuple praćeno indeksom i u uglastim zagradama. primjer:
    t = (0, 1, 2, 3, 4)
    ispiši t, t[-1], t[-3]
    Rezultat: 0 4 2
    Prema tome, tuple bi se mogao nazvati konstantnim vektorom ako su njegovi elementi uvijek homogeni.
  3. Lista . Dobar, poseban primjer liste je Turbo Pascal string. Elementi niza su pojedinačni znakovi, njegova dužina nije fiksna, moguće je obrisati 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, liste se mogu mijenjati po volji. Elementima se pristupa na isti način kao u tuple. primjer:
    l = ]
    ispisati l, l, l[-2], l[-1]
    Rezultat: 1 s (2,8) 0
  5. Vokabular . Podsjeća na tip zapisa (zapis) u Pascalu ili strukture (strukture) u C-u. Međutim, umjesto sheme "polje zapisa" - "vrijednost", ovdje se 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 razdvojenih dvotočkama), odvojenih zarezima i zatvaranjem 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
    print d["a"], d["b"], d, d["name"]
    Rezultat: 1 3,14 3,14 Ivan
    Za dodavanje novog para "ključ"-"vrijednost" dovoljno je dodijeliti odgovarajuću vrijednost elementu sa novim ključem:
    d["new"] = "nova vrijednost"
    print d
    Rezultat: ("a":1, "b":3, 5:3.14, "ime":"Jovan", "novo":"nova vrijednost")

3. Za razliku od Pascala, C, C++, Python ne podržava pokazivače, dinamičku memoriju i aritmetiku adresa. 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 karakteristika Pythona je kako se jedna varijabla dodjeljuje drugoj, tj. kada je s obje strane operatera " = " su 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 koje označava istu memorijsku lokaciju kao i stara varijabla. U ovom slučaju, promjena vrijednosti označene novom varijablom će dovesti do promjene vrijednosti stare, jer oni zapravo znače istu stvar.

Kada dodjela dovede do stvaranja novog objekta (ovdje, objekta u smislu komada memorije za pohranjivanje vrijednosti nekog tipa) i kopiranja sadržaja varijable koja mu se pripisuje, ovaj slučaj ćemo nazvati semantiku kopiranja. Dakle, ako je na snazi ​​semantika 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 nizovi, tada se primjenjuje semantika kopiranja, ali ako je desna strana instanca klase, liste, rječnika ili tuple, tada se primjenjuje semantika pokazivača. primjer:
a = 2; b = a; b = 3
print " copy semantika: 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 o čemu se radi, daću vam drugačiji pogled na zadatak u Pythonu. Ako smo se u jezicima kao što su Basic, Pascal, C / C ++ bavili varijablama "kapaciteta" i konstantama koje su pohranjene u njima (numerički, karakterni, nizovi - nije važno), a operacija dodjeljivanja značila je "ulazak" u konstanta u dodijeljenu varijablu , tada u Pythonu već moramo raditi sa varijablama-"names" i objektima koje oni imenuju. (Primijetite neku analogiju sa Prologom?) Š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 objektu dodijeli varijabla, varijabla postaje njeno "ime", a objekt može imati bilo koji broj takvih "imena" i sva 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, tuple, stringovi (da, stringovi također; možete dodijeliti varijabli novi niz dobiven od starog, ali ne možete mijenjati sam stari niz).

Dakle, ako pišemo a = ; b = a; b = 3, Python ovo tumači kao:

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

  • To je "pseudo" semantika pokazivača.

    I posljednja stvar koju treba reći o ovome: iako nije moguće promijeniti strukturu tuple-a, promjenjive komponente sadržane u njemu i dalje su dostupne za modifikaciju:

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

    5. Prilično originalan je način na koji su operatori grupirani u Pythonu. Pascal za ovo koristi 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 jeziku Python sve je mnogo jednostavnije: odabir bloka naredbi vrši se pomicanjem odabrane grupe za jedan ili više razmaka ili tab znakova udesno u odnosu na naslov strukture na koju će se ovaj blok odnositi. Na primjer:

    ako je x > 0: print ‘ x > 0 ’ x = x - 8 ostalo: print ‘ x<= 0 ’ x = 0 Dakle, dobar stil pisanja programa, koji traže nastavnici Pascala, C++, Jave itd., ovdje se stiče od samog početka, jer jednostavno ne funkcionira drugačije.

    Opis jezika. Kontrolne strukture



    Rukovanje izuzecima


    probaj:
    <оператор1>
    [osim[<исключение> [, <переменная>] ]:
    <оператор2>]
    [ostalo <оператор3>]
    Izvedeno<оператор1>ako se dogodi izuzetak<исключение>, onda<оператор2>. Ako a<исключение>ima vrijednost, ona je dodijeljena<переменной>.
    U slučaju uspješnog završetka<оператора1>, izvedeno<оператор3>.
    probaj:
    <оператор1>
    konačno:
    <оператор2>
    Izvedeno<оператор1>. Ako nisu izbačeni izuzeci, onda<оператор2>. inače,<оператор2>i odmah se izbacuje izuzetak.
    podići <исключение> [<значение>] Dobacuje izuzetak<исключение>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



    Class Declaration



    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.value = "(!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 dio elemenata s od i do j-1 zamjenjuje se sa t (t također može biti lista).
    del s uklanja s dio (isto kao s = ).
    s.append(x) dodaje element x na kraj s.
    s.count(x) vraća broj elemenata s jednak x.
    s.index(x) vraća najmanji i takav da je s[i]==x.
    s.insert(i,j) dio s, počevši od i-tog elementa, pomjeren je udesno, a s[i] je dodijeljen x.
    s.ukloni(x) isto kao del s[ s.index(x) ] - uklanja prvi element s jednak x.
    s.reverse() piše niz obrnutim redoslijedom
    sortiraj() sortira listu uzlaznim redoslijedom.

    Operatori za rječnike


    File objekti


    Kreiran od strane ugrađene funkcije otvori()(vidi opis ispod). Na primjer: f = open('mydan.dat','r').
    Metode:

    Ostali jezički elementi i ugrađene funkcije


    = zadatak.
    print [ < c1 > [, < c2 >]* [, ] ] izlazi vrijednosti< c1 >, < c2 >na standardni izlaz. Stavlja razmak između argumenata. Ako na kraju liste argumenata nema zareza, skače se na novi red.
    trbušnjaci (x) vraća apsolutnu vrijednost x.
    prijaviti ( f , <аргументы>) poziva funkciju (ili metodu) f sa< аргументами >.
    chr(i) vraća niz od jednog karaktera sa ASCII kodom i.
    cmp(x, y) vraća negativnu, nulu ili pozitivnu vrijednost ako je, respektivno, x<, ==, или >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).
    evaluacija(e)
    vraća objekat dat u s kao string. S može sadržavati bilo koju jezičku strukturu. S također može biti kodni objekt, na primjer: x = 1 ; incr_x = eval("x+1") .
    float(x) vraća realnu vrijednost jednaku broju x.
    hex(x) vraća string koji sadrži heksadecimalni prikaz broja x.
    unos(<строка>) displeji<строку>, čita i vraća vrijednost iz standardnog unosa.
    int(x) vraća cjelobrojnu vrijednost x.
    objektiv(a) vraća dužinu (broj elemenata) objekta.
    dugo (x) vraća vrijednost tipa long integer x.
    max(s), min(e) vraćaju najveći i najmanji element niza s (tj. s je string, lista ili tuple).
    oktobar (x) vraća string koji sadrži prikaz broja x.
    otvoren(<имя файла>, <режим>='r' ) vraća objekt datoteke otvoren za čitanje.<режим>= 'w' - otvoren za pisanje.
    ord(c) vraća ASCII karakterni kod (niz dužine 1) c.
    pow (x, y) vraća x na stepen y.
    raspon (<начало>, <конец>, <шаг>) vraća listu cijelih brojeva većih ili jednakih<начало>i manji od<конец>generisan sa datom<шагом>.
    raw_input( [ <текст> ] ) displeji<текст>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: if type(x) == type(''): print ' ovo je niz '
    xrange (<начало>, <конец>, <шаг>) slično rasponu, ali samo simulira listu bez kreiranja. Koristi se u for petlji.

    Posebne funkcije za rad sa listama


    filter(<функция>, <список>) vraća listu tih elemenata<спиcка>, za koji<функция>uzima vrijednost "true".
    mapa(<функция>, <список>) primjenjuje<функцию>svakom elementu<списка>i vraća listu rezultata.
    smanjiti ( f , <список>,
    [, <начальное значение> ] )
    vraća vrijednost dobivenu "reduciranjem"<списка>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 elementom<списка>. Rezultat koji vraća f dodjeljuje se p. Nakon ponavljanja svega<списка>smanjiti povrat str.
    Koristeći ovu funkciju, možete, na primjer, izračunati zbir elemenata liste: def func (crveno, el): vrati red+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: >>>ispis filtera (lambda x: x>3, ) >>>ispis karte (lambda x: x*2, ) >>>p=smanji (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) gotovina(x) ldexp(x,y) sqrt(x)
    asin(x) exp(x) log(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) sin(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, generisanje stabala.

    Književnost


    1. Budd T. Objektno orijentirano programiranje. - Sankt Peterburg: 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 o programiranju u Pythonu. (http://sultan.da.ru)

    (prijevod)

    Na web stranici Poromenos "Stuff" objavljen je članak u kojem se u sažetom obliku govori o osnovama jezika Python. Nudim vam prijevod ovog članka. Prijevod nije doslovan. Pokušao sam da objasnim u više detaljno opisati neke tačke koje možda nisu jasne.

    Ako razmišljate o učenju Pythona, ali ne možete pronaći odgovarajući vodič, onda će vam ovaj članak biti od velike pomoći! 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, ali nadam se da će i početnicima ovaj materijal biti koristan. Pažljivo pročitajte svaki pasus. Zbog sažetosti materijala, neke teme su obrađene površno, ali sadrže sav potreban materijal.

    Osnovna svojstva

    Python ne zahtijeva eksplicitnu deklaraciju varijabli, objektno orijentiran je jezik koji osjetljiv na velika i mala slova (varijabla var nije ekvivalentna Var ili VAR su tri različite varijable).

    Sintaksa

    Prvo, vrijedi napomenuti zanimljivu karakteristiku Pythona. Umjesto toga, ne sadrži operatorske zagrade (početak..kraj u pascalu ili (..) u C). blokovi su uvučeni: razmaci ili tabulatori, a unos u blok naredbi vrši se dvotočkom. Komentari u jednom redu počinju znakom funte "#", komentari u više redova počinju i završavaju sa tri dvostruka navodnika """".

    Za dodjelu vrijednosti varijabli koristi se znak "=", a za poređenje - "==". Za povećanje vrijednosti varijable ili dodavanje u niz koristi se 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

    Nizovi zatvoreni u tri dvostruka navodnika se zanemaruju"""

    >>> mystring = "Zdravo"

    >>> mystring += "svijet."

    >>> print mystring

    Zdravo svijete.

    # Sljedeći red se mijenja

    Vrijednosti varijabli na mjestima. (Samo jedan red!)

    >>> myvar, mystring = mystring, myvar

    Strukture podataka

    Python sadrži strukture podataka kao što su liste (liste), torke (torke) i rječnici (rječnici). Liste su slične jednodimenzionalnim nizovima (ali možete koristiti Listu koja uključuje 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 posljednjem elementu se može pristupiti 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 #Promijeni posljednji element liste

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

    >>> mydict["pi"] = 3.15 #Promijenite unos u rječniku 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 tom slučaju ćete dobiti dio niza, od prvog indeksa do drugog, uključujući. Ako prvi element nije naveden, tada brojanje počinje od početka niza, a ako posljednji element nije naveden, tada se niz čita do posljednjeg elementa. Negativne vrijednosti određuju položaj elementa od kraja. Na primjer:

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

    >>> print mylist[:] #Pročitaj sve elemente niza

    ["Stavka liste 1", 2, 3.1400000000000001]

    >>> print mylist #Pročitajte nulu i prvi element niza.

    ["Stavka liste 1", 2]

    >>> print mylist[-3:-1] #Čitanje elemenata od nule (-3) do sekunde (-1) (nije uključeno)

    ["Stavka liste 1", 2]

    >>> print mylist #Čitanje elemenata od prvog do posljednjeg

    Strings

    Stringovi u Pythonu odvojeno dvostrukim navodnicima """ ili jednostrukim navodnicima """. Jednostruki navodniki mogu biti prisutni unutar dvostrukih navodnika ili obrnuto. Na primjer, redak "Rekao je "zdravo"!" biće prikazano kao "On je rekao zdravo!". Ako trebate koristiti niz od nekoliko redaka, onda ovaj niz mora početi i završiti s tri dvostruka navodnika """". Možete zamijeniti elemente iz tuple ili rječnika u predložak niza. Znak postotka "%" između string i tuple zamjenjuje znakove u nizu "%s" po elementu tuple. Rječnici vam omogućavaju da umetnete element sa datim indeksom u niz. Da biste to učinili, koristite konstrukciju "%(index)s" u U ovom slučaju, umjesto "%(index)s", vrijednost rječnika pod datim indeksom će biti zamijenjena indeksom.

    >>>ispiši "Ime: %s\nBroj: %s\nNiz: %s" % (ime moje klase, 3, 3 * "-")

    Ime: Poromenos

    Broj: 3

    niz: ---

    strString = """Ovaj tekst se nalazi

    na više linija

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

    Ovo je test.

    Operateri

    Dok, ako , za naredbe čine naredbe poteza. Ne postoji analog naredbi select, tako da morate zaobići if . Naredba for uspoređuje varijabla i lista. Da biste dobili listu cifara ispred broja - koristite raspon ( ). Evo primjera korištenja operatora

    rangelist = range(10) #Nabavite listu od deset cifara (od 0 do 9)

    >>> štampaj listu raspona

    za broj na listi raspona: #Sve dok je broj varijable (koji se svaki put povećava za jedan) na listi...

    # 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 u (3, 4, 7, 9)...

    # Operacija "break" obezbeđuje

    # izađite iz petlje u bilo kojem trenutku

    Pauza

    ostalo:

    # "nastavi" "scrolls"

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

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

    Nastavi

    ostalo:

    # "drugo" je opciono. Uslov 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

    Koristi se za deklarisanje funkcije ključna riječ "def". Argumenti funkcije navedeni su u zagradama iza imena funkcije. Možete specificirati 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, oni uzimaju vrijednost deklariranu po defaultu,

    # 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 = myfunction("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 "__" (npr. "__myprivatevar"). Također možemo dodijeliti vrijednost varijabli klase izvana. primjer:

    classMyclass:

    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 = Myclass()

    >>> classinstance.common

    >>> classinstance2.common

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

    # i njegove vrijednosti u objektima inicijaliziranim klasom Myclass

    >>>Myclass.common = 30

    >>> classinstance.common

    >>> classinstance2.common

    # 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 utjecati

    # varijabilnih objekata ove klase

    >>> classinstance.common

    >>> classinstance2.common

    # Sljedeća klasa je potklasa Myclass

    # nasljeđuje svoja svojstva i metode, ko god može klasa

    # biti naslijeđen iz nekoliko klasa, u ovom slučaju unos

    # ovako: class 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

    Izuzeci u Pythonu imaju strukturu try-except:

    defsomefunction():

    probaj:

    # Deljenje sa nulom izaziva grešku

    10 / 0

    Osim ZeroDivisionError:

    # Ali program ne "izvodi ilegalnu operaciju"

    # A obrađuje blok izuzetka koji odgovara grešci "ZeroDivisionError".

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

    >>> fnexcept()

    Ups, nevažeće.

    Uvoz

    Eksterne biblioteke se mogu uključiti korišćenjem procedure uvoza, gde je naziv uključene biblioteke. 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 pohraniti strukturu liste u binarnu datoteku, pročitati je i pohraniti 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 = file(r"C:\binary.dat", "w")

    pickle.dump(mylist, myfile)

    myfile.close()

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

    myfile.write("Ovo je uzorak niza")

    myfile.close()

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

    >>> print myfile.read()

    "Ovo je uzorak niza"

    myfile.close()

    # Otvorite fajl za čitanje

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

    loadedlist = pickle.load(myfile)

    myfile.close()

    >>>štampaj učitanu listu

    ["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 izjave deklaracije strukture liste. Naredba for vam omogućava da postavite elemente liste u određenom nizu, a if - omogućava vam da odaberete elemente prema uslovu.

    >>> lst1 =

    >>> lst2=

    >>> print

    >>> print

    # Operator "bilo koji" vraća true if iako

    # ako je ispunjen jedan od uslova uključenih u njega.

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

    Istinito

    # Sljedeća procedura broji broj

    # odgovarajućih stavki na listi

    >>> suma (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 proglasiti varijablu dostupnu samo za ovu funkcija.

    broj = 5

    def myfunc():

    # Izlazi 5

    štampaj broj

    definiraj anotherfunc():

    # Ovo izaziva 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.

    štampaj broj

    Broj = 3

    def yetanotherfunc():

    globalni broj

    # I samo iz ove funkcije se mijenja vrijednost varijable.

    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 zato što su glavne Python biblioteke
      su napisani u C++ i zadacima je potrebno manje vremena da se završe nego na drugim jezicima visokog nivoa.
    • S tim u vezi, možete napisati vlastite 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.
    • Skripte napisane pomoću Pythona rade na većini modernih operativnih sistema. Ova prenosivost omogućava da se Python koristi u širokom spektru aplikacija.
    • 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šku modernih tehnologija u standardnim bibliotekama možemo zahvaliti činjenici da je Python bio otvoren za sve koji žele.