CONCLUSIONE

COSA AVETE IMPARATO

Spero che siate riusciti ad arrivare fin qui senza troppi problemi. La mia intenzione, come ho detto nell'introduzione, era quella di mostrarvi, insieme alla sintassi del linguaggio, anche il "modo di pensare" di un programmatore che scrive del codice.

Quello che abbiamo visto durante il tutorial non esaurisce certo le possibilità di Python: ci sono molti argomenti piuttosto complessi che non ho toccato per niente, mentre per altri che abbiamo visto non ho mostrato tutte le alternative possibili, perchè sono convinto che per un principiante sia più facile imparare a fare ogni cosa in un solo modo piuttosto che avere molte alternative che possono all'inizio confondere le idee. Uno dei punti di forza di Python è proprio la possibilità di essere usato a vari livelli di esperienza: i programmatori esperti possono scegliere tra varie alternative sintattiche per fare alcune cose, mentre per i principianti basta conoscere solo una piccola parte delle istruzioni possibili.

COME CONTINUARE

Come ho detto nell'introduzione, è abbastanza difficile districarsi nella documentazione per Python. Di nuovo, pur avendo esaminato una certa quantità di documentazione e tutorial, mi sento un po' in difficoltà nel dovervi consigliare qualcosa. Ripeto che molto materiale si può reperire sul sito Python italiano http://www.python.it/ o su quello in inglese https://www.python.org/ che, essendo internazionale, è più aggiornato (tenete presente che sono mantenuti da volontari).

Nel caso trovaste documentazione per Python 2 ecco una brevissima panoramica delle principali differenze: se trovaste esempi di programmi scritti per questa versione dovreste "correggerli" per adattarli alla versione 3.

DIFFERENZE TRA PYTHON 2 E PYTHON 3

La funzione print(). La differenza più evidente sta nella funzione print(). In Python 2 la parola print non è una funzione ma un comando (come if, while ...) e quindi si scrive senza parentesi. Gli argomenti vanno sempre scritti di seguito, separati da virgole, e si può lasciare una virgola finale per indicare che non si deve andare a capo. Ecco qualche esempio con la "traduzione" in Python 3

Python 2 Python 3
print "mamma" print("mamma")
print "Il doppio di", a "e'", 2 * a print("Il doppio di", a, "e'", 2 * a)
print a, b, print(a, b, end=" ")

La funzione input(). Un'altra importante differenza sta nella funzione input(), che in Python 2 ha un significato completamente diverso dalla nostra input() e si usa raramente. La funzione corrispondente alla nostra è invece raw_input() (che è stata eliminata in Python 3). Ecco anche qui qualche esempio:

Python 2 Python 3
nome = raw_input("Come ti chiami? ") nome = input("Come ti chiami? ")
n = int(raw_input("Scrivi un numero ")) n = int(input("Scrivi un numero "))
input("Scrivi un comando") (la troverete raramente) exec(input("Scrivi un comando"))

Le stringhe. Python 2 aveva due tipi di stringhe: le stringhe normali e le unicode (unicode è una codifica dei caratteri più moderna che permette, ad esempio, di includere anche lettere in altri alfabeti come l'arabo o il cinese). In Python 3 tutte le stringhe sono unicode, quindi si possono creare con la funzione str(). Tenete presente che in Python 2 si usavano spesso i prefissi (una lettera prima della stringa che indicava il suo tipo). Questi prefissi sono stati mantenuti in Python 3: alcuni non hanno più significato ma sono stati mantenuti per compatibilità. Nel dubbio è meglio lasciarli.

Python 2 Python 3
nome = unicode("Mario Rossi") nome = "Mario Rossi"
nome = u"Mario Rossi" nome = "Mario Rossi" (la u si può comunque lasciare senza provocare errori)

I file. In Python 2 esiste l'oggetto file che si usa per l'I/O su disco e che può essere creato con un'apposita funzione. In Python 3 l'oggetto è stato sostituito da una serie di oggetti più specifici che, come abbiamo detto, vengono creati con la funzione open() (che crea l'oggetto giusto in base alla modalità che indichiamo). Quindi la funzione file() è in pratica sostituita dalla open()

Python 2 Python 3
f = file("miofile.txt") f = open("miofile.txt")

I moduli. Molti moduli di Python 2 hanno l'iniziale maiuscola. In Python 3 gli stessi moduli hanno l'iniziale minuscola. In caso di ImportError controllate il loro nome

Python 2 Python 3
import Tkinter import tkinter