Învăț Python de la zero (povestea mea). Cel mai bun mod de a învăța Activitățile Python Python pentru începători

Acasă / Instalarea dispozitivului

Câte limbaje de programare există cu adevărat? Sunt câteva zeci de ele. Sunt concepute pentru diverse sarcini, pentru fiecare gust, dimensiune și culoare. De ce am ales această limbă? Python este capabil să efectueze o gamă foarte largă de sarcini, de la un simplu script până la crearea de site-uri web întregi. Python pentru începători este destul de simplu, concis și ușor de învățat.

Din acest articol veți învăța:

Salut, salut! Gridin Semyon este în legătură. În cele din urmă, am ajuns la subiectul principal al acestui blog, programarea sistemelor inteligente folosind Python. M-am pregatit pentru asta de mult timp. Și acum, sunt gata să vă scriu articole interesante și să studiez acest subiect în profunzime.

De ce am nevoie de asta? Pentru început, mi-am propus următoarea sarcină cu privire la dezvoltarea învățării automate și a viziunii computerizate.

Poate dacă voi avea noroc, voi ajunge printre dezvoltatorii de proiecte robotice complexe, poate voi deveni și eu organizator și voi deschide producția de roboți personali, sau poate, poate... Dacă nimic nu merge, și Doamne binecuvântați-l, mă bucur de proces, nu de rezultat.

Atunci îmi voi începe povestea))...

Caracteristici ale limbajului de programare Python

După cum am scris mai sus, acest limbaj îndeplinește o gamă foarte largă de funcții. Este pur și simplu imposibil să acoperi totul. Prin urmare, înainte de a studia, vă rugăm să vă puneți întrebarea, de ce am nevoie de asta? Ce probleme voi rezolva folosind acest limbaj? Dacă ai răspuns pozitiv, mergi mai departe.

Cum poate fi util Python?

  1. Lucrul cu fișiere xml/html
  2. Lucrul cu solicitări http
  3. GUI (interfață grafică)
  4. Crearea de scripturi web
  5. Lucrul cu FTP
  6. Lucrul cu imagini, fișiere audio și video
  7. Robotică (utilizarea computerelor cu o singură placă)
  8. Programare matematică și științifică de calcul

Și altele asemenea. Python este capabil să îndeplinească cea mai mare parte a sarcinilor de rutină.

În Python puteți construi și backup, și lucrează cu prin email, și un calculator simplu și un script pentru site. Limbajul nu este limitat de nimic. Cel mai interesant este că este folosit de giganți IT precum Google și Yandex.

În acest articol ne vom uita la tine Programare Python de la zero.

Pentru ca programul să funcționeze pe un anumit dispozitiv, nu contează ce sistem de operare - Windows, Linux, RaspbianOS, MacOS. Este important să aveți un interpret care să înțeleagă comenzile și să le execute.

Faceți următoarele: descărcați python IDE c sursa oficiala.

Cunoașterea interpretului

Deci interpretul procesează codul text al programului. Există un mod interactiv al mediului de dezvoltare. Îl puteți lansa în mai multe moduri:

  1. Din linia de comandă obișnuită cmd, introduceți comanda python ;
  2. De pe desktop (comandă rapidă);
  3. Utilizarea meniului Start - Python IDLE;

Se va deschide această fereastră pentru tine:

Apropo, carcasa poate fi folosită și ca un calculator obișnuit. Văd acest software ca pe o oportunitate de a debloca întregul potențial al computerelor cu o singură placă.

Arduino are și propriul său shell software. Citește.

De unde să începi să înveți python? Să încercăm să scriem primul program?

Crearea primului program

Un program Python este simplu fișier text cu cod scris. Extensia acestui fișier este .py. Puteți rula programul specificând numele corespunzător pe linia de comandă. Să-l scriem pe cel mai simplu program standard"Salut Lume!"

Sarcina este să afișați pe ecran „Hello world!”. Lansați NotePad.

Scriem următorul cod:

Piton

print("Bună lume!!!")

print("Bună lume!!!")

