Primi passi

Questa pagina cerca di aiutare a muovere i primi passi con il linguaggio di programmazione Python. In particolare, guida alla prima installazione e a configurare il sistema in modo da poter seguire e partecipare ai laboratori.

Installare il software

Tipicamente questo passaggio dovrebbe essere necessario su una macchina privata, dato che le macchine dei laboratori dovrebbero già essere configurate, mediante il meccanismo di macchine virtuali di Windows 10.

Che software usiamo?

  • Python 3 - nella versione installata con il gestore Anaconda che include Python 3.X (dove X ≈ 8)
  • Un editor di testi - NON un editor di documenti come Word - per scrivere i nostri programmi in Python. Consideriamo due diverse alternative: IDLE (l'edtor incluso nell'installazione standard di Python) e Spyder (l'editor incluso in Anaconda). Comunque, qualsiasi editor di testi va bene (notepad, notepad++, gedit, atom e simili).

Scaricare il software e installare

A seconda della versione del nostro PC (32-bit o 64-bit) e del nostro sistema operativo (Windows, MacOS, Linux), scarichiamo il giusto pacchetto dal sito https://www.anaconda.com/distribution e installiamo seguendo le indicazioni che ci forniscono.

Usare il terminale e l'editor

Per questa pagina useremo Anaconda installato sotto Windows. Abbiamo l'opportunità di usare l'editor IDLE o l'editor Spyder. In realtà, Spyder è un software molto più complesso di IDLE, dato che ---come vedremo--- include molte funzionalità in più di un semplice editor di testi.

Dal menu di Windows, cerchiamo la cartella Anaconda e selezioniamo Anaconda Prompt.

python01.jpg

In questo modo si aprirà una finestra nera in cui possiamo inserire del testo.

python00.jpg

Questa finestra si chiama terminale e mostra la riga di comando (command line).

DIVAGAZIONE: il nome "terminale" deriva dal fatto che tale software svolge la stessa funzione dei vecchi terminali, ovvero macchine degli inizi dell'era informatica, il cui unico scopo era quello di fare da tramite tra l'operatore umano e il main-frame, ricevendo i comandi (l'input) dall'operatore e l'esito del comando (l'output) dal mainframe. Il terminale è l'interfaccia che usiamo per interagire con il nostro sistema operativo e con il quale possiamo svolgere le stesse funzioni dell'interfaccia grafica, ovvero avviare applicazioni, copiare e maneggiare i file e, in generale, cambiare la configurazione del nostro sistema.

La riga di comando include un cursore lampeggiante dopo una riga del tipo C:\Users\Angelo>, che indica il fatto di essere pronto a ricevere i nostri comandi. Tale riga è la directory corrente della riga di comando ed è molto importante dato che determina il modo in cui possiamo indicare i programmi da eseguire. Noi vogliamo eseguire l'editor IDLE e pertanto digitiamo idle seguito da invio e aspettiamo.

(C:\Users\Angelo\Anaconda3\) C:\Users\Angelo>idle

In questo modo abbiamo chiesto al sistema operativo di avviare il programma con nome idle.exe. Si aprirà una finestra bianca con un prompt diverso da quello del terminale.

python02.jpg

ATTENZIONE ATTENZIONE!! Se l'invocazione di idle ritorna un errore di comando non trovato, allora non abbiamo eseguito la riga di comando di Anaconda. Questo perché i programmi che abbiamo installato con Anaconda NON SONO conosciuti dalla riga di comando di Windows, ma devono essere manualmente inclusi, ovvero sono inclusi nel prompt di Anaconda. Più precisamente, il percorso nel filesystem in cui sono i file degli eseguibili non è incluso nella variabile di ambiente PATH, che contiene la lista di percorsi utilizzata dalla riga di comando per cercare i file degli eseguibili.

Tale riga di comando, adesso, è la nostra interfaccia con l'inteprete python! Qui possiamo inserire i nostri comandi python e ne vedremo l'esito dell'esecuzione. Per aprire l'editor, adesso, selezioniamo dal menu File->New File e si aprirà, finalmente, il nostro editor di testi. L'editor di testi è diverso da un editor di documenti (word processor): Microsoft Word o Google Docs o Apple Pages o qualsiasi editor di documenti sono in grado di produrre e formattare bellissimi documenti, ma non sono progettati per mostrare e accedere al contenuto reale di un file. Quando creiamo un documento, vengono impiegati tanti caratteri che, in realtà, non sono mostrati a video, i cosiddetti caratteri speciali e le informazioni di formattazione. Per i nostri programmi python, tali informazioni non vanno bene. Il nostro python (e in generale un qualsiasi linguaggio di programmazione) ha bisogno di file con testo puro (raw text), ovvero sequenze di carattari. Gli editor di testi sono in fatti in modo da generare esattamente tali tipi di file.

Inseriamo del testo nella finestra dell'editor...

python03.jpg

e salviamo il nostro nuovo file: File->Save As.... Questo ci mostrerà una nuova finestra che ci permette di scegliere dove salvare il nostro file. Selezioniamo Documenti e la directory Python Scripts e scegliamo un nome per il file (esempio hello.py).

python04.jpg

Adesso nella finestra dell'editor, vediamo che è cambiato il titolo e mostra il percorso completo del nostro nuovo file (C:/Users/Angelo/Documents/Python Scripts/hello.py).

python05.jpg

E' importante osservare bene i percorsi dei file (ovvero la sequenza di directory in cui essi sono salvati) poiché la riga di comando ha bisogno di sapere dove sono i file che vogliamo usare come input, come vedremo più avanti. Nella figura qui su, ad esempio, il percorso del file hello.py è C:/Users/Angelo/Documents/Python Scripts/hello.py, come indicato nel titolo della finestra.

Ricapitolando, dovremmo avere aperto tre finestre:

  1. Il terminale con il prompt della riga dei comandi (schermo nero)
  2. Il prompt dell'interprete python (schermo bianco)
  3. L'editor di testi.
NOTA: l'utilizzo di IDLE come editor è solo una delle possibili scelte che abbiamo. Possiamo, infatti, usare un qualsiasi editor di testi che sia in grado di evidenziare la sintassi di python e salvare i file in un formato che python possa interpretare.

Usare la command line

Come abbiamo detto qualsiasi cosa possiamo fare con l'interfaccia grafica, possiamo farla con il terminale. Per usare python è bene conoscere un po' meglio la command line.

La cosa principale da conoscere è il concetto di directory corrente (o anche working directory), che viene spesso visualizzata direttamente nel prompt della riga di comando. Ad esempio, la nostra riga di comando in Windows è:

C:\Users\Angelo\Documents\Python Scripts>

allora la directory corrente è la directory Python Scripts, all'interno della directory Documents, all'interno della directory Angelo, all'interno della directory Users del disco C:.

NOTA: in Linux e MacOS, il prompt è tipicamente diverso poiché non viene mostrato il disco e la directory è relativa alla home dell'utente. Per cui, per conoscere la working directory in maniera univoca bisogna usare il comando pwd (print working directory). Quindi, ammesso che il nostro utente si chiami angelo:

mypc:Documents/Python Scripts angelo$ pwd
/home/angelo/Documents/Python Scripts
mypc:Documents/Python Scripts angelo$

La prima cosa utile da sapere della riga di comando è che mette a disposizione molti comandi da tastiera che rendono rapido il suo uso. In particolare:

  • l'auto-completamento con il tasto TAB, che consente di aiutare a completare automaticamente i nomi dei file e dei comandi (ad esempio se iniziamo a scrivere "cd Doc" e premiamo il tasto TAB --quello sopra il CAPS Lock-- la riga di comando completa da solo il comando "cd Documents"). Immaginiamo la comodità se il nome del file che vogliamo scrivere è qualcosa tipo user_assignments_settings_with_fixed_names_v.1.4.05-rev3.12.json o peggio...
  • la navigazione della storia, che consiste nel memorizzare tutti i comandi eseguiti e consente di richiamare i comandi inseriti in precedenza per eseguirli di nuovo o alterarli prima di eseguirli.

Per usare propriamente la riga di comando due comandi in particolare sono importanti:

  • dir (ls in linux/MacOS) - che serve per listare tutti i file nella directory corrente
  • cd - che sta per change directory, che serve per cambiare la directory corrente.
Per cui, ogni volta che vogliamo controllare che il file che vogliamo eseguire sia nella directory corrente, possiamo usare dir (o ls) ed eventualmente cd per cambiare directory.

Il comando cd può essere usato per cambiare la directory corrente, spostandosi all'interno delle directory del nostro sistema. Viene utilizzato specificando il nome della directory in cui vogliamo spostarci. Quindi se siamo all'interno della directory C:\Users\Angelo e vogliamo passare nella directory Documents, dobbiamo semplicemente usare il nome della directory:

C:\Users\Angelo> cd Documents
C:\Users\Angelo\Documents>

Per tornare alla directory precedente, usiamo il nome speciale composto da due punti .. come nell'esempio seguente:

C:\Users\Angelo\Documents> cd ..
C:\Users\Angelo>

La sintassi di cd in Linux e MacOS è identica.

Perché è importante conoscere la directory corrente della riga di comando? Perché quando vogliamo eseguire un programma python dobbiamo essere sicuri che il file da eseguire sia nella directory corrente. Alternativamente, dobbiamo specificare a python l'intero percorso del file, comprese tutte le sotto-directory.

Esempio: per eseguire il file hello.py che abbiamo creato prima, potremmo usare i seguenti comandi (che sono equivalenti)

C:\Users\Angelo\Documents\Python Scripts> python hello.py
C:\Users\Angelo>python "C:\Users\Angelo\Documents\Python Scripts\hello.py"

ATTENZIONE!! Poiché il file hello.py che abbiamo creato prima NON contiene codice python, otteremo un'errore... INOLTRE, nella seconda versione del comando abbiamo dovuto usare le virgolette poiché era presente un carattere di spazio nel nome di una delle directory (Python Scripts). INFINE, se abbiamo Linux o MacOS i due comandi sarebbero leggermente diversi, poiché le directory si indicano con lo slash (/), invece che con il backslash (\).

Uso di Python

Python è un linguaggio di programmazione di tipo interpretato e ha una riga di comandi interattiva esattamente come quella che abbiamo per interagire con il sistema operativo. Una delle finestre che abbiamo aperto è esattamente questa riga di comandi e ci serve per iniziare a inserire qualche comando python.

Come si vede, il prompt è diverso ed è composto da tre simboli di maggiore >>>

Possiamo sperimentare qualche operazione aritmetica. Ricordiamo che alcuni degli operatori che python mette a nostra disposizione sono:

  • + per la somma
  • - per la differenza
  • * per i prodotto
  • / per la divisione in virgola mobile
  • // per la divisione intera
  • % per il resto della divisione intera
  • ** per l'elevamento a potenza
  • () le parentesi per cambiare la priorità degli operatori
Facciamo qualche prova...

>>> 7*3
21
>>> 5/2
2.5
>>> 5//2
2
>>> 5%2
1
>>> 5**2
25
>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
>>> 5*(4+3)/2
17.5
>>>

Python mette a disposizione il concetto di funzione, ovvero un modo molto pratico per definire una serie di istruzioni da ripetere. Inoltr, python offre tantissime funzioni che aiutano a scrivere dei programmi utili. Una delle funzioni che useremo spessissimo è la funzione print, ovvero la funzione che stampa a video qualcosa. Quando vogliamo usare una funzione in python dobbiamo sempre usare le parentesi tonde. Quindi possiamo chiedere a python di stampare a video la stringa Hello world! usando le parentesi tonde e le virgolette per definire una stringa nel seguente modo:

>>> print("Hello world!")
Hello world!
>>>

Possiamo anche chiedere a python di stampare una stringa e il risultato di un'operazione:

>>> print ("Zero", 4+4-4-4)
Zero 0
>>>

Eseguire un programma python

Usiamo adesso il nostro editor di testi per scrivere il nostro programma. Cambiamo il testo del file hello.py con questo contenuto:

print("Hello world!")

che stampa a video la stringa "Hello world!". Come possiamo vedere, i caratteri che abbiamo inserito sono colorati in maniera diversa, perché l'editor IDLE ci aiuta a distinguere la sintassi di python: i nomi delle funzioni sono di un colore, i simboli sono di un altro e le stringhe di un altro ancora. Salviamo il file dal menu di IDLE File->Save.

Adesso possiamo eseguire il nostro programma (che, ricordiamo è stato salvato come C:/Users/Angelo/Documents/Python Scripts/hello.py). Dalla riga di comando assicuriamoci di essere nella directory giusta --nel caso usiamo cd per spostarci-- e digitiamo dir (o ls) per essere sicuri che il file sia lì.

E adesso possiamo eseguire il programma eseguendo il comando che abbiamo introdotto prima:

C:\Users\Angelo\Documents\Python Scripts> python hello.py
Hello world!
C:\Users\Angelo\Documents\Python Scripts>

Abbiamo eseguito un programma che stampa una stringa.

Possiamo adesso creare qualsiasi altro programma python semplicemente selezionando dal nostro interprete python il comando File->New File.

Esercitazione

Cerchiamo di scrivere un programma per ognuno dei seguenti problemi:

  • dati in ingresso 2 numeri, l'algoritmo stampa a video la loro somma
  • dati in gresso il valore del raggio di un cerchio, l'algoritmo calcola e stampa a video la circonferenza e l'area del cerchio
  • dati in ingresso 3 valori, l'algoritmo calcola e stampa la media
  • dati in ingresso la base e l'altezza di un rettangolo, l'algoritmo calcola e stampa a video l'area e il perimetro
  • somma dei prodotti di un parametro per una lista di variabili definite in precedenza (es: a=4, b=2.3, c=0.3, prendere d e risolvere l'espressione)

Sfida in python!

Inseriamo nell'editor in un nuovo file questo testo (facciamo copia e incolla)

# Four fours challenge
# Filename: fourfours.py
# Problem description: The four fours challenge!

from math import *
print("Zero is", 4+4-4-4)

e salviamo il nuovo file con il nome fourfours.py. Adesso possiamo eseguire il file e vedere che stampa "Zero is 0".

La sfida consiste nello scrivere un programma che stampa a video tutti i numeri da 0 a 20 usando sempre e soltanto e comunque quattro 4... Vanno bene anche numeri con decimali (ovvero 1.0, 2.0 etc.) e frazionari (ovvero 0.4, 0.19).

Poiché abbiamo usato la riga from math import *, per affrontare la sfida possiamo usare anche due funzioni matematiche fondamentali, ovvero il fattoriale (factorial) e la radice quadrata (sqrt): avremo, ad esempio, che factorial(5) ritorna 5!=5*4*3*2*1=120 e che sqrt(9)=3.

Comments


Topic revision: r1 - 2021-09-22 - AngeloSpognardi






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback