Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Programi
  • Python jezik. Python za mašinsko učenje

Python jezik. Python za mašinsko učenje

Program je skup algoritama koji osiguravaju izvršenje potrebnih radnji. Konvencionalno, na isti način možete programirati običnu osobu pisanjem preciznih naredbi kako bi, na primjer, skuhali čaj. Ako potonja opcija koristi prirodni govor (ruski, ukrajinski, engleski, korejski itd.), Tada će za računar biti potreban poseban programski jezik. Python je jedan od njih. Programsko okruženje će naknadno prevesti komande u i svrha osobe za koju je algoritam kreiran biće ispunjena. Python ima svoju sintaksu, o kojoj će biti riječi u nastavku.

Istorija jezika

Razvoj je započeo 1980-ih i završio 1991. Jezik Python kreirao je Guido van Rossum. Iako je glavni simbol "Pythona" zmija, ime je dobila po američkoj humorističnoj emisiji.

Prilikom kreiranja jezika, programer je koristio neke komande posuđene iz postojećih Pascal, C i C ++. Nakon što je prva zvanična verzija izašla na internet, cijela grupa programera se pridružila kako bi je usavršili i poboljšali.

Jedan od faktora koji je omogućio da Python postane prilično poznat je dizajn. Mnogi vrlo uspješni stručnjaci prepoznaju ga kao jednog od najboljih.

Karakteristike "Pythona"

Programski jezik Python za početnike je odličan učitelj. Ima prilično jednostavnu sintaksu. Biće lako razumjeti kod, jer ne uključuje mnogo pomoćnih elemenata, a posebna struktura jezika će vas naučiti kako da uvučete. Naravno, dobro dizajniran program sa nekoliko komandi biće odmah razumljiv.

Mnogi sintaktički sistemi su izgrađeni oko objektno orijentisanog programiranja. Python nije izuzetak. Za šta je tačno rođen? Olakšaće obuku za početnike, pomoći će da upamte neke elemente već kvalifikovanih radnika.

Sintaksa jezika

Kao što je već spomenuto, kod je lak i jednostavan za čitanje. "Python" ima sekvencijalne komande koje se razlikuju po jasnoći izvršenja. U principu, korišteni operateri neće se činiti teškim čak ni početnicima. To je ono što Python čini drugačijim. Njegova sintaksa je lagana i jednostavna.

Tradicionalni operateri:

  • Kada postavljate uslov, koristite konstrukciju if-else. Ako ima previše takvih linija, možete unijeti naredbu elif.
  • Čas je za razumijevanje časa.
  • Jedan od jednostavnijih operatora je pass. Ne radi ništa, odgovara za prazne blokove.
  • Naredbe petlje su while i for.
  • Funkcija, metoda i generator su definirani zahvaljujući def.

Pored pojedinačnih reči, programski jezik Python vam omogućava da koristite izraze kao operatore. Koristeći ulančavanje nizova, možete smanjiti broj pojedinačnih naredbi i zagrada. Koriste se i takozvani lijeni proračuni, odnosno oni koji se izvode samo kada uvjet to zahtijeva. To uključuje i i ili.

Proces pisanja programa

Interpretator radi na jednom mehanizmu: kada se piše red (nakon kojeg se stavlja "Enter"), on se odmah izvršava i osoba već može vidjeti neki rezultat. Ovo je dovoljno korisno i zgodno za početnike ili one koji žele testirati mali dio koda. U kompajliranim okruženjima, prvo biste morali napisati cijeli program, a tek onda ga pokrenuti i provjeriti ima li grešaka.

Programski jezik Python (za početnike, kao što je već postalo jasno, idealan je) u Linux operativnom sistemu omogućava vam da radite direktno u samoj konzoli. Trebalo bi da napišete naziv koda "Python" na engleskom na komandnoj liniji. Neće biti teško napraviti svoj prvi program. Prije svega, treba imati na umu da ovdje možete koristiti tumač kao kalkulator. Budući da mladi i početnici specijalisti često nisu prijateljski raspoloženi sa sintaksom, algoritam se može napisati na sljedeći način:

Nakon svakog reda potrebno je staviti "Enter". Odgovor će biti prikazan odmah nakon što kliknete na njega.

Podaci koje koristi Python

Postoji nekoliko tipova podataka koje koriste računari (i programski jezici), i to je sasvim očigledno. Brojevi mogu biti razlomci, cijeli, mogu se sastojati od više cifara ili biti prilično masivni zbog razlomka. Da bi se prevodiocu olakšalo rad sa njima i da bi razumio o čemu ima posla, potrebno je postaviti određeni tip. Štoviše, potrebno je da se brojevi uklapaju u dodijeljenu memorijsku ćeliju.

Najčešći tipovi podataka koje koristi programski jezik Python su:

  • Integer. Govorimo o cijelim brojevima koji imaju i negativne i pozitivne vrijednosti. Nula je također uključena u ovaj tip.
  • Da bi interpretator shvatio da radi sa razlomcima, tip bi trebao biti postavljen na float point. U pravilu se koristi u slučaju korištenja brojeva s promjenjivom tačkom. Treba imati na umu da se prilikom pisanja programa morate pridržavati oznake "3.25", a ne koristiti zarez "3.25".
  • U slučaju dodavanja stringova, programski jezik Python vam omogućava da dodate tip stringa. Često se riječi ili fraze nalaze u jednom ili

Nedostaci i prednosti

U proteklih nekoliko decenija, ljudi su bili više zainteresovani za to kako da provedu više vremena savladavajući podatke, a manje vremena da ih obradi računar. Jezik o kojem postoje samo pozitivne strane je najviši kod.