Și salvați-l într-un folder urmând calea C:\MyScripts. Recomand să puneți toate proiectele în acest folder.

Pentru ca noi să rulăm scriptul, selectați linie de comandăși introduceți calea către fișierul dvs.:

Despre cărți. De fapt, deși limbajul este simplu în ceea ce privește crearea codului, există o mulțime de nuanțe și diverse biblioteci pentru implementarea unei game uriașe de sarcini.

Cea mai bună carte despre python pentru începători este considerată tutorialul lui Mike McGrath. Un ghid cuprinzător pentru scrierea codului Python.

Scuze pentru calitatea fotografiei, nu funcționează altfel. Nu recomand să cumpărați încă celelalte cărți, deoarece sunt de fapt voluminoase și voluminoase. McGrath va fi suficient ca bază.

Băieți, asta e tot pentru mine, dacă aveți întrebări, puteți oricând să îmi scrieți. Abonați-vă la știrile blogului. Trimite-l prietenilor tăi. Vă mulțumim pentru atenție.

Salutări, Gridin Semyon

Vizionarea emisiunilor non-stop nu va face o persoană un atlet de succes, iar cunoașterea pe de rost a materialelor de curs nu garantează o carieră decentă ca medic. Nu este un secret pentru nimeni că succesul oricărei afaceri constă în pregătirea continuă. Și nu este un păcat să repeți adevărul comun: chiar și talentul excepțional lâncește fără dezvoltare și muncă constantă asupra ta.

Același principiu se aplică și pentru a învăța să programați. Desigur, pe GeekBrains vei primi sarcini practiceși ajutor din partea profesorilor. Cu toate acestea, chiar și după finalizarea cursurilor, probabil că veți dori să vă întindeți mâinile și să vă îmbunătățiți nivelul rezolvând tot felul de probleme. Pentru a vă ajuta în acest sens, am selectat mai multe resurse cu exerciții.

În primul rând, observăm că cunoașterea limbii engleze, ca și în multe alte situații de viață, vă va face viața mult mai ușoară în îmbunătățirea abilităților de programare. La urma urmei, majoritatea portalurilor pe care sunt postate sarcini practice sunt în limba engleză. Ca, de exemplu, W3resource.

Publicul țintă al site-ului este dezvoltatorii web începători. Ei sunt cei cărora li se atribuie un număr semnificativ de sarcini în HTML, PHP, Python, JavaScript, care poate dura mai mult de o zi sau chiar o săptămână pentru a se rezolva. Portalul nu necesită înregistrare sau instrumente suplimentare: ușurința de utilizare este asigurată de editorul încorporat, precum și de link-uri către răspunsurile corecte dacă rezolvarea problemei încă vă deranjează.

Liliacul de codare

Coding Bat urmează o strategie similară. Creatorii resursei au preferat, de asemenea, un focus restrâns, concentrându-se pe exerciții în Java și Python. Varietatea mică de exerciții compensează mai mult decât cantitatea și calitatea sarcinilor, precum și ușurința în utilizare. Desigur, din nou, editorul încorporat și răspunsuri. În plus, portalul este potrivit atât pentru începători, cât și pentru dezvoltatori experimentați.

Code Abbey

Succesul oricărui training stă în motivația potrivită, care, fără îndoială, este prezentă la Code Abbey. Astfel, orice utilizator care rezolvă 125 de probleme poate primi un certificat corespunzător. Desigur, este gratuit. Un alt avantaj al resursei este capacitatea de a finaliza sarcini în aproape orice limbaj comun (de la C la Julia).

Top Coder

Cu toate acestea, nici măcar o astfel de motivație nu este la fel de eficientă ca recompensa în bani. Așadar, pe Top Coder nu numai că poți să-ți crești nivelul, ci și să câștigi bani în plus: de fapt, resursa este o listă de competiții, al căror câștigător va primi, dacă nu o recompensă uimitoare, dar plăcută. Cei mai de succes participanți au, de asemenea, șansa de a se face remarcați. Mastodonti din industrie precum Microsoft, Facebook sau IBM monitorizează periodic portalul în căutarea de noi talente.

