Escriptura amb format ===================== Utilitzeu els mecanismes que Python proporciona per crear strings amb :py:meth:`format `. - Substitució de {} per paràmetres del mètode :py:meth:`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}? .. code:: python >>> 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 :ref:`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. .. code:: python >>> 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: .. code:: python >>> 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 :math:`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: .. code:: python >>> 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'