Praktično nema nedostataka u Pythonu. Jedini ozbiljan nedostatak je sporost izvođenja algoritma. Da, ako ga uporedite sa "C" ili "Javom", on je, iskreno, kornjača. To se objašnjava činjenicom da je ovo

Programer se pobrinuo za dodavanje najboljeg u Python-u. Stoga, kada ga koristite, primijetit ćete da je apsorbirao najbolje karakteristike drugih viših programskih jezika.

U slučaju da ideja koju je implementirao tumač nije impresivna, to će biti moguće razumjeti gotovo odmah, nakon što napišete nekoliko desetina redova. Ako je program dobar, tada se kritični dio može poboljšati u bilo kojem trenutku.

Danas više od jedne grupe programera radi na poboljšanju "Pythona", tako da nije činjenica da će kod napisan u C++ biti bolji od onog kreiranog pomoću Pythona.

S kojom verzijom je najbolje raditi?

Sada se istovremeno široko koriste dvije verzije takvog sintaksnog sistema kao što je jezik Python. Za početnike će izbor između njih biti dovoljno težak. Treba napomenuti da je 3.x još uvijek u razvoju (iako je pušten u široku upotrebu), dok je 2.x potpuno finalizirana verzija. Mnogi ljudi savjetuju korištenje 2.7.8, jer praktički ne zaostaje i ne zbunjuje se. Nema radikalnih promjena u verziji 3.x, tako da se u svakom trenutku vaš kod može prenijeti u programsko okruženje uz ažuriranje. Za preuzimanje potrebnog programa, trebate otići na službenu web stranicu, odabrati svoj operativni sistem i pričekati dok se preuzimanje ne završi.

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

Brojevi u Pythonu su dovoljno jednostavni za deklariranje ili korištenje 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:

Želite ući u svijet programiranja i brzo napisati svojih prvih nekoliko programa? Ili sanjate o učenju novih jezika, ali ne znate odakle da počnete? Pogledajte kurseve o osnovama Python programiranja. Čitajte dalje za detalje o tome zašto se ovaj jezik preporučuje početnicima i koje programe možete kreirati pomoću njega.

Osnove Pythona za programere početnike

Python je moćan objektno orijentisani programski jezik visokog nivoa koji je kreirao Guido van Rossum. Ima sintaksu laku za korištenje, što ga čini idealnim jezikom za one koji prvi put pokušavaju naučiti programirati. Da biste nastavili svoje upoznavanje sa jezikom, možete pročitati knjigu Dmitrija Zlatopoljskog "Python - osnove programiranja". Ali počećemo sa samim osnovama. Postoji mnogo literature u ovoj oblasti. Druga opcija su knjige Harryja Percivala “Python. Test Driven Development”. Govori o jeziku sa praktične tačke gledišta.

Upotreba jezika u praksi

Dakle, šta se piše u Pythonu ili "Python", kako ga još nazivaju među programerima, i zašto ga učiti? Python je jezik opšte namene. Koristi se za pisanje web aplikacija koristeći različite okvire, sistemske uslužne programe i aplikacije za automatizaciju različitih akcija. Kursevi o osnovama programiranja u Pythonu sada su dovoljni da pokušate sami naučiti jezik.

Ovo bi mogla biti okosnica nove profesije, jer ima širok spektar aplikacija od web razvoja, naučnog i matematičkog računarstva do desktop grafičkih korisničkih interfejsa. Također dobro funkcionira za izradu prototipa. To jest, prvo se kreira prototip u Pythonu, a zatim se koncept može prenijeti na brže i kompajlirane programske jezike. Koristeći ovaj jezik, možete kreirati desktop aplikacije sa grafičkim interfejsom i pisati igre, za koje postoji posebna biblioteka. Osnove algoritama i programiranja u Pythonu pogodne su za kreiranje aplikacija za mobilne uređaje.

Zašto naučiti Python

Python također koristi vrlo jednostavnu i konciznu sintaksu i dinamičko kucanje. Poznavanje osnova algoritama i programiranja u Pythonu omogućava vam da brzo kreirate program i pokrenete ga. Ako vam je potreban jezik za brzu izradu aplikacija i skripti u više područja, teško ćete pronaći bolju alternativu od Pythona. Ima niz očiglednih prednosti u odnosu na druge programske jezike:

  • univerzalna upotreba - na ovom jeziku se mogu pisati različite vrste aplikacija, stoga, uz njegov razvoj, postoje široke mogućnosti za korištenje ovog jezika;
  • jednostavnost - jezik je prvobitno razvijen da bi se pojednostavio rad s njim;
  • popularnost među programerima i potražnja na tržištu rada - Python se široko koristi u raznim projektima;
  • veliki broj dostupnih biblioteka proširuje mogućnosti jezika i čini ga još univerzalnijim;
  • cross-platforma - jednom napisan program će raditi na bilo kojoj platformi gdje postoji jezički tumač;
  • jedna od važnih prednosti jezika je njegova visokokvalitetna dokumentacija.

Python je također jedan od najstarijih jezika za web razvoj koji je kreirao Guido van Rossum u Nacionalnom istraživačkom institutu za matematiku i računarstvo u Holandiji početkom 90-ih. Jezik je u velikoj mjeri posuđen iz C++, C i drugih skriptnih jezika. Koristi ključne riječi na engleskom, koje čine mnogo Python programiranja. Ako ih savladate, onda možete pretpostaviti da ste većim dijelom već savladali jezik. Ovo će potrajati i morat ćete razumjeti osnovne koncepte prije nego što počnete. Pa počnimo tako što ćemo ih upoznati.

Prednosti Pythona