Programator

La un moment dat, a fost posibilă și participarea la concursuri pe acest portal. Cu toate acestea, până acum toate și-au pierdut relevanța. Cu toate acestea, resursa oferă încă o platformă bogată pentru dezvoltarea abilităților. În primul rând, datorită numeroaselor sarcini în Java, C++, PHP, C#, Ruby, Python și Objective-C. În fiecare dintre ele trebuie să adăugați o mare parte a codului. De regulă, sunt alocate 30 de minute pentru a finaliza sarcina.

Abilități de programare

Pentru cei care s-au săturat să scrie coduri și doresc să aducă mai multă varietate procesului de învățare, portalul Programming Skills este potrivit. Pe el puteți găsi o serie de teste de 20 de întrebări în C, HTML, C#, Java și alte limbaje. Fiecare sarcină durează 25 de minute. Pe lângă acestea, resursa conține o listă bogată de întrebări pe care le puteți întâlni în timpul unui interviu.

SQL-EX.RU

În cele din urmă, acest portal este ideal pentru studenții SQL. Oferă un număr mare de sarcini care acoperă toate tipurile de solicitări. Pentru a motiva utilizatorii, a fost introdus un sistem de rating pentru toți vizitatorii înregistrați - pentru fiecare răspuns corect veți primi un anumit număr de puncte. Numărul acestora depinde de complexitatea sarcinii, care, apropo, este un alt avantaj al resursei. La urma urmei, este potrivit atât pentru începători (sau pentru cei care au suficiente cunoștințe de bază), cât și pentru cei al căror serviciu este imposibil fără a construi interogări complexe.

Singurul dezavantaj, dar uneori enervant, este lipsa rutelor alternative. Cu alte cuvinte: corectitudinea exercițiului este determinată nu de răspuns, ci de metoda de rezolvare. Ca urmare, uneori apar paradoxuri în care răspunsul de fapt corect nu este considerat corect.

Pentru cei care abia încep călătoria lor de codare, recomandăm un curs gratuit pe .

  • Scopul 1- ajutor cu link-uri, materiale, pentru cei care intenționează să studieze programarea și să ia Python ca primă limbă. Arată că nu este atât de dificil pe cât pare.
  • Scopul 2- colectați link-uri către materiale utile și interesante pe acest subiect în comentarii.

0. Voi reuși?

De la bun început m-am îndoit că voi putea face ceva mai mult decât Hello World. Mi s-a părut că programarea este extrem de dificilă și extrem de magică. În plus, există munca, hobby-urile, familia, care vor distrage atenția de la studiul complet.

Nu ar fi trebuit să-mi fie frică și nu ți-l recomand. Probabil că programarea nu va deveni niciodată principala mea profesie, dar este o modalitate excelentă de a fi creativ. Acesta este șah și civilizație într-o sticlă.

Totul este mai simplu decât pare și mult mai interesant.

1. Literatură

Mark Lutz „Programare Python”- este recomandat să-l citiți pe multe forumuri și cursuri. Mi s-a părut prea detaliat și încărcat pentru un începător. Citește mult, programează puțin. Este mult mai util să o citești după ce stăpânești Python cel puțin.

Mark Summerfield „Programare Python 3”- dinamic, cu exemple excelenteși sarcini. Fără aprofundare inutilă, care nu face decât să complice totul la început. Vă recomand să începeți cu această carte vă va ajuta să înțelegeți rapid, fără a vă intimida cu complicații.

Toate celelalte cărți s-au dovedit a fi mai puțin utile și informative. În general, este dificil să ridici și să cumperi literatură bună pe această temă într-un magazin sau într-o versiune digitală.

2. Ce să citești pe Internet

http://pythonworld.ru/ - simplu și într-un limbaj clar vorbește despre elementele de bază ale limbii, adesea folosite ca o foaie de cheat.

După alte două luni, am putut să-mi creez prima aplicație Django. Dar principalul lucru este că acum am suficiente cunoștințe pentru dezvoltarea și învățarea independentă. Cel mai greu este să ajungi în acest punct.

