Esperimenti con Python
Stamani stavo sperimentando un po la sintassi di Python, un linguaggio di programmazione che ultimamente sta riscuotendo un buon successo. Tanto per comprendere due o tre cose basilari sulle meccaniche alla sua base, e capire quanto potrebbe essere difficile imparare a padroneggiarlo… o almeno conoscerlo alla meno peggio… mi sono scritto questo programmino stupidissimo, basato su una classe che permette di “salutare” la gente
In pratica una versione appena più evoluta del classico “Hello World” che viene ancora oggi insegnato a scuola.
Nell’esempietto si riescono a vedere impiegata in Python una classe, una proprietà / variabile per la classe, due metodi di cui uno costruttore, il ciclo di iterazione FOR ed ovviamente la creazione di un’istanza di questa classe ed il suo utilizzo. Se in qualche maniera può tornare comodo anche a voi per capire qualcosa in più di Python dateci un’occhiata.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | #!/usr/bin/env python #coding=utf-8 # Definizione della classe class Pluto: # Definizioni delle proprietà interne alla classe # Da quello che ho capito in Python purtroppo # non esistono variabili private in una classe Anni = 18 # Definizione del metodo costruttore # E' sempre importante ricordarsi di passare # ai metodi di una classe il parametro "self" # che permette di riferirsi alle proprietà / variabili # e metodi della classe in cui si trovano def __init__(self): print("Inizializzazione della classe...") print("Valore di default dell'età: " + str(self.Anni)) # Definizione del metodo "saluta" # che saluta sullo schermo una persona. # Il nome della persona viene passato all'interno # di una variabile chiamata "P_cNome" (una mia # convenzione è far cominciare i nomi dei parametri # con il prefisso "P_" e specificare nella prima lettera # del nome della variabile il tipo di dati da lei contenuto, # in questo caso [c]aratteri) # Quando non viene passato il nome della persona, # da salutare scrive automaticamente "Gigi". def saluta(self, P_cNome = "Gigi"): print("Ciao a tutti belli e brutti") # Scrive i numeri da 1 a 9 # (attenzione al range che arriva fino # all'elemento precedente a quello specificato # nel secondo parametro di "range") nInd = 0 cTemp = "" for nInd in range(1, 10): cTemp += str(nInd) if (nInd < 9): cTemp += ", " print(cTemp) if (P_cNome != ""): # Il backslash ( \ ) specifica a Python che # l'istruzione prosegue nella riga successiva print("Ma soprattutto ciao a " + P_cNome + \ " che di anni ne ha " + str(self.Anni)) # Scrive i numeri da 10 a 1 # (attenzione al secondo parametro del range # che arriva fino all'elemento precedente) nInd = 0 cTemp = "" for nInd in range(10, 0, -1): cTemp += str(nInd) if (nInd > 1): cTemp += ", " print(cTemp) # Crea un'istanza della classe "pluto" i = Pluto() # Ora usa l'istanza print("\n" + "Salutiamo la prima persona di oggi:" + "\n") i.saluta("Ugo") # Si, lo so... avrei potuto scrivere "\nSalutiamo ... oggi:\n" # ma così il codice secondo me risulta più leggibile print("\n" + "Ed ora salutiamo un'altra persona:" + "\n") i.Anni = 36 i.saluta("Giorgio") print("\n" + "Ed infine salutiamo l'ultima persona:" + "\n") i.Anni = 48 i.saluta() |
Il risultato del programmino è il seguente:
Inizializzazione della classe…
Valore di default dell’età: 18Salutiamo la prima persona di oggi:
Ciao a tutti belli e brutti
1, 2, 3, 4, 5, 6, 7, 8, 9
Ma soprattutto ciao a Ugo che di anni ne ha 18
10, 9, 8, 7, 6, 5, 4, 3, 2, 1Ed ora salutiamo un’altra persona:
Ciao a tutti belli e brutti
1, 2, 3, 4, 5, 6, 7, 8, 9
Ma soprattutto ciao a Giorgio che di anni ne ha 36
10, 9, 8, 7, 6, 5, 4, 3, 2, 1Ed infine salutiamo l’ultima persona:
Ciao a tutti belli e brutti
1, 2, 3, 4, 5, 6, 7, 8, 9
Ma soprattutto ciao a Gigi che di anni ne ha 48
10, 9, 8, 7, 6, 5, 4, 3, 2, 1