Jedna od ključnih prednosti Python programiranja je njegova interpretativna priroda. To znači da se programski kod ne kompajlira u izvršnu datoteku, već ga interpretator izvršava svaki put kada ga korisnik pokrene. Stoga, da biste pokrenuli program, morate ga imati na računaru na kojem ćete kreirati programe. Tumač i standardna biblioteka dostupni su u binarnom ili izvornom obliku sa Python web stranice i mogu nesmetano raditi na svim glavnim operativnim sistemima.

Dakle, glavne prednosti Pythona uključuju:

  • Priroda tumačenja: Jezik se obrađuje od strane tumača u toku izvođenja, kao što su PHP ili PERL, tako da ne morate kompajlirati program prije izvršenja.
  • Interaktivnost: Možete direktno komunicirati s interpretatorom kada pišete svoj program.
  • Idealno za početnike: Za programere početnike.
  • Python je odličan izbor jer podržava razvoj aplikacija, od igara preko pretraživača do obrade teksta.

    Kako instalirati i pokrenuti interpreter

    Da biste počeli pisati u Pythonu, potrebno je da preuzmete i instalirate njegov interpreter na službenoj web stranici jezika, birajući verziju za svoj operativni sistem. Vrijedi napomenuti da postoje dvije grane jezika - druga i treća. Najbolje je da počnete učiti osnove Pythona 3 ako još niste instalirali drugu verziju. Kada instalirate na Windows, obavezno obratite pažnju da li su omogućene opcije Dodaj Python na putanju i Pip uslužni program. Jednom instaliran, možete ga pokrenuti. Da biste to uradili, u komandnoj liniji potrebno je da unesete: "python", i on će se pokrenuti. U prozoru se pojavljuju tri ugaone zagrade koje označavaju da ste u prevodiocu. Ovaj programski jezik je također slobodno distribuiran, a za njega možete pronaći savjete, alate treće strane, programe, module i dodatnu dokumentaciju.

    Ključne riječi u Pythonu

    U interpretatoru možete interaktivno izvoditi radnje na jeziku. Svaka radnja se izvodi odmah nakon pritiska na Enter. Možete ga koristiti kao napredni kalkulator. Ali pisanje velikog programa u interpretatoru oduzima previše vremena. Stoga je logično koristiti uređivače teksta. Gotov tekstualni fajl onda može da se izvrši od strane tumača. Jedna od osnova Pythona je da su svi blokovi u njemu uvučeni, tako da morate uvući blok da biste pokrenuli blok i izbrisali ga. Interpretator se može lako proširiti novim tipovima podataka ili funkcijama u C ++ ili C. Programski jezik Python djeluje kao proširenje za prilagođene aplikacije. Ono što ovaj jezik čini tako lakim za učenje je činjenica da koristi engleske ključne riječi umjesto znakova interpunkcije i da ima manje sintaksičkih konstrukcija od drugih programskih jezika.

    Početak rada s Pythonom

    Prije nego što počnete izvan interpretatora, da biste kreirali program, morate otvoriti uređivač teksta i kreirati praznu datoteku sa utf-8 kodiranjem i postaviti ekstenziju “py”. U tu svrhu najbolje je koristiti posebne uređivače kodova za programere. U prvom redu morate navesti kodiranje. Redovi koji počinju znakom # smatraju se komentarima i ne izvršavaju se. Python se implicitno i dinamički kuca, tako da ne morate deklarirati varijable. Tipovi su nametnuti i varijable su također osjetljive na velika i mala slova, tako da se var i VAR tretiraju kao dvije odvojene varijable. Ako želite znati kako objekt funkcionira, trebate samo unijeti sljedeće: “help (object)”. Također možete koristiti naredbu dir (object) da saznate sve metode određene opcije, a možete koristiti __ doc__ objekat da saznate njegov docstring.

    Kako pokrenuti pisani program

    Također morate pokrenuti napisani program na komandnoj liniji. Da biste to uradili, potrebno je da napišete ime tumača i, odvojeno razmakom, ime datoteke sa napisanim programom. Prilikom pokretanja programa morate navesti punu putanju do datoteke. Ovo nije uvijek lako, jer put može biti jako dugačak, pa je ponekad lakše promijeniti trenutni direktorij na komandnoj liniji i tamo pokrenuti interpreter. Da biste to učinili, idite na željeni direktorij, držite pritisnut tipku shift, kliknite desnom tipkom miša na direktorij i odaberite opciju „otvori komandni prozor“ u izborniku koji se otvori. Tada će se komandna linija pokrenuti u ovom direktoriju. Zatim, u prozoru konzole, potrebno je da unesete ime tumača i, odvojeno razmakom, ime datoteke koja se nalazi u njemu.

    Sintaksa jezika

    Osnove programiranja koristeći Python kao primjer se ne razlikuju mnogo od drugih jezika, ali varijable imaju malo drugačije značenje. Python nema potrebne znakove za dovršavanje naredbi. Svi blokovi su uvučeni, tako da se morate vratiti da biste pokrenuli blok i uklonili ga. Za komentare u više redova, morate koristiti višelinijske linije. Vrijednosti se dodjeljuju pomoću znaka “=”, a testiranje jednakosti se vrši sa dva od njih “==”. Možete povećati ili smanjiti vrijednosti koristeći = ili - = operatore sa zbrojem na desnoj strani. Ovo može raditi sa stringovima i drugim tipovima podataka. Također možete koristiti više varijabli u jednoj liniji.

    Tipovi podataka u Pythonu

    Pogledajmo sada tipove podataka. Python je zasnovan na strukturama podataka - dict, tuples i liste. Kompleti se mogu naći u biblioteci kompleta, koji su dostupni u svim verzijama Pythona. Liste su kao jednodimenzionalni nizovi, iako možete imati i liste drugih lista. Rječnici su u suštini asocijativni nizovi ili hash tablice. Tuples su jednodimenzionalni nizovi. Sada, nizovi zasnovani na Pythonu mogu biti bilo kog tipa, a ypes je uvijek nula. Negativni brojevi počinju od kraja do početka, a -1 je posljednji element. Varijable također mogu ukazivati ​​na funkcije.

    Stringovi u Pythonu

    Python stringovi mogu koristiti jednostruke ili dvostruke navodnike, a vi možete koristiti navodnike jedne vrste u nizu koristeći drugu vrstu. Višeredni nizovi su zatvoreni u jednostruke ili trostruke dvostruke navodnike. Da biste popunili nizove vrijednostima, možete koristiti modulo (%) operator iza kojeg slijedi tuple. Svaki% je zamijenjen elementom tuple s lijeva na desno, a možete koristiti i zamjene rječnika. Izjave za kontrolu toka Python-a su “while”, “for” i “if”. Za grananje, trebate koristiti “if”. Koristite “for” za nabrajanje kroz listu. Koristite raspon da dobijete listu brojeva.

    Funkcije u Pythonu

    Ključna riječ def se koristi za deklariranje funkcija. Vezivanje drugog objekta za varijablu uklanja stari i zamjenjuje nepromjenjive tipove. Opcijski argumenti se mogu specificirati u deklaraciji funkcije nakon potrebnih argumenata, dajući im zadane vrijednosti. U slučaju imenovanih argumenata, imenu argumenta se dodjeljuje vrijednost. Funkcije mogu vratiti torku, a vi možete efikasno vratiti više vrijednosti koristeći raspakiranje tuple. Parametri se prosljeđuju putem reference, ali tuples, ints, stringovi i drugi nepromjenjivi tipovi su nepromjenjivi jer se prosljeđuje samo memorijska lokacija elementa.

    Upravo ste započeli svoje upoznavanje sa jezikom, stoga se nemojte plašiti grešaka i pogledajte dostupne resurse kako biste nastavili sa učenjem ovog zanimljivog i korisnog programskog jezika.

    Python programiranje

    Dio 1. Jezičke karakteristike i osnove sintakse

    Serija sadržaja:

    Treba li naučiti Python?

    Python je jedan od najpopularnijih modernih programskih jezika. Pogodan je za različite zadatke i nudi iste mogućnosti kao i drugi programski jezici: dinamičnost, OOP podršku i višeplatformski. Razvoj Pythona započeo je Guido Van Rossum sredinom 1990-ih, tako da je do sada bilo moguće riješiti se standardnih "dječijih" bolesti, značajno razviti najbolje aspekte jezika i privući mnoge programere koji koriste Python za implementaciju njihove projekte.

    Mnogi programeri smatraju da je potrebno naučiti samo "klasične" programske jezike kao što su Java ili C++, jer drugi jezici još uvijek ne mogu pružiti iste mogućnosti. Međutim, u posljednje vrijeme se pojavilo uvjerenje da je poželjno da programer zna više od jednog jezika, jer mu to širi vidike, omogućava kreativnije rješavanje zadataka i povećava svoju konkurentnost na tržištu rada.

    Učenje usavršavanja dva jezika kao što su Java i C++ je teško i dugotrajno; osim toga, mnogi aspekti ovih jezika su u suprotnosti jedni s drugima. Istovremeno, Python je idealan za ulogu drugog jezika, jer se odmah asimiluje zahvaljujući već postojećem znanju u OOP-u, te činjenici da se njegove mogućnosti ne sukobljavaju, već dopunjuju iskustvo stečeno u radu sa drugim programiranjem. jezik.

    Ako programer tek počinje svoj put u oblasti razvoja softvera, onda će Python biti idealan "uvodni" programski jezik. Zbog svoje kratkoće, omogućit će vam da brzo savladate sintaksu jezika, a odsustvo "naslijeđa" u obliku aksioma koji su se formirali godinama pomoći će vam da brzo savladate OOP. Zbog ovih faktora, kriva učenja Pythona će biti prilično kratka, a programer će moći preći sa studija slučaja na komercijalne projekte.

    Stoga, da li je čitalac ovog članka iskusan programer ili početnik u oblasti razvoja softvera, odgovor na pitanje, koje je ujedno i naslov ovog odjeljka, trebao bi biti uvjerljivo „da“.

    Ova serija članaka osmišljena je da vam pomogne da uspješno savladate krivulju učenja pružajući dosljedno informacije od najosnovnijih principa jezika do njegovih naprednih mogućnosti u smislu integracije s drugim tehnologijama. Prvi članak će pokriti osnovne karakteristike i sintaksu Pythona. U budućnosti ćemo se osvrnuti na složenije aspekte rada sa ovim popularnim jezikom, posebno na objektno orijentirano programiranje u Pythonu.

    Python arhitektura

    Svaki jezik, bez obzira na programiranje ili komunikaciju, sastoji se od najmanje dva dijela – rječnika i sintakse. Jezik Python je organizovan na isti način, pružajući sintaksu za formiranje izraza koji čine izvršne programe, i rečnik - skup funkcionalnosti u obliku standardne biblioteke i dodataka.

    Kao što je pomenuto, Pythonova sintaksa je prilično sažeta, posebno u poređenju sa Javom ili C ++. S jedne strane, ovo je dobro, jer što je sintaksa jednostavnija, to je lakše naučiti i manje grešaka možete napraviti dok je koristite. Međutim, takvi jezici imaju nedostatak - uz njihovu pomoć možete prenijeti najjednostavnije informacije i ne možete izraziti složene strukture.

    Ovo se ne odnosi na Python, jer je to jednostavan, ali pojednostavljen jezik. Činjenica je da je Python jezik sa višim nivoom apstrakcije, višim, na primjer, od Jave i C++, i omogućava vam da prenesete istu količinu informacija u manjoj količini izvornog koda.

    Takođe, Python je jezik opšte namene, tako da se može koristiti u gotovo svim oblastima razvoja softvera (samostalni, klijent-server, Web aplikacije) i u bilo kojoj predmetnoj oblasti. Osim toga, Python se neprimjetno integrira sa postojećim komponentama, omogućavajući Python-u da bude ugrađen u postojeće aplikacije.

    Još jedna komponenta Pythonovog uspjeha su njegovi dodaci, standardni i specifični. Python standardni dodaci su dobro dizajnirana i dokazana funkcionalnost za rješavanje problema koji se javljaju u svakom projektu razvoja softvera, obrada stringova i tekstova, interakcija sa operativnim sistemom, podrška web aplikacijama. Ovi moduli su takođe napisani na Pythonu, tako da imaju svoje najvažnije svojstvo - cross-platform, što vam omogućava da bezbolno i brzo prenosite projekte sa jednog operativnog sistema na drugi.

    Ako se tražena funkcionalnost ne nalazi u standardnoj Python biblioteci, možete kreirati svoj vlastiti plug-in modul za kasniju ponovnu upotrebu. Ovdje je vrijedno napomenuti da se Python dodaci mogu kreirati ne samo u samom Pythonu, već i korištenjem drugih programskih jezika. U ovom slučaju, postaje moguće efikasnije implementirati zadatke koji zahtijevaju velike resurse, na primjer, složeno naučno računanje, ali prednost međuplatformskog se gubi ako plug-in jezik nije sam po sebi cross-platformski, kao što je Python.

    Python Runtime

    Kao što znate, svi programski jezici za više platformi izgrađeni su na istom modelu: oni su zaista prenosivi izvorni kod i runtime okruženje, koje nije prenosivo i specifično je za platformu. Ovo vrijeme izvođenja obično uključuje interpreter koji izvršava izvorni kod i razne uslužne programe potrebne za održavanje aplikacije — debuger, obrnuti asembler i tako dalje.

    Java runtime takođe uključuje kompajler jer izvorni kod treba da se prevede u bajt kod za Java virtuelnu mašinu. Python runtime uključuje samo interpreter, koji je takođe kompajler, ali kompajlira Python izvorni kod direktno u mašinski kod ciljne platforme.

    Trenutno postoje tri poznate implementacije vremena izvođenja za Python: CPython, Jython i Python.NET. Kao što ime govori, prvi okvir je implementiran u C, drugi u Javi, a posljednji u .NET platformi.

    CPython runtime se obično naziva samo Python, a kada ljudi govore o Pythonu, ovo je implementacija koja se najčešće spominje. Ova implementacija se sastoji od tumača i dodataka napisanih u C-u i može se koristiti na bilo kojoj platformi za koju je dostupan standardni prevodilac C. Osim toga, već postoje kompajlirane verzije runtime-a za različite operativne sisteme, uključujući različite verzije Windows-a OC i razne distribucije Linux. U ovom i narednim člancima, CPython će biti uzet u obzir, osim ako nije drugačije određeno.

    Jython runtime je Python implementacija za rad sa Java virtuelnom mašinom (JVM). Podržana je bilo koja verzija JVM-a, počevši od verzije 1.2.2 (trenutna Java verzija je 1.6). Jython zahtijeva instaliranu Java mašinu (Java runtime) i određeno poznavanje Java programskog jezika. Nije neophodno biti u stanju pisati izvorni kod u Javi, ali ćete morati da se bavite JAR datotekama i Java apletima, kao i dokumentacijom u JavaDOC formatu.

    Koju verziju okruženja odabrati zavisi isključivo od preferencija programera; generalno, preporučljivo je da i CPython i Jython ostanu na računaru, jer se međusobno ne sukobljavaju, već se međusobno nadopunjuju. CPython je brži jer ne postoji JVM međuverzija; pored toga, ažurirane verzije Python-a su prvo objavljene kao CPython okruženje. Međutim, Jython može koristiti bilo koju Java klasu kao ekstenziju i raditi na bilo kojoj platformi za koju postoji JVM implementacija.

    Oba runtime okruženja su izdata pod licencom kompatibilnom sa dobro poznatom GPL licencom, tako da se mogu koristiti za razvoj i komercijalnog i besplatnog ili slobodnog softvera. Većina Python dodataka također ima GPL licencu i može se slobodno koristiti u bilo kojem projektu, ali postoje komercijalna proširenja ili proširenja sa strožim licencama. Stoga, kada koristite Python u komercijalnom projektu, morate biti svjesni ograničenja licenci za dodatke.

    Početak rada s Pythonom

    Prije nego počnete koristiti Python, morate instalirati njegovo okruženje za izvršavanje - u ovom članku to je CPython i, shodno tome, python interpreter. Postoje različite metode instalacije: napredni korisnici mogu sami kompajlirati Python iz njegovog javnog izvornog koda, unaprijed izgrađene binarne datoteke za određeni operativni sistem također se mogu preuzeti sa www.python.org, i na kraju, mnoge Linux distribucije dolaze s unaprijed instaliranim Python interpreter. Ovaj članak koristi Windows verziju Pythona 2.x, ali navedeni primjeri mogu se pokrenuti na bilo kojoj verziji Pythona.

    Nakon što je instalater postavio Python binarne datoteke u navedeni direktorij, morate provjeriti vrijednosti sljedećih sistemskih varijabli:

    • PUT. Ova varijabla mora sadržavati putanju do direktorija u kojem je Python instaliran kako bi je operativni sistem mogao pronaći.
    • PYTHONHOME. Ova varijabla bi trebala sadržavati samo putanju do direktorija u kojem je Python instaliran. Ovaj direktorij bi također trebao sadržavati poddirektorij lib koji će tražiti standardne Python module.
    • PYTHONPATH. Varijabla sa listom direktorija koji sadrže module proširenja koji će se povezati na Python (stavke liste moraju biti odvojene sistemskim separatorom).
    • PYTHONSTARTUP. Opciona varijabla koja specificira putanju do Python skripte koja će se izvršiti svaki put kada se pokrene interaktivna sesija Python interpretatora.

    Komandna linija za rad sa interpretatorom ima sljedeću strukturu.

    PYTHONHOME \ python (opcije) [-s naredba | datoteka skripte | -] (argumenti)

    Python interaktivni način rada

    Ako pokrenete interpreter bez navođenja komande ili datoteke skripte, on će se pokrenuti u interaktivnom načinu. U ovom režimu se pokreće posebna Python školjka u koju se mogu uneti pojedinačne komande ili izrazi i njihova vrednost će se odmah proceniti. Ovo je vrlo zgodno kada učite Python, jer možete odmah provjeriti ispravnost jedne ili druge konstrukcije.

    Vrijednost procijenjenog izraza pohranjuje se u posebnu varijablu pod nazivom Single Underscore (_) tako da se može koristiti u narednim izrazima. Interaktivnu sesiju možete prekinuti pritiskom na Ctrl – Z na Windowsima ili Ctrl – D na Linuxu.

    Opcije su opcione vrijednosti niza koje mogu promijeniti ponašanje tumača tokom sesije; njihov značaj će biti razmatran u ovom i narednim člancima. Opcije su praćene ili jednom naredbom koju tumač mora izvršiti, ili putanjom do datoteke koja sadrži skriptu koju treba izvršiti. Vrijedi napomenuti da se naredba može sastojati od nekoliko izraza, odvojenih tačkom i zarezom, i mora biti zatvorena u navodnicima kako bi je operativni sistem mogao ispravno proslijediti interpretatoru. Argumenti - oni parametri koji se prosleđuju na dalju obradu izvršnoj skripti; prosljeđuju se programu kao nizovi i razdvajaju razmacima.

    Da biste potvrdili da je Python instaliran i radi ispravno, možete pokrenuti sljedeće naredbe:

    c: \> python- v
    c: \> python –c “vrijeme uvoza; print time.asctime () "

    Opcija –v prikazuje verziju Python implementacije koja se koristi i izlazi, dok druga komanda ispisuje sistemsko vrijeme na ekran.

    Python skripte možete pisati u bilo kojem uređivaču teksta, jer su to obične tekstualne datoteke, ali postoje i posebna razvojna okruženja dizajnirana za rad sa Pythonom.

    Osnove Python sintakse

    Python izvorne skripte se sastoje od tzv logičke linije, od kojih se svaki redom sastoji od fizičke linije... Simbol # se koristi za označavanje komentara. Interpretator ignorira komentare i prazne redove.

    Sljedeći je vrlo važan aspekt koji može izgledati čudno programerima koji uče Python kao drugi programski jezik. Činjenica je da u Pythonu ne postoji simbol koji bi bio odgovoran za razdvajanje izraza jedan od drugog u izvornom kodu, kao što je, na primjer, tačka-zarez (;) u C++ ili Javi. Tačka i zarez vam omogućava da odvojite više naredbi ako su na istoj fizičkoj liniji. Također, ne postoji takva konstrukcija kao što su vitičaste zagrade (), koja vam omogućava da kombinirate grupu instrukcija u jedan blok.

    Fizičke linije su odvojene samim znakom na kraju reda, ali ako je izraz predugačak za jedan red, tada se dvije fizičke linije mogu spojiti u jednu logičku liniju. Da biste to učinili, morate unijeti obrnutu kosu crtu (\) na kraju prvog reda, a zatim će sljedeći red tumačiti kao nastavak prvog, ali ne možete imati druge znakove u prvom redu nakon znak \, na primjer, komentar sa #. Za isticanje blokova koda koristi se samo uvlačenje. Jednako uvučeni logički redovi čine blok, a blok se završava kada se pojavi manji uvučeni logički red. Zbog toga prvi red u Python skripti ne bi trebao biti uvučen. Učenje ovih jednostavnih pravila pomoći će vam da izbjegnete većinu grešaka povezanih s učenjem novog jezika.

    Nema drugih radikalnih razlika u odnosu na druge programske jezike u Python sintaksi. Postoji standardni skup operatora i ključnih riječi, od kojih je većina već poznata programerima, a one specifične za Python će biti obrađene u ovom i narednim člancima. Koriste se i standardna pravila za određivanje identifikatora varijabli, metoda i klasa - ime mora početi donjom crtom ili latiničnim znakom bilo kojeg velikog slova i ne može sadržavati simbole @, $,%. Također, samo jedan znak podvlake ne može se koristiti kao identifikator (pogledajte fusnotu o interaktivnom načinu rada).

    Tipovi podataka koji se koriste u Pythonu

    Tipovi podataka koji se koriste u Pythonu su također isti kao i u drugim jezicima - cjelobrojni i realni tipovi podataka; dodatno, podržan je složeni tip podataka - sa realnim i imaginarnim dijelom (primjer takvog broja je 1,5J ili 2j, gdje je J kvadratni korijen od -1). Python podržava nizove koji se mogu staviti u jednostruke, dvostruke ili trostruke navodnike, a stringovi, poput Java, su nepromjenjivi objekti, tj. ne mogu promijeniti svoju vrijednost nakon kreiranja.

    U Pythonu postoji i boolean tip podataka sa dvije vrijednosti - True i False. Međutim, starije verzije Python-a nisu imale ovaj tip podataka, a osim toga, bilo koji tip podataka mogao bi se prebaciti na Booleovu vrijednost True ili False. Svi brojevi različiti od nule i neprazni nizovi ili zbirke podataka tretirani su kao True, dok su prazne i nulte vrijednosti tretirane kao False. Ova karakteristika je sačuvana u novim verzijama Pythona, međutim, da bi se povećala čitljivost koda, preporučuje se korištenje bool tipa za logičke varijable. U isto vrijeme, ako trebate održati kompatibilnost unatrag sa starim Python implementacijama, tada biste trebali koristiti 1 (True) ili 0 (False) kao logičke vrijednosti.

    Funkcionalnost za rad sa skupovima podataka

    Python definira tri tipa kolekcija za pohranjivanje skupova podataka:

    • tuple;
    • lista (list);
    • rječnik (rječnik).

    Tuple je nepromjenjiv, uređen niz podataka. Može sadržavati elemente različitih tipova, kao što su druge tuple. Tuple je definiran u zagradama, a njegovi elementi su odvojeni zarezima. Posebna ugrađena funkcija tuple () omogućava vam da kreirate tuple od datog niza podataka.

    Lista je promjenjivi, uređeni niz stavki. Stavke liste su takođe odvojene zarezima, ali su navedene u uglastim zagradama. Funkcija lista () je predložena za kreiranje lista.

    Rječnik je hash tablica koja pohranjuje element zajedno sa njegovim identifikatorom ključa. Naknadni pristup elementima se također vrši pomoću ključa, tako da je jedinica za pohranu u rječniku par objekt-ključ i pripadajući objekt vrijednosti. Rječnik je promjenjiva, ali ne uređena kolekcija, tako da se redoslijed elemenata u rječniku može promijeniti tokom vremena. Rječnik je naveden u vitičastim zagradama, ključ je odvojen od vrijednosti dvotočkom, a sami parovi ključ/vrijednost su odvojeni zarezima. Funkcija dict () dostupna je za kreiranje rječnika.

    Listing 1 prikazuje primjere različitih kolekcija dostupnih u Pythonu.

    Listing 1. Tipovi kolekcija dostupni u Pythonu
    ('w', 'o', 'r', 'l', 'd') # torku od pet elemenata (2.62,) # torku od jednog elementa [“test”, “me”] # listu dva elementa # prazna lista (5: 'a', 6: 'b', 7: 'c') # 3-elementni rečnik sa ključevima tipa int

    Definiranje funkcija u Pythonu

    Iako Python podržava OOP, mnoge njegove karakteristike su implementirane kao zasebne funkcije; osim toga, moduli proširenja najčešće se izrađuju u obliku biblioteke funkcija. Funkcije se također koriste u klasama, gdje se tradicionalno nazivaju metodama.

    Sintaksa za definisanje funkcija u Pythonu je izuzetno jednostavna; uzimajući u obzir gore navedene zahtjeve:

    def FUNCTION_NAME (parametri): izraz # 1 izraz # 2 ...

    Kao što vidite, morate koristiti ključnu riječ def, dvotočku i uvlačenje. Pozivanje funkcije je također vrlo jednostavno:

    FUNCTION_NAME (parametri)

    Postoji samo nekoliko tačaka specifičnih za Python koje treba uzeti u obzir. Kao iu Javi, primitivne vrijednosti se prosljeđuju po vrijednosti (kopija parametra se prosljeđuje funkciji i ne može promijeniti vrijednost postavljenu prije nego što je funkcija pozvana), a složeni tipovi objekata se prosljeđuju referencom (referenca se prosljeđuje funkciji i može promijeniti objekt).

    Parametri se mogu proslijediti bilo jednostavno redoslijedom nabrajanja ili imenom, u ovom slučaju nije potrebno naznačiti prilikom pozivanja onih parametara za koje postoje zadane vrijednosti, već prosljeđivati ​​samo one obavezne ili mijenjati redoslijed parametara prilikom pozivanja parametara. funkcija:

    # funkcija koja vrši dijeljenje cijelih brojeva korištenjem naredbe // def foo (delimoe, delitel): return delimoe // delitel print divide (50,5) # rezultat rada: 10 print dijeljenje (delitel = 5, delimoe = 50) # rezultat rad: 10

    Python funkcija mora vratiti vrijednost — ili eksplicitno sa povratnom naredbom nakon koje slijedi povratna vrijednost, ili, u odsustvu povratne izjave, konstanta None se vraća kada se dostigne kraj funkcije. Kao što možete vidjeti iz primjera deklaracija funkcija, u Pythonu nema potrebe naznačiti da li je nešto vraćeno iz funkcije ili ne, međutim, ako funkcija ima jedan return naredbu koja vraća vrijednost, onda druge povratne izjave u ovoj funkciji mora vratiti vrijednosti, a ako takva vrijednost nije, onda morate eksplicitno napisati return None.

    Ako je funkcija vrlo jednostavna i sastoji se od jednog reda, onda se može definirati odmah na mjestu upotrebe, u Pythonu se takva konstrukcija naziva lambda funkcija. Lambda funkcija je anonimna funkcija (bez vlastitog imena), čije je tijelo povratna izjava koja vraća vrijednost nekog izraza. Ovaj pristup može biti zgodan u nekim situacijama, ali treba napomenuti da je ponovna upotreba takvih funkcija nemoguća („gdje sam rođen, tu sam i dobro došao“).

    Takođe je vredno opisati Pythonov odnos prema rekurziji. Podrazumevano, dubina rekurzije je ograničena na 1000 nivoa, a kada se ovaj nivo prođe, biće izbačen izuzetak i program će biti zaustavljen. Međutim, ako je potrebno, vrijednost ovog ograničenja se može promijeniti.

    Funkcije u Pythonu imaju i druge zanimljive karakteristike, kao što su dokumentacija ili mogućnost definiranja ugniježđenih funkcija, ali one će biti istražene u budućim člancima iz serije sa složenijim primjerima.

    Vrijedi li učiti programski jezik Python? Uostalom, često možete čuti da ovaj jezik umire. O ovom pitanju raspravljali su korisnici web stranice Quora i podijelili svoja mišljenja.

    Bill Karwn, SQL programer, konsultant, trener i autor

    Jezik asemblera vam daje savršenu priliku da napišete kompaktan, efikasan i projektno optimiziran kod. Možete raditi nevjerovatne stvari u kodu napisanom na ovom jeziku, koji je veličine samo nekoliko kilobajta. Ali nivo efikasnosti koji se može postići korišćenjem asemblerskog jezika ne opravdava dodatni rad, dodatno vreme i veštine koje su mu potrebne.

    Istina je da jezici i dobijaju na popularnosti i gube je. Produktivnost je veliki izazov u programiranju, pa se s vremena na vrijeme stvaraju novi jezici koji povećavaju produktivnost za barem neke vrste posla.

    Većina programera danas koristi jezike višeg nivoa - oni moraju biti produktivniji. Jezici najvišeg nivoa mogu se kompajlirati u mašinski kod (C ili C ++), ili se mogu kompajlirati u bajt-kod nezavisno od arhitekture i pokrenuti na virtuelnoj mašini (Java) ili obraditi (JavaScript, PHP, Ruby, Python, Perl, itd.).

    Zabluda da je potrebno naučiti asemblerski jezik, jer je "bolji od Pythona". Ovo je glupo gledište zasnovano na zastarjelim podacima.

    Bill Poucher, izvršni direktor ICPC-a, softver za energiju, sintetičku genetiku i još mnogo toga.

    Naučite Python. Osigurajte sebi iskustvo programiranja. Ovaj jezik ima svoju eleganciju.

    Naučite C kao jezik za Unix mašine. Razumijevanje UNIX-a je relativno jednostavno.

    Naučite MIX da biste razumjeli Knutha.

    Naučite Javu kako ne biste imali poteškoća u radu s drugima, kao i savladajte objektno orijentirano programiranje.

    Naučite C++ kako biste mogli programirati u bilo kojem stilu koji želite. Njegova snaga je u tome što je glavni programski jezik. Njegova slabost je što morate razumjeti njegov stil da biste ga programirali.

    Naučite LISP da učvrstite svoje razumijevanje rekurzije.

    Jesam li rekao da ne treba da naučiš barem nešto? br. Jer jedino što treba da uradite jeste da se naviknete da stalno nešto učite, posebno da naučite kako da rešavate probleme koji se pojave.

    Shiva Shinde, Python je lako kodirati, ali ga je teško čitati

    Programski jezik Python ne umire, on je jedan od najbrže rastućih jezika.

    1. Lako je naučiti
    • Trenutno, 8 od 10 najboljih američkih računarskih programa koristi ovaj jezik (Philip Guo, CACM)
    • Python programi obično imaju minimum obrazaca koji se obično nalaze u drugim programskim jezicima. Stoga možete češće koristiti nekonvencionalna rješenja problema.
    • Ako imate iskustva u programiranju, čak i ako ne na ovom jeziku, brzo ćete savladati Python.

    2. Puna funkcionalnost

    • To nije samo jezik za statistiku. Python ima sve mogućnosti za prikupljanje i čišćenje podataka, za rad sa bazama podataka i računarstvo visokih performansi i još mnogo toga.
    • Ovo je općeprihvaćeni programski jezik sa velikim brojem ugrađenih biblioteka. Dobar je za upravljanje podacima i bazom podataka, kao i za mrežno programiranje. To je promišljen jezik sa ogromnom količinom dostupnih resursa.

    3. Ozbiljne biblioteke naučnih podataka

    • Python ima značajne naučne biblioteke s ogromnom količinom podataka za korištenje.
    • Okosnica ovih naučnih biblioteka je SciPy ekosistem, koji čak organizuje i sopstvene konferencije.
    • Pandas i Matplotlib su oba dio SciPyja. Oni pružaju superiorne podatke o širokom spektru tema kao što su mašinsko učenje, rudarenje teksta i analiza mreže.

    Hernan Soulages, pragmatični programer

    Ovaj jezik je prilično popularan, njegova važnost raste u akademskim krugovima. Takođe je tačno da korisnost programskog jezika zavisi od toga šta želite da radite u njemu.

    Uopšte mi se ne sviđa PHP, ali nisam dovoljno glup da poreknem njegovu svestranost i moć, kao i da je jezik dovoljno lak za savladavanje.
    Što se tiče učenja asemblera, ovaj jezik direktno zavisi od toga sa kojim procesorom radite.

    Ako znate kako da radite sa jednim, onda ćete sigurno moći da ga koristite u porodici procesora neko vreme. Ali s vremenom i oni prolaze kroz neke promjene. U tom smislu, to je najmanje izdržljiva porodica jezika.

    Magnus Lyczka, programer softvera i konsultant u Geteborgu

    Mnogi korisnici vole Python. Za neke aplikacije to će biti presporo, a na primjer sa asemblerskim jezikom će raditi brže, ali će i ove aplikacije brzo raditi u C-u, dok će kod napisan u C-u raditi za sve platforme.

    Mnogi startupi su postali uspešni sa jezikom Python, nakon čega su morali da prepišu neke programe na Javi, C++ ili C. A da su ovi startupi počeli da rade na asemblerskom jeziku, najverovatnije bi ostali bez sredstava mnogo pre brzog ali teško čitljiv kod bi bio potpun.

    Ali kada radite sa asemblerskim jezikom, morate se baviti ne samo različitim arhitekturama procesora, već i tehničkim detaljima koji se razlikuju u različitim operativnim sistemima.

    Top srodni članci