O lună mai târziu, m-am alăturat la două proiecte pe GitHub și particip la ele. Desigur, rezolv în continuare probleme simple, dar în schimb primesc sfaturi și instruire.

Etichete: antrenament python, antrenament programare

Pregătirea pentru un interviu pentru un post de dezvoltator Python

Materiale utilizate în pregătire: Ghidul vital pentru interviul Python, Întrebări de interviu Python trebuie să aibă, 15 întrebări esențiale pentru interviu Python, Întrebări și răspunsuri la interviu Python

Astăzi, numărul de programatori Python continuă să crească, dar numărul de locuri de muncă pentru ei nu crește atât de repede. Un dezvoltator modern trebuie să fie competitiv pentru a ajunge în poziția dorită. Am pregătit un articol cu ​​subiecte și întrebări pe care un angajator le poate ridica în timpul unui interviu și le-am completat cu mici explicații - în esență, acestea sunt probleme de programare Python cu soluții. Materialul va fi util celor care continuă să revizuiască și îi va ajuta pe începători să navigheze unde să facă primii pași și la ce să acorde atenție. Gândește-te la el ca la un fel de far.

Lucrul cu liste

Expresii Lambda, generatoare de liste și expresii generatoare

Expresii lambda- o metodă de comandă rapidă pentru crearea de funcții anonime pe o singură linie. Simplitatea lor deseori (dar nu întotdeauna) face codul mai curat și mai lizibil decât declarațiile clasice de funcții. Pe de altă parte, aceeași simplitate limitează posibilitățile și domeniile de aplicare ale expresiilor lambda.

Lista generatoare furnizați o sintaxă concisă pentru crearea listelor. Ele sunt folosite pentru a construi liste în care fiecare element este rezultatul unei operații(e) asupra elementelor unei alte secvențe sau iterator. Generatoarele de liste pot fi folosite pentru a crea o subsecvență a acelor elemente ai căror membri îndeplinesc o anumită condiție. Generatoarele de liste din Python sunt o alternativă unică la funcțiile încorporate map() și filter().

Expresiile Lambda cu funcții map() și filter() și generatoarele de liste sunt similare, așa că alegerea unuia dintre aceste instrumente este subiectivă și de la caz la caz. Dar trebuie remarcat faptul că generatoarele de liste sunt puțin mai rapide - apelarea funcției lambda creează un nou cadru de stivă.

Generator de expresii sunt similare sintactic și funcțional cu generatoarele de liste, dar există diferențe importante între mecanismele și domeniile lor de aplicare. Iterarea peste o expresie generatoare sau un generator de liste va face totul la fel, dar generatorul de liste va crea mai întâi întreaga listă în memorie, în timp ce expresia generatoare va crea elemente din mers după cum este necesar. Expresiile generatoare pot fi folosite într-un număr mare sau chiar infinit de secvențe. Iar generarea de valori la cerere îmbunătățește performanța și reduce utilizarea memoriei. Cu toate acestea, trebuie remarcat faptul că metodele standard de listă ale lui Python pot fi utilizate pe ieșirea unui generator, dar nu și pe generatorul în sine.

Care este diferența dintre o listă și un tuplu?

Principala diferență: o listă se poate schimba, dar un tuplu nu. Lucrul cu tupluri este mai rapid decât cu liste. Dacă trebuie să definiți un set constant de valori și tot ce trebuie să faceți cu el este să repetați elementele sale, este mai logic să folosiți un tuplu în loc de o listă. Un tuplu poate acționa și ca o cheie pentru dicționare, spre deosebire de o listă.

Cei mai avansați candidați vor spune că tuplurile sunt eterogene și utilizarea lor este similară cu utilizarea struct în limbajul de programare C. Listele sunt similare cu matricele obișnuite.

Depanare și testare cod

Ce abordare folosiți pentru testarea unitară în Python?

Răspunsul fundamental la această întrebare se referă la utilizarea cadrului Python - test unitar.

