2. Uso dell'interprete di Python
********************************


2.1. Invocazione dell'interprete
================================

L'interprete Python è solitamente installato come
"/usr/local/bin/python3.14" su quelle macchine dove è disponibile;
aggiungere "/usr/local/bin" al path di ricerca della vostra shell Unix
rende possibile avviarlo digitando il comando:

   python3.14

alla shell. [1] Poiché la scelta della cartella in cui è situato
l'interprete è un'opzione di installazione, è possibile trovarlo anche
in altri percorsi; verificate con il vostro guru Python o con
l'amministratore di sistema.  (Ad esempio, "/usr/local/python" è
un'alternativa popolare.)

Sulle macchine Windows dove hai installato Python dallo Microsoft
Store, il comando "python3.14" sarà disponibile. Se hai installato il
py.exe launcher, puoi utilizzare il comando "py". Consulta Python
Install Manager per altri modi di avviare Python.

Digitando un carattere di fine file ("Control"-"D" su Unix,
"Control"-"Z" su Windows) nel prompt, l'interprete esce con stato
zero.  Se non funziona, è possibile uscire dall'interprete digitando
il seguente comando: "quit()".

Le funzioni di editing di linea dell'interprete includono l'editing
interattivo, la sostituzione della *history* e il completamento del
codice su sistemi che supportano la libreria GNU Readline.  Forse il
controllo più veloce per vedere se la modifica da riga di comando è
supportata è digitando "Control"-"P" al primo prompt di Python che si
ottiene.  Se emette un segnale acustico, si ha una modifica da riga di
comando; vedere Appendix Editing dell'input interattivo e sostituzione
della history per un'introduzione alle combinazioni di tasti.  Se non
vi sembra accada nulla, o se vedete la stringa "^P", la modifica a
riga di comando non è disponibile; potrai usare solo il *backspace*
per rimuovere i caratteri dalla riga corrente.

L'interprete opera in maniera simile alla shell Unix: quando viene
chiamato con lo *standard input* collegato ad un dispositivo tty,
legge ed esegue i comandi in modo interattivo; quando viene chiamato
con un nome di file come argomento o con un file come *standard
input*, legge ed esegue un *script* da quel file.

Un secondo modo di iniziare l'interprete è "python -c command [arg]
...", che esegue le istruzioni in *command*, analogamente all'opzione
"-c".  Poiché le istruzioni di Python spesso contengono spazi o altri
caratteri speciali per la shell, di solito si consiglia di racchiudere
*command*, nella sua interezza, con apici singoli.

Alcuni moduli Python sono utili anche come script.  Questi possono
essere invocati usando "python -m module [arg] ...", che esegue il
file sorgente del *modulo* come se tu avessi scritto il suo nome
completo sulla riga di comando.

Quando si utilizza un file di script, a volte è utile essere in grado
di eseguire lo script ed entrare in modalità interattiva in seguito.
Questo può essere fatto passando "-i" prima dello script.

Tutte le opzioni della riga di comando sono descritte in Command line
and environment.


2.1.1. Passare Argomenti
------------------------

Una volta resi noti all'interprete, il nome dello script e gli
argomenti aggiuntivi vengono poi trasformati in una lista di stringhe
e assegnati alla variabile "argv" nel modulo "sys".  È possibile
accedere a questa lista eseguendo "importa sys".  La lunghezza della
lista è almeno una; quando non viene dato alcuno script e nessun
argomento, "sys.argv[0]" è una stringa vuota.  Quando il nome dello
script è dato come "'-'" (che significa ingresso standard),
"sys.argv[0]" è settato a "’-‘". Quando è usato il *comando* "-c",
"sys.argv[0]" viene settato a "’-c’".  Quando viene usato il *modulo*
"-m", "sys.argv[0]"  viene impostato con il nome completo del modulo.
Tutte le opzioni trovate dopo i comandi "-c" o i moduli "-m" non
vengono consumati dell’interprete di Python che processa le opzioni,
ma vengono lasciate in "sys.argv" in modo che vengano poi gestite
manualmente dal comando o dal modulo.


2.1.2. Modalità Interattiva
---------------------------

Quando i comandi vengono letti da una tty, l'interprete è detto essere
in *modo interattivo*.  In questa modalità richiede il comando
successivo con il *prompt*, di solito tre simboli di *maggiore di*
(">>>"); per le linee di continuazione viene emesso un *prompt*
secondario, che per impostazione predefinita consiste di tre punti
("..."). L'interprete stampa un messaggio di benvenuto indicando il
numero di versione e un avviso di copyright prima di stampare il
*prompt*:

   $ python3.14
   Python 3.14 (default, April 4 2024, 09:25:04)
   [GCC 10.2.0] on linux
   Type "help", "copyright", "credits" or "license" for more information.
   >>>

Le linee di continuazione sono necessarie quando si inserisce un
costrutto su più linee. Come esempio, date un'occhiata a questa
dichiarazione "if":

   >>> the_world_is_flat = True
   >>> if the_world_is_flat:
   ...     print("Be careful not to fall off!")
   ...
   Be careful not to fall off!

Per ulteriori informazioni sulla modalità interattiva, vedere Modalità
Interattiva.


2.2. L'interprete e il suo ambiente
===================================


2.2.1. Codifica del codice sorgente
-----------------------------------

Per impostazione predefinita, i file sorgente di Python sono trattati
come codificati in UTF-8.  In questa codifica, i caratteri della
maggior parte delle lingue del mondo possono essere usati
simultaneamente in stringhe, variabili e commenti --- la libreria
standard tuttavia usa solo caratteri ASCII per le variabili, una
convenzione che ogni codice portatile dovrebbe seguire.  Per
visualizzare correttamente tutti questi caratteri, l'editor deve
riconoscere che il file è UTF-8, e deve utilizzare un font che
supporti tutti i caratteri del file.

Per dichiarare una codifica diversa da quella predefinita, è
necessario aggiungere un commento speciale come *prima* riga del file.
La sintassi è la seguente:

   # -*- coding: encoding -*-

dove *codifica* è uno dei "codecs" validi supportati da Python.

Per esempio, per dichiarare che deve essere usata la codifica
Windows-1252, la prima riga del file del codice sorgente dovrebbe
essere:

   # -*- coding: cp1252 -*-

Un'eccezione alla regola della *prima linea* è quando il codice
sorgente inizia con una linea UNIX “shebang” line. In questo caso, la
dichiarazione della codifica dovrebbe essere aggiunta come seconda
riga del file.  Per esempio:

   #!/usr/bin/env python3
   # -*- coding: cp1252 -*-

-[ Note ]-

[1] Su Unix, l'interprete Python 3.x non è installato di default con
    l'eseguibile chiamato "python", in modo che non sia in conflitto
    con un eseguibile Python 2.x installato contemporaneamente.
