Python: Diferență între versiuni
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
- Analiza coerenței a două semnale
- WPASupplicant status
- Citire senzor tmp102 pentru driver de termostatare
- Script pentru configurarea SA818 din nodurile mobile RoLink
- Prerechizite Python pentru comunicarea cu Adalm Pluto
- Adalm Pluto și Python
Note
- ↑ 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.
- ↑ 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
- ↑ O formă de sistem de gestiune automată a memoriei. Mai multe informații aici.
- ↑ Pe locul 3 în clasamentul TIOBE, cu un scor de 9,7% (după C, care a împlinit venerabila vârstă de 47 de ani).
- ↑ 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 ;)
- Python Crash Course: A Hands-On, Project-Based Introduction to Programming – Eric Matthes
- Math Adventures with Python: An Illustrated Guide to Exploring Math with Code – Peter Farrell
- Learning Python – Mark Lutz
- Python Pocket Reference – Mark Lutz
Ok
- Programming the Raspberry Pi: Getting Started with Python – Simon Monk
- Doing Math with Python – Amit Saha
- Automate the Boring Stuff with Python: Practical Programming for Total Beginners – Al Sweigart
- Black Hat Python: Python Programming for Hackers and Pentesters – Justin Seitz
Link-uri externe
- Practical Python for Astronomers
- Eight Advantages of Python Over Matlab
- SciPy — SciPy este o colecție de algoritmi și funcții matematice construite pe fundația creată în Python de NumPy. SciPy oferă funcționalități DSP similare MATLAB, IDL, Octave, R-Lab și SciLab.