Unittest acceptă automatizarea testelor, partajarea codului pentru configurarea și finalizarea testelor, gruparea testelor și permițând ca testele să fie separate de cadrul de raportare. Modulul unittest oferă clase care facilitează sprijinirea acestor calități pentru o suită de teste.

Vi se poate cere să descrieți elementele cheie ale structurii testului unitar, și anume:

  • banc de testare (dispozitiv de testare);
  • caz de testare;
  • suită de teste;
  • alergător de testare.

Iteratori

Ce este un iterator?

Iteratorul este o interfață care oferă acces și navigare prin elementele unei colecții (matrice sau container). ÎN diverse sisteme iteratorii pot avea denumiri comune diferite. În termenii sistemelor de management al bazelor de date, iteratorii sunt numiți cursori. În cel mai simplu caz, un iterator în limbaje de nivel scăzut este un pointer.

Care este diferența dintre iterator și generator?

Acești termeni sunt strâns legați (orice generator este un iterator), sunt adesea confuzi, ceea ce duce uneori la neînțelegeri. Iteratorul este un concept mai general. Acesta este un obiect care are două metode definite: __next__ și __iter__ . Pe de altă parte, un generator este un iterator. Dar nu invers. Generatorul poate fi obținut folosind cuvântul cheie yield din corpul funcției.

Def pătrate (start, stop): pentru i în interval (start, stop): randament i * i generator = pătrate (a, b)

GIL

Conceptul GIL este că un singur thread poate fi executat de procesor la un moment dat. Acest lucru se face astfel încât să nu existe concurență între fire pentru variabile individuale. Firul de execuție are acces la întregul mediu. Această caracteristică a implementării thread-urilor în Python simplifică foarte mult lucrul cu fire și oferă o anumită siguranță a firelor.

Argumente de trecere

Cum sunt trecute obiectele imuabile?

Obiectele imuabile sunt transmise după valoare. Obiectele precum numerele întregi și șiruri de caractere sunt transmise ca referințe la obiect, mai degrabă decât ca copii ale obiectelor.

Cum sunt trecute obiectele mutabile?

Obiectele mutabile sunt trecute „prin pointer”. Obiectele precum listele și dicționarele sunt transmise și ca referințe la obiecte, ceea ce este foarte asemănător cu modul în care pointerii către matrice sunt transmise în C - obiectele mutabile pot fi modificate direct într-o funcție, la fel ca și tablourile în C.

>>> def f(a): # Numele a este atribuit obiectului trecut... a = 99 # Se modifică doar variabila locală... >>> b = 88 >>> f(b)# Inițial numele a și b se referă la același număr 88 >>> print(b) # Variabila b nu sa schimbat 88

În acest fragment, atunci când funcția f(b) este apelată, variabilei a i se atribuie un obiect 88, dar variabilei a există numai în cadrul funcției apelate. Modificarea variabilei a în interiorul unei funcții nu afectează mediul din care a fost apelată funcția - este pur și simplu creată în momentul apelului obiect nou o.

Ce va fi rezultat după al doilea apel la append() în codul de mai jos?

>>> def append(list=): ... # adaugă lungimea listei la listă... list.append(len(list)) ... return list ... >>> append([" a"," b"]) ["a", "b", 2] >>> >>> append() # apelarea fără argument folosește valoarea implicită a listei >>> >>> append() # Dar ce se întâmplă când append este apelat din nou fără argument?

Când valoarea implicită pentru un argument al funcției este o expresie, aceasta este evaluată o singură dată, mai degrabă decât întotdeauna când funcția este apelată. Astfel, după ce argumentul listă a fost inițializat într-o matrice goală, apelurile ulterioare la funcția fără argumente vor continua să folosească aceeași matrice care a fost inițial inițial.

>>> append() # primul apel fără argument folosește valoarea implicită >>> append() # dar apoi... >>> append() # apeluri succesive extind lista implicită >>> append() # și asa mai departe...

Cum pot schimba aplicarea metodei anexă în întrebarea anterioară pentru a evita comportamentul nedorit descris acolo?

Există o implementare alternativă a metodei append care va rezolva problema:

