2. Usare l’interprete Python.

2.1. Invocare l’interprete

L’interprete Python di solito è installato in /usr/local/bin/python3.10 sui computer dove è disponibile. Aggiungere /usr/local/bin alla path della shell Unix vi permette di invocarlo con il comando 1

python3.10

Dal momento che la scelta della directory dell’interprete è un’opzione di installazione, sono possibili altre configurazioni. Chiedete a un esperto di Python o all’amministratore del sistema. Per esempio, un’alternativa popolare è /usr/local/python.

Su Windows, se avete installato Python dal Microsoft Store, sarà disponibile il comando python3.10. Se avete installato il launcher py.exe potete usare il comando py. Il paragrafo Excursus: Impostare le variabili d’ambiente descrive altri modi per avviare Python.

Inserire il carattere terminatore del file (Control-D in Unix, Control-Z in Windows) nel prompt principale costringe l’interprete a uscire con exit status 0. Se non funziona, potete uscire dall’interprete con questo comando: quit().

Sui sistemi che supportano la libreria GNU Readline, l’interprete consente di fare editing interattivo, auto-completamento e storico degli inserimenti. Il modo più rapido per controllare se l’editing della riga di comando è supportato, è inserire Control-P appena il prompt primario di Python è disponibile. Se sentite un beep, l’editing è supportato; l’Appendice Editing e history substitution nell’input interattivo presenta un’introduzione a questi comandi. Se invece non succede nulla, o se risponde semplicemente ^P, l’editing non è disponibile: potete solo usare il backspace per cancellare i caratteri.

L’interprete funziona più o meno come la shell di Unix: quando è invocato con lo standard input collegato al terminale, legge ed esegue interattivamente i comandi; quando è invocato con il nome di un file come parametro, o con lo standard input collegato a un file, legge ed esegue il file come script.

Un altro modo di avviare l’interprete è python -c command [arg] ..., che esegue l’istruzione (o le istruzioni) in command, analogamente all’opzione -c della shell. Siccome le istruzioni Python di solito comprendono spazi o altri caratteri speciali della shell, è consigliabile racchiudere command tra apici singoli.

Alcuni moduli Python possono essere eseguiti come script. Si possono invocare con python -m module [arg] ..., che esegue il file module come se ne aveste scritto il nome per intero nella riga di comando.

Quando si esegue uno script, talvolta è utile poter entrare in modalità interattiva al termine dell’esecuzione del file. Per fare questo, passate l’opzione -i prima del nome dello script.

Tutte le opzioni della riga di comando sono descritte nel capitolo Riga di comando e ambiente della documentazione.

2.1.1. Passare dei parametri

Quando specificati, il nome dello script ed eventuali successivi parametri sono convertiti in una lista di stringhe e assegnate alla variabile argv del modulo sys. Potete accedere a questa lista eseguendo import sys. La lista contiene sempre almeno un elemento; se non passate nessuno script né altri parametri, sys.argv[0] è una stringa vuota. Quando invece di uno script passate '-', per indicare lo standard input, allora sys.argv[0] è impostato a '-'. Quando usate -c command, allora sys.argv[0] è '-c'. Quando usate -m module, sys.argv[0] è il nome completo del modulo eseguito. Le opzioni eventualmente passate dopo -c command oppure -m module non sono processate dall’interprete Python ma sono comunque disponibili in sys.argv e possono quindi essere gestite dal modulo o dal comando.

2.1.2. Modalità interattiva

Quando i comandi sono letti da un terminale, l’interprete è in modalità interattiva. In questa condizione, l’interprete resta in attesa del comando successivo presentando il prompt primario, di solito tre segni «maggiore-di» (>>>). Per le linee di continuazione viene usato il prompt secondario, in genere tre punti (...). L’interprete stampa un messaggio di benvenuto che riporta il numero di versione e l’indicazione del copyright, prima di presentare il prompt:

$ python3.10
Python 3.10 (default, June 4 2019, 09:25:04)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Le linee di continuazione sono necessarie per i costrutti multi-linea. Per esempio, osservate questa istruzione 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, si veda Modalità interattiva.

2.2. L’interprete e il suo ambiente

2.2.1. Encoding del codice

I file di codice Python sono processati con l’encoding UTF-8 di default. In questo encoding, i caratteri della gran parte dei linguaggi umani possono essere usati contemporaneamente nelle stringhe di testo, negli identificatori e nei commenti. Tuttavia la libreria standard usa esclusivamente caratteri ASCII per gli identificatori, una convenzione che il codice interessato alla compatibilità dovrebbe rispettare. Per visualizzare correttamente i caratteri, il vostro editor deve saper riconoscere l’encoding UTF-8 e deve usare un font che supporta tutti i caratteri usati nel file.

Per dichiarare un encoding diverso da quello di default, occorre aggiungere una riga speciale di commento esattamente all’inizio del file. La sintassi è questa:

# -*- coding: encoding -*-

dove encoding è uno dei vari codecs supportati da Python.

Per esempio, per dichiarare che occorre usare l’encoding Windows-1252 per leggere il file, la prima riga del codice dovrebbe essere:

# -*- coding: cp1252 -*-

L’eccezione alla regola è quando lo script inizia invece con una shebang UNIX. In questo caso, la dichiarazione di encoding deve essere la seconda riga del file. Per esempio:

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

Note

1

In ambiente Unix, l’eseguibile dell’interprete Python 3.x non è installato col nome python, così da non entrare in conflitto con l’eseguibile di Python 2.x, anch’esso contemporaneamente presente.