Corso Python Base - 04: Conversioni di Tipo, Print(), Input() e Primo Programma

Video Corso Base di Python 3

04: Conversioni di Tipo, Print(), Input() e Primo Programma

Benvenuti a questa quarta lezione della serie di lezioni dedicate alle basi di Python 3.6

In questo episodio parleremo di conversioni tra tipi diversi di dati e di due delle funzioni integrate in Python più utilizzate, la funzione print() e la funzione input().

Una volta spiegati questi concetti scriveremo finalmente il nostro primo programma in Python 3.6, utilizzando l'editor testuale integrato in IDLE.

Fin'oro abbiamo introdotto tre tipi di dato: Integer, Float e Stringhe: non abbiamo peró spiegato come fare ad combinare questi tipi di dato differenti tra di loro. Come fare ad esempio a combinare un numero intero con una stringa? magari state pensando di utilizzare un operatore come il +, e in questo caso ci siete andati vicini... ma non è così immediato!

Facciamo delle prove. Definiamo una variabile età e assegnamole un numero intero:

>>> età = 24

Definiamo ora un'altra variabile e assegnamole una stringa:

>>> testo = 'La mia età è... '

Proviamo ora a combinare età e testo e vediamo cosa succede!

>>> età + testo
Traceback (most recent call last):
  File "stdin", line 1, in 
TypeError: unsupported operand type(s) for +: 'int' and 'str'

ops! come forse alcuni di voi avranno sospettato, la Shell Interattiva ci restituisce un errore.

Python sa che state cercando di effettuare una somma tra tipi di dato diversi, e vi avverte che l'operatore + non è compatibile per somme tra interi e stringhe. In sostanza vi avverte che non puó effettuare la conversione necessaria ad effettuare la somma, a meno che non siate voi a chiederglielo in maniera esplicita.

Come chiedere quindi a Python di effettuare una conversione? Per fare questo esistono delle funzioni integrate che fanno la conversione per noi. Per convertire un intero in stringa usiamo la funzione str() Come per tutte le funzioni, le passiamo quello che viene chiamato parametro tra le parentesi, nel nostro caso il parametro sarà la variabile età:

>>> str(età) + testo
'La mia età è... 24'

Analizziamo ora il caso opposto, ovvero il caso in cui abbiamo una stringa composta solo da simboli numerici, e vogliamo convertirla in numero intero per usarla così in dei calcoli matematici. Creiamo una variabile chiamata arance_per_sacco e assegnamole una stringa composta da caratteri numerici, in questo caso un 27 magari:

>>> arance_per_sacco = '27'

Come fare ora ad ottenere il numero totale di arance presenti in tre sacchi? Guardate cosa succede se proviamo a moltiplicare la variabile per 3:

>>> arance_per_sacco * 3
'272727'

mmm per quanto buone, duecentosettantaduemilasettecentoventisette arance sono davvero troppe! La funzione che utilizzeremo in questo caso è, come è possibile immaginare per logica, la funzione int(). Facciamo quindi...

>>> int(arance_per_sacco) * 3
81

ed ecco svelato il nostro quesito matematico, le arance sono 81.

In maniera molto simile potete ottenere un Float tramite la funzione float().

Volendo convertire la variabile età del primo esempio facciamo:

>>> float(età)
24.0

Bene, è arrivato il momento di introdurre quella che è forse la funzione più famosa nel regno di Python, la funzione print(). Ció che print() fa è mostrarci in output qualsiasi cosa le passiamo...

>>> print(str(33)+ ' trentini entrarono a Trento... passando per la funzione print :) ')
'33 trentini entrarono a Trento... passando per la funzione print :) '

Per andare a capo si utilizza il carattere newline, ovvero \n, in questo modo:

>>> print(' Prima riga \n Seconda riga \n ecc ecc...')
'Prima riga
Seconda riga
ecc ecc...'

Oppure potete direttamente effettuare un print multilinea utilizzando 3 apici, in questo modo:

>>> print('''prima linea
seconda linea
terza linea...''')
'prima linea
seconda linea
terza linea...'

Print viene usata davvero ovunque, è raro trovare uno script in cui non sia presente almeno una volta. Faremo degli esempi più complessi man mano che introdurremo nuovi concetti.