>>> def append(list=None): ... dacă lista este None: list = # Mărește lungimea listei... list.append(len(list)) return list ... >>> append( ) >> >apend()

Întrebări în afara anumitor categorii

Cum puteți schimba valorile a două variabile într-un șir în Python?

Să ne uităm la un exemplu simplu:

>>> x = "X" >>> y = "Y"

Multe alte limbaje de programare vă cer să faceți ceva de genul acesta atunci când înlocuiți valorile X și Y:

>>> tmp = x >>> x = y >>> y = tmp >>> x, y ("Y", "X")

Dar în Python există o opțiune de a face acest lucru cu o linie de cod ca aceasta:

>>> x,y = y,x >>> x,y ("Y", "X")

Ce va rezulta din ultima declarație de mai jos?

>>> flist = >>> for i in range(3): ... flist.append(lambda: i) ... >>> # ce va fi rezultat?

În orice închidere în Python, variabilele sunt asociate după nume. Deci, linia de cod de mai sus va scoate următoarele:

>>> flist = >>> pentru i în intervalul(3): ... flist.append(lambda i = i: i) ... >>>

Care este scopul cuvântului cheie „self”?

Cuvântul cheie self este o variabilă care se referă la o instanță a unui obiect. Când este creată o clasă, nu există nicio referință explicită la un obiect de același tip de clasă. Prin urmare, pentru a se referi la clasa sau obiectul curent, Python folosește cuvântul cheie self.

Clasa Utilizator: def __init__(self): self.name = „Ivan Ivanov” self.age = 16 user_obj = User() user_obj.name # self.name conține „Ivan Ivanov” ca valoare

Care este scopul cuvântului cheie „randament”?

Cuvântul cheie yield poate transforma orice funcție într-un generator. Funcționează similar cu instrucțiunea return, cu diferența că cuvântul cheie va returna un obiect generator. O funcție poate efectua, de asemenea, mai multe apeluri la cuvântul cheie yield.

Def testgen(index): zilele săptămânii = ["sun","lun","tue","wed","thu","vin","sat"] randament zile lucrătoare randament zile lucrătoare zi = testgen(0) print next( zi), următoare(ziua) #ieșire: soare lun

Ce este __init__.py? Cum se importă o clasă dintr-un alt director?

Init__.py este folosit în principal pentru a inițializa pachetele Python.

Fișierul __init__.py din directorul lstm_m îi spune interpretului Python că acest director ar trebui tratat ca un pachet Python.

Cum se importă o clasă dintr-un alt director?

De obicei, __init__.py este dosar gol. Și dacă trebuie să folosim lstm.py în fișierul run.py, atunci trebuie să fie importat după cum urmează:

Din lstm_m import lstm

În plus, în folderul modulului ar trebui să existe un fișier numit __init__.py pentru import.

Ce tipuri încorporate există în Python?

Există tipuri de Python încorporate mutabile și imuabile.

Schimbabil:

  • liste;
  • mulţimi;
  • dicționare.

Imuabil:

  • corzi;
  • tupluri;
  • numere.

Vă rugăm să rețineți că doar tipurile principale sunt enumerate mai sus. De fapt, sunt mai mult de șase.

Ce este docstring în Python?

Șirul de documentație Python (docstring) este o modalitate de a documenta funcții, module și clase. Standardele de design sunt pe site-ul oficial.

Cum pot converti un număr într-un șir?

Pentru a converti un număr într-un șir, utilizați de obicei funcția încorporată str(), deși există și alte moduri, cum ar fi „(0:d).format(number) și „%d”%number. Dacă doriți să convertiți număr zecimal la octal (oct - octal) sau hexazecimal (hex - hexazecimal), utilizați funcția încorporată oct() sau, respectiv, hex().

Care este diferența dintre Xrange și range?

Funcția xrange() returnează un obiect xrange, în timp ce range() returnează o listă și folosește aceeași cantitate de memorie, indiferent de dimensiunea funcției.

Cum pot vedea metodele sau atributele unui obiect?

