Escriptura amb format¶
Utilitzeu els mecanismes que Python proporciona per crear strings amb
format.
Substitució de {} per paràmetres del mètode
str.format()En el shell de Python, comproveu els valors successius que pren la variable s. Enteneu el que representen els {}? Què significa el valor que es posa entre les dues claus {0} o {1}?
>>> s = "nom:" >>> s = "nom: {}".format('Pau') >>> s = "nom: {}; cognoms: {} {}".format('Pau', 'Marquez', 'Tort') >>> s = "nom: {0}; cognoms: {1} {2}".format('Pau', 'Marquez', 'Tort') >>> s = "nom: {1}; cognoms: {2} {0}".format('Tort', 'Pau', 'Marquez') >>> s = "nom: {2}; cognoms: {1} {0}".format('Tort', 'Pau', 'Marquez') >>> nom = 'Andreu' >>> s = "nom: {}".format(nom)
Presentació dels valors:
Estudieu el mini-llenguatge de formatació dels strings. Feu les següents proves en el shell de Python. Les enteneu? Feu noves proves per assegurar-vos-en. Recordeu que “s” és per strings, “d” per int i “f” per float.
>>> s = "nom: {0:5s}".format('Pau')
>>> s = "nom: {0:10s}".format('Pau')
>>> s = "nom: {:15s}".format('Pau')
>>> s = "nom: {:>10s}".format('Pau')
>>> s = "nom: {:<10s}".format('Pau')
>>> s = "nom: {:^10s}".format('Pau')
>>> s = "nom: {:^10s}".format('Pau')
Prova ara:
>>> s = "nom: {0:5s} edat:{1:2d} pes:{2:4.2f}".format('Pau', 24, 67.89765)
>>> s = "nom: {0:5s} edat:{1:5d} pes:{2:0.2f}".format('Pau', 24, 67.89765)
>>> s = "nom: {0:5s} edat:{1:5d} pes:{2:0.2f}".format('Pau', 24, 67.89765)
En el shell de Python, escriviu la paraula “hola” de manera que aparegui com es mostra a continuació: alineada a l’esquerra, amb un caràcter en blanc al davant, amb 2, amb 3 i finalment amb 4.
hola
hola
hola
hola
En el shell de Python, escriviu els reals \(34.567, 34.567*10^1, 34.567*10^2, 34.567*10^3, 34.567*10^4\) de tal forma que tots ocupin 9 espais i tinguin 2 decimals. Proveu d’escriure -ho amb 1 sol print. Utilitzeu el caràcter “\n” per crear els salts de línia.
En el mòdul p1.py, escriviu la funció escriuformat que donat el nom d’un municipi (un string), la seva superfície (un float) i el seu nombre d’habitants (un enter) retorni el string següent: «municipi: nom sup: superfície habs: habitants», de manera que el nom del municipi ocupi com a mínim 10 espais i estigui alineat a l’esquerra, que la superfície ocupi com a mínim 5 espais i tingui dos decimals i que l’enter ocupi com a mínim 6 espais. La funció ha de passar el següent doctest:
>>> import p1
>>> p1.escriuformat("L'ametlla de Mar", 66.9, 7704)
"municipi: L'ametlla de Mar sup: 66.90 habs: 7704"
>>> p1.escriuformat('Barcelona', 101.9, 1621000)
'municipi: Barcelona sup: 101.90 habs: 1621000'
>>> p1.escriuformat('Sant Julià de Vilatorta', 15.9, 3076)
'municipi: Sant Julià de Vilatorta sup: 15.90 habs: 3076'
>>> p1.escriuformat('Palanques', 14.32, 33)
'municipi: Palanques sup: 14.32 habs: 33'