La funzione input() invece ci serve per l'inserimento di dati da parte dell'utente in esecuzione: questo ci permette di rendere le cose estremamente interattive; ció che inserirete tramite input() verrà passato a Python sotto forma di stringa. Ad esempio, definiamo una variabile X ed assegnamole un valore introdotto tramite la funzione input():

>>> X = input()
23

Come possiamo verificare con type(): Definiamo una variabile X ed assegnamole un valore introdotto tramite la funzione input():

>>> type(X)
class 'str'

Anche se abbiamo inserito apparentemente un numero, questo viene assegnato alla variabile sotto forma di stringa.

Molto bene gente! entriamo nel cuore della lezione con la scrittura del nostro primo programma! Per fare questo avremo bisogno dell'editor testuale di cui abbiamo parlato in uno dei video precedenti, quindi cliccate su file/new file per aprirlo. Nota: per fare in modo che il codice sull'editor testuale venga eseguito e passato alla Shell, dovete prima salvarlo come file. Cliccate su file/save as; in questo caso lo salveremo come "esempio". I programmi scritti in Python sono file di testo salvati con l'estensione py, quindi nel nostro caso il file salvato sarà esempio.py.

print('Ciao programmatore! Benvenuto nel tuo primo programma in Python! Come ti chiami?')
nome = input()  
print(nome + '... e vuoi imparare a usare Python? ottima scelta!')
età = input('Quanti anni hai? ')  
print(età + ' anni. Bene, il giorno in cui ne compirai ' + str(int(età) + 1) + ' ti farò gli auguri!') 

Anzitutto salta all'occhio che abbiamo definito due variabili, nome ed età, in cui il programma andrà ad assegnare il valore che inseriremo tramite la funzione input(). Come vedete ho impostato input in due modi diversi: per la variabile nome non ho inserito alcuna frase tra le parentesi di input(), al contrario di etá in cui tra le parentesi ho scritto invece 'Quanti anni hai?' Questo breve messaggio comparirà durante l'inserimento dei valori nella variabile. Come potete notare per la variabile nome ho incluso un "Come ti chiami?" nel print() precedente. Entrambi le modalità sono corrette, utili e preferibili a seconda del caso specifico in cui vi trovate. Nell'ultimo print() convertiamo età in intero in modo da poterci sommare 1, e poi riconvertiamo in stringa in modo da poterlo integrare nel messaggio.

Finalmente: andiamo su run/run module per eseguire il programma. Anzitutto viene eseguita la prima funzione print(), che ci restituisce la frase:

>>> 'Ciao programmatore! Benvenuto nel tuo primo programma in Python! Come ti chiami?'

Ora sta venendo processata la funzione input, quindi il programma si aspetta da noi un valore... inseriamo il nostro nome...

>>> 'Ciao programmatore! Benvenuto nel tuo primo programma in Python! Come ti chiami?'
Mike

Entra in gioco un'altra funzione print(), che combina stavolta anche il nostro nome...

>>> 'Ciao programmatore! Benvenuto nel tuo primo programma in Python! Come ti chiami?'
Mike
'Mike... e vuoi imparare a usare Python? ottima scelta!'

Quindi ancora un'altra chiamata input, stavolta che ci chiede da se quanti anni abbiamo, rispondiamo!

>>> 'Ciao programmatore! Benvenuto nel tuo primo programma in Python! Come ti chiami?'
Mike
'Mike... e vuoi imparare a usare Python? ottima scelta!'
'Quanti anni hai?'
24

E quindi l'ultima print, leggermente più sofisticata:

>>> 'Ciao programmatore! Benvenuto nel tuo primo programma in Python! Come ti chiami?'
Mike
'Mike... e vuoi imparare a usare Python? ottima scelta!'
'Quanti anni hai?'
24
'24 anni. Bene, il giorno in cui ne compirai 25 ti faró gli auguri!'

Ricapitolando:

  • Provare a combinare tipi di dato diversi tra loro porta spesso alla comparsa di errori
  • Per evitare questi errori dobbiamo spesso effettuare delle conversioni
  • Per effettuare conversioni usiamo le funzioni str(), int(), e float(), a cui passiamo il valore o la variabile da convertire
  • La funzione print() ci mostra in output qualsiasi cosa le passiamo, e puó essere impostata per output multiriga
  • La funzione input() ci permette di inserire e assegnare valori mentre il programma è in esecuzione

Menu della Serie