Python: Diferență între versiuni

De la YO3ITI
Sari la navigare Sari la căutare
Fără descriere a modificării
 
Linia 45: Linia 45:
</syntaxhighlight>
</syntaxhighlight>


Mai multe informații [https://stackoverflow.com/questions/990754/how-to-leave-exit-deactivate-a-python-virtualenv aici].
==Exemple==
==Exemple==
* [[Analiza coerenței a două semnale]]
* [[Analiza coerenței a două semnale]]

Versiunea curentă din 10 mai 2023 21:42

Încurajez orice radioamator să încerce să facă măcar o aplicație în Python, cât de simplă. Este un limbaj de nivel înalt, extrem de ușor de învățat și extrem de prietenos. Ceea ce îl face foarte atractiv este imensa și directa sa aplicabilitate în activitățile de zi cu zi: este foarte ușor să scrii rapid o aplicație relativ complexă, care să-ți satisfacă imediat nevoia de automatizare.

Python este un limbaj dinamic,[1] interpretat[2], creat pe la începutul anilor '90. Nu este foarte rapid dar e de o eficiență ieșită din comun: la un număr egal de linii de cod faci mult mai multe în Python decât în alte limbaje de programare. Este un limbaj prietenos, dotat cu un sistem de garbage collection[3] excelent astfel că nu solicită programatorul obligându-l la interacțiunea directă cu memoria (nu necesită gestiunea manuală a memoriei). Este procedural, funcțional, orientat obiect, multi-platformă și foarte popular[4].

Unul dintre cele mai importante atuuri este comunitatea programatorilor Python, un grup de oameni extrem de diverși și foarte primitori. Calitatea comunității programatorilor este esențială pentru succesul efortului de învățare și adoptare a unui limbaj de programare. O consecință este numărul uriaș de pachete și module care pot fi descărcate și utilizate gratis. Toate aceste trăsături îl fac ideal pentru a fi utilizat în proiecte de radioamatorism. Alături de R, Python este utilizat extrem de mult în cercetare și în alte proiecte științifice[5]. Există chiar o comparație intereseantă între Python și Matlab. ;)

Mai jos e o listă de mici proiecte Python realizate de subsemnatul pentru și în diferite ocazii. Cele mai complexe sunt oferite ca pachete care pot fi descărcate de pe repozitoriul meu de pe GitHub.

Medii de dezvoltare virtuale personalizate, în Visual Studio Code

O problemă de care m-am lovit la utilizarea Visual Studio Code este absența bibliotecilor în mediul de lucru selectat. Mesajul de eroare este:

user@system % ModuleNotFoundError: No module named 'modul'

Soluția mai complicată este modificarea mediului de dezvoltare global, adică cel instalat pe computer cu distribuția de Python utilizată. Dar acest lucru devine și mai complicat dacă, precum în cazul meu, se folosește un gestionar de aplicații gen homebrew. În aceste situații cea mai simplă și elegantă soluție este configurarea în Visual Studio Code a mediului de dezvoltare în fiecare proiect Python. Această metodă este asemănătoare modului în care se configurează PyCharm.

Pașii necesari sunt: Crearea unui mediu virtual de dezvoltare; în terminalul VSC se scrie:

user@system % python3.11 -m venv teste

Unde "test" este numele mediului virtual de dezvoltare

Apoi se activează mediul virtual de dezvoltare

user@system % source teste/bin/activate

Unde teste/bin/activate este calea către fișierul de activare care a fost creat odată cu mediul virtual de dezvoltare

De aici, instalarea librăriilor se face extrem de simplu cu pip. De exemplu:

(teste) user@system % pip3 install numpy

etc.

Este indicat să se actualizeze pip cu comanda:

(teste) user@system % pip3 install --upgrade pip

Pentru părăsirea mediului virtual se scrie:

(teste) user@system % deactivate

Mai multe informații aici.

Exemple

Note

  1. Un limbaj de programare este dinamic dacă, la rulare, execută activități pe care limbajele statice le execută în timpul compilării. De pildă adăugarea unui modul sau extensia unui program la rulare reprezintă activități tipice unui limbaj dinamic. Din acest motiv, limbajele dinamice solicită mult mai mult resursele pe care le au la dispoziție deoarece depind de execuția simultană a unui subsistem de rulare a procedurilor. Spre deosebire de limbajele statice (de ex.: C, C++ etc), limbajele dinamice sunt caracterizate prin performanțe inferioare. Mai multe informații aici.
  2. Un limbaj interpretat este un tip de limbaj de programare pentru care majoritatea sau toate instrucțiunile se execută direct și liber fără a necesita compilare în cod-mașină (ex. C, C++ etc). Mai multe informații aici
  3. O formă de sistem de gestiune automată a memoriei. Mai multe informații aici.
  4. Pe locul 3 în clasamentul TIOBE, cu un scor de 9,7% (după C, care a împlinit venerabila vârstă de 47 de ani).
  5. R Vs Python: What’s the Difference?

Cărți recomandate

Recomandările de mai jos sunt făcute exclusiv pe baza experienței personale.

Cinci stele ;)

Ok

Link-uri externe