Skip to content

Repository per il materiale del corso "Python: Un Approccio Da Fisico" tenuto nel 2023 da Alessandro Romancino del comitato locale AISF Palermo.

License

Notifications You must be signed in to change notification settings

andreagerhardlutz99/aisf-corso-python

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

Introduzione

Questa repository serve come base al corso "Python: Un Approccio Da Fisico" ma anche per qualsiasi curioso che vuole inziare a usare Python per il calcolo scientifico.

Per visualizzare i notebook potete o visualizzarli direttamente su GitHub andando a cliccare su intro_python_1 e su intro_python_2 oppure scaricarli per farli girare in locale inserirò un link qui a fine corso.

Struttura del Corso

Il corso è diviso in due notebook corrispondenti alle due giornate del 21/04/23 e del 22/04/23. Gli argomenti trattati sono:

  • Giornata 1: introduzione, sintassi di base, pacchetti e programmazione ad oggetti, vettori e rng su numpy.

  • Giornata 2: grafici e stili con matplotlib, funzioni avanzate di numpy, funzioni utili di scipy, fit ai minimi quadrati, esempi di analisi di laboratorio e di simulazioni numeriche.

Per Iniziare

Per prima cosa dobbiamo installare Python! Per farlo useremo Miniconda che ci installerà conda, un gestore di ambienti di Python (per sapere cosa è un ambiente guarda sotto).

Perciò scaricate l'ultima versione di Miniconda per il vostro OS, seguite le istruzioni e lasciate tutte le impostazioni come da default. Per maggiori informazioni sull'installazione consultate qui.

Ora possiamo usare l'Anaconda Prompt per gestire i nostri pacchetti e gli ambienti.

Conda e Ambienti

Come primissima cosa settiamo come canale di default (da cui verranno scaricati tutti i pacchetti) Conda Forge. Forge è un canale community-driven che tiene i cosiddetti feedstock, per più informazioni, consultate il loro sito.

Eseguiamo quindi questi due comandi (basta farli una volta all'istallazione e fine)

conda config --add channels conda-forge
conda config --set channel_priority strict

Perfetto, ora possiamo iniziare! Per prima cosa aggiorniamo conda e l'ambiente base eseguendo conda update conda e poi conda update --all (quando eseguiamo conda update verrà chiesto se proseguire e possiamo premere invio per continuare).

Ora creiamo il nostro nuovo ambiente dove andare a lavorare e installare tutti i pacchetti. Diamo un nome al nostro ambiente e quindi creiamolo tramite il comando

conda create -n nome_ambiente python=3.11

Questo creerà un ambiente con il nome dato e l'ultima versione di Python 3.11 (al 16/04/23 è Python 3.11.3).

Dopo che avrà finito attiviamolo con conda activate nome_ambiente (se dovessimo tornare nell'ambiente base basta fare conda deactivate). Ora possiamo installare tutti i pacchetti che ci serviranno per questo corso. Quindi possiamo eseguire

conda install numpy matplotlib scipy notebook

Che installerà le ultime versione dei pacchetti NumPy, Matplotlib, SciPy e Jupyter Notebook.

Il Jupyter Notebook

Ora che abbiamo installato Jupyter Notebook possiamo iniziare a usare Python. Per iniziare navighiamo nella cartella dove abbiamo scaricato il materiale con cd percorso_cartella.

Una volta entrati eseguiamo jupyter notebook, questo aprirà l'interfaccia del notebook nel browser e clicchiamo sul notebook che ci interessa.

Possiamo ora creare dei blocchi (premendo il +) che possono essre codice o markdown. I blocchi Markdown sono dei blocchi di testo, per la sintassi di base leggi qui..

Concentriamoci sui blocchi di codice ora. Per eseguire un blocco possiamo cliccare sulla freccia Run oppure usare Shift + Enter.

Il codice viene eseguito in sequenza (blocco dopo blocco) e potete eseguire i blocchi nell'ordine che preferite. Nel caso aveste dei problemi potete riavviare l'esecuzione andando su Kernel -> Restart.

Per altre informazioni consultate la guida ufficiale di Jupyter Notebook.

Informazioni Utili Varie

Informazioni Utili su Conda

Per installare un pacchetto su conda basta usare conda install nome_pacchetto, quando volete aggiornare il vostro ambiente, prima attivatelo (se non lo è già) e poi eseguite conda update --all che aggiornerà tutti i pacchetti.

Nella rara eventualità che il pacchetto che vi serve non sia presente su conda-forge potete usare pip, il gestore di pacchetti di base di Python basato sul Python Package Index o PyPi. Per installare un pacchetto con pip basta eseguire pip install nome_pacchetto, però...

Vi consiglio caldamente di creare un nuovo ambiente quando dovete farlo, installare prima tutti i pacchetti da conda-forge e poi quelli rimanenti da pip solo alla fine. Vi consiglio di leggere bene l'articolo nella wiki ufficiale su questo argomento.

Se avete bisogno di ricordarvi i comandi qui trovate la cheat sheet di Conda.

In generale per qualsiasi dubbio su Conda visualizzate la sua ottima documentazione.

Consigli per Windows

Se avete Windows vi do qualche consiglio. Installate l'ultima versione di Powershell e poi installate anche Windows Terminal.

Windows Terminal è un emulatore di terminale moderno e modificabile ampiamente, inoltre gira molto bene su Windows 11. Fate un profilo con il nuovo Powershell di default, se volete cambiate pure la cartella di base.

Per settare conda su questo terminale potete o aggiungere manualmente l'executable di conda alle variabili d'ambiente oppure (quello che vi consiglio) aprire l'Anaconda Prompt e scrivere conda init powershell. Lui si preoccuperà di inizializzare powershell per voi, ora potete usare Powershell da dentro Windows Terminal come se fosse l'Anaconda Prompt.

Inoltre, potreste volere far girare degli script all'avvio di Powershell. Per far ciò basta eseguire il comando notepad $PROFILE e accettare (solo la prima volta). Questo creerà un file PROFILE dove ogni riga verrà passata a Powershell all'avvio. Una cosa che metto io spesso è conda activate ambiente_che_uso_per_ora per evitare di dover attivare l'ambiente di conda ogni volta.

P.S. se volete avere una linea di comando spaziale allora date uno sguardo a Oh My Posh. E se volete usate pure il mio tema custom.

Lista di Pacchetti Utili

  • tqdm: libreria per creare delle barre di caricamento durante i loop
  • uncertainties: libreria fantastica per effettuare operazioni tra numeri con errori associati (funziona anche con array di numeri)
  • pandas: libreria per data analysis
  • streamlit: una libreria che permette di creare interfacce grafiche semplicemente e caricare le app sul cloud
  • black: un formattatore di codice che segue lo stile PEP 8
  • lmfit: pacchetto per effettuare fit più complessi
  • plotly, seaborn e bokeh: altre librerie per la visualizzazione
  • sympy: libreria per calcolo letterale (tipo Mathematica)
  • python-igraph e networkx: librerie per studiare reti complesse
  • tenpy: libreria per tensor network

Licenza

Tutto il materiale è stato creato da Alessandro Romancino per il suddetto corso tenuto dal comitato locale AISF Palermo. Il materiale del corso è distribuito con licenza MIT, perciò siete liberi di fare quello che volete con il materiale.

Se volete, potete citarmi linkando il mio profilo https://github.com/alex180500. Grazie!

About

Repository per il materiale del corso "Python: Un Approccio Da Fisico" tenuto nel 2023 da Alessandro Romancino del comitato locale AISF Palermo.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 100.0%