Comanda dir(x) returnează o listă sortată de nume de atribute pentru orice obiect transmis acestuia. Dacă nu sunt specificate obiecte, dir() returnează numele din domeniul curent.

În plus

Dacă deții engleză, atunci vă recomandăm să faceți teste online și să vă testați cunoștințele înainte de interviu.

Colecții de materiale pentru învățarea Python de la noi: , . Scurt la fel. Nu uitați să rezolvați problemele: iată unde o puteți face.

Concluzie

Întrebările și sfaturile prezentate în acest articol pot fi ajutoare foarte valoroase în pregătirea candidaților pentru interviuri. Sperăm că dezvoltatorii le vor găsi utile pentru a-și testa cunoștințele pe cont propriu înainte de a se întâlni cu un angajator. Dar nu trebuie să uităm că toate întrebările prezentate mai sus sunt unul dintre mai multe instrumente de selectare a candidaților pentru o poziție ca parte a unei strategii specifice. Pregătiți cu atenție și temeinic. Noroc!

Învățarea programării începe cu pași mici. Este clar că mai întâi trebuie să studiezi sintaxa și conceptul limbajului ales. Dar nu mai puțin important este să vă perfecționați abilitățile în crearea de algoritmi și rezolvarea problemelor de programare. Acest articol enumeră resurse care conțin tot felul de sarcini și idei pentru propriile proiecte.

Aici puteți găsi o listă cu peste 100 de idei de proiecte pe care le puteți implementa. Lista este concepută pentru Python, dar ideile pot fi implementate în alte limbi. Conține atât proiecte nu foarte serioase, cât și exerciții bune pentru practică. Lista este foarte recomandată pentru începători să o citească și să o urmeze.

Și aici vei găsi o listă cu 49 de clone de joc pe care le poți scrie. Alegerea depinde de nivelul de dificultate.

Vrei să creezi ceva nou? Consultați Idea Machine și Lista de dorințe pe Internet, unde oamenii postează sugestii pentru programele pe care și-ar dori să le vadă.

Dacă doriți exerciții practice, atunci parcurgeți această listă site-uri/resurse:

exercitii generale:

  • Proiectul Euler conține peste 500 de probleme matematice (teoria numerelor, sisteme de numere etc.) care trebuie rezolvate folosind programare (în orice limbă).
  • Code Abbey stochează peste 200 de probleme de programare. 125 dintre ei primesc un certificat pentru soluțiile lor, ceea ce motivează mulți studenți.
  • Rosalind este un alt site similar cu Proiectul Euler, care oferă peste 200 de probleme de bioinformatică din care să alegeți.
  • Codingbat.com oferă exerciții Java și Python atât pentru începători, cât și pentru programatori avansați.
  • codegolf.stackexchange.com este un site unde puzzle-urile de programare sunt publicate și discutate.
  • Ruby Quiz este o serie de puzzle-uri care vă cer să scrieți programe scurte de complexitate diferită. Soluțiile originale sunt descrise în Ruby, dar pot fi implementate în orice limbă.
  • - o selecție de probleme de logică și programare, fiecare cu o analiză detaliată a soluției.

Probleme de la programarea olimpiadelor:

  • UVa Online Judge este o colecție de sute de probleme de la concursuri de programare, cu un sistem online de verificare a soluțiilor.
  • TopCoder conține probleme complexe de algoritm, adunate de-a lungul anilor din diferite concursuri. De asemenea, organizează concursuri de programare de mai multe ori pe lună.
  • CodeForces este similar cu TopCoder, dar conține mai multe provocări de competiție și câteva caracteristici speciale, inclusiv „competiții virtuale”.
  • Timus - la fel ca UVA. Conține probleme de la cele mai recente competiții (nivel mondial și regional).
  • SPOJ este similar cu UVA, cu un număr mare de limbaje de programare din care să alegeți.
  • USACO conține mai multe probleme de algoritm cu instrucțiuni pentru rezolvarea acestora.

Pentru anumite limbi:

  • Pentru Prolog, Lisp și limbi similare, vizitați

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații