02. Funzioni input() e print()
Lettura da tastiera e stampa a video
Codice sorgente
nome = input("Inserire nome e cognome: ")
print("E' stato inserito il seguente nominativo: ", nome)
print("==================")
Esecuzione:
Inserire nome e cognome: Antonio Izzo
E' stato inserito il seguente nominativo: Antonio Izzo
==================
Note:
La funzione input() restituisce sempre un'unica stringa. Il testo passato come parametro alla funzione input() è stampato prima di attendere l'input da tastiera
La funzione print() può ricevere in input un numero qualsiasi di parametri (anche zero) e stampa i valori da essi referenziati separati da spazio (comportamento di default). Al termine il cursore è posizionato sulla riga successiva (comportamento di default).
Codice sorgente
a = input("Inserire la misura della base del rettangolo: ")
b = input("Inserire la misura dell'altezza del rettangolo: ")
area = int(a) * int(b)
print("Area:", area)
Esecuzione:
Inserire la misura della base del rettangolo: 5
Inserire la misura dell'altezza del rettangolo: 6
Area: 30
Note:
I valori numerici referenziati da a e b sono delle stringhe. Per trattare i valori come tipi numerici è necessario effettuare una conversione di tipo
Modificare il comportamento di default della print()
Codice sorgente
a = 123
b = 678
c = 9
print(a, b, c, sep=" --- ")
print(a, end="; ")
print(b, end="; ")
print(c)
Esecuzione:
123 --- 678 --- 9
123; 678; 9
Note:
Il parametro sep consente di modificare il carattere di separazione dei campi (di default è lo spazio). In questo esempio il nuovo separatore è la stringa " --- "
Il parametro end consente di modificare il carattere di terminazione della print(), che di default corrisponde al carattere <INVIO> ("\n"). In questo esempio come terminazione è introdotta la stringa "; "
(Notare che lo style guide suggerisce di non utilizzare spazi quando si assegna un valore ad un parametro di una funzione)
Print(): formattazione avanzata del testo con il metodo della f-string
Questa tecnica sfrutta a pieno la possibilità di formattare una stringa anteponendo il carattere f alla stringa stessa.
In questo modo nella stringa è possibile inserire dei segnaposto delimitati da una coppia di parentesi graffe ({}). Le parentesi graffe devono delimitare una variabile precedentemente definita e, opzionalmente, un parametro di formattazione.
Ad esempio
val = 12.34567
mystr = f'{val:.2f}'
Nella coppia di parentesi graffe compare la variabile val e il parametro di formattazione :.2f, che definisce il numero di cifre decimali da includere.
Dopo l'assegnazione, la variabile mystr referenzia la stringa "12.34".
Formattazione del testo
Codice sorgente
s1 = 'a'
s2 = 'ab'
s3 = 'abc'
s4 = 'abcd'
print(f'{s1:>10}')
print(f'{s2:>10}')
print(f'{s3:>10}')
print(f'{s4:>10}')
Esecuzione:
a
ab
abc
abcd
Note:
La stringa è giustificata a destra occupando 10 caratteri, in base alla direttiva :>10
Formattazione dei valori numerici
Codice sorgente
a = 1234.5
b = 3.141592653
c = 7
d = 76
e = 765
print(f'{a:.3f}')
print(f'{b:.3f}')
print(f'{b:8.3f}')
print(f'{c:4d}')
print(f'{d:4d}')
print(f'{e:4d}')
Esecuzione:
1234.500
3.142
3.142
7
76
765
Note:
f'{a:.3f}' e f'{b:.3f}': la formattazione si applica al tipo float e prescrive esattamente 3 cifre decimali
f'{b:8.3f}': la formattazione si applica al tipo float e prescrive esattamente 8 caratteri (inclusi spazi, parte intera, punto decimale e cifre decimali) di cui 3 cifre decimali
f'{c:4d}' f'{d:4d}' f'{e:4d}': la formattazione si applica al tipo int e prescrive 4 caratteri (inclusi eventuali spazi)
Formattazione della data
Codice sorgente
import datetime
now = datetime.datetime.now()
print(f'{now:%Y-%m-%d %H:%M %S}')
Esecuzione:
2020-02-13 14:46 40
Note:
La data è acquisita nella variabile now tramite l'istruzione datetime.datetime.now()
La variabile now (che referenzia la data) è formattata facendo riferimento alle singole parti della data in base al seguente schema:
%Y anno
%m mese
%d giorno
%H ora
%M minuti
%S secondi
Conversione di base
Codice sorgente
a = 300
print(f"{a:x}") # notazione esadecimale
print(f"{a:o}") # notazione ottale
print(f"{a:b}") # notazione binaria
print(f"{a:e}") # notazione scientifica
Esecuzione:
12c
454
100101100
3.000000e+02
Caratteri speciali
Le parentesi graffe nelle f-string sono caratteri speciali.
Per includere le parentesi graffe occorre ripetere due volte il carattere.
Le sequenze speciali \n, \t hanno il consueto significato.
Esempio:
Codice sorgente
print(f'esempio di f-string {{a}}\ncon caratteri speciali')
Esecuzione:
esempio di f-string {a}
con caratteri speciali
Print(): formattazione avanzata del testo con il metodo della old string
Questa tecnica richiama da vicino la modalità di formattazione della printf() del linguaggio C
Codice sorgente
a = 123
b = 678.9
c = 456.7891
print("Metodo old string\na=%d\nb=%f\nc=%.2f" % (a, b, c))
Esecuzione:
Metodo old string
a=123
b=678.900000
c=456.79
Note:
Notare che con questa tecnica la print() riceve un unico parametro
L'elenco delle variabili richiamate dalla stringa di formattazione è una tupla
Sito: 7ecnologie
Sezione: 09. Python
Capitolo: 02. Introduzione a Python
Paragrafo: 02. Funzioni input() e print()
Indice dei capitoli: 00. Risorse - 01. Ambiente di sviluppo - 02. Introduzione a Python - 03. Accesso al DB - 04. La libreria tkinter - 05. Tutorial - 98. Esercizi
Indice dei paragrafi: 01. Primi passi - 02. Funzioni input() e print() - 03. Liste - 04. Tuple - 05. Operatori e conversione di tipi - 06. Dizionari - 07. Insiemi - 08. Il ciclo for - 09. Gestione delle eccezioni - 10. Definizione di funzioni - 11. Parametri delle funzioni