python

Logo

Introducció al llenguatge Python

View the Project on GitHub jrodr236/python

6 . Python: strings

Formatació de strings (cadenes de caràcters)

Per imprimir variables dins d’una cadena de caràcters es pot fer de diverses maneres. La primera seria concatenant amb “+”:

nom = "Manolo"
missatge = "El guanyador del premi és " + nom + ". Felicitats!"
print(missatge)

La segona seria intercal·lant les variables entre comes (,):

nom = input("Digues el teu nom: ")
edat = input ("Digues la teva edat: ")
print ("Hola", nom, ", tens", edat, "anys.")

Tasca opcional: Soluciona el problema amb l’espai abans de la coma (,) de l’últim exemple.

La tercera seria intercal·lant les variables amb %, similar al C, i posant els arguments entre parèntesi (és una tupla, ho veurem més tard) després d’un “%”:

nom = "Joan"
edat = 43
print("Hola %s, tens %d anys." % (nom, edat))

Els principals valors que pot prendre son:

Per controlar el nº de decimals podem posar el modificador <nombre_de_decimals> entre el % i la f. Per exemple:

pi = 3.14159
print("pi = %.3f" % pi)

Imprimeix només 3 decimals (al tanto que arrodoneix!):

pi = 3.142

Més coses de strings

Fixem-hos que, al contrari que Java, + no converteix automàticament els números en Strings.

pi = 3.14
#text = 'El valor de pi és ' + pi       ## NO funciona
text = 'El valor de pi és '  + str(pi)  ## si

Indicant una r abans de l’string evita el tractament especial de les barres invertides \. A part, es pot fer servir """ per escriure strings de més d’una línia.

cooked = 'això\t i \n allò'
print(cooked)

raw = r'això\t\n i allò'
print(raw)

multi = """Era el millor dels temps,
era el pitjor dels temps"""
print(multi)

Per omplir (padding) un string es pot fer:

>>> a = "p" * 5
>>> a
'ppppp'

Per separar un string en parts ho podem fer amb split (equival al explode del PHP):

>>> a = 'xxxx.xxxx.abcd'
>>> a.split(".")
['xxxx', 'xxxx', 'abcd']

Per transformar a majúscules o minúscules:

>>> a = "cOsES"
>>> a.upper()
'COSES'
>>> a.lower()
'coses'

La llibreria string té coses interessants:

>>> import string
>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'

Per saber més prova amb dir(str) o mira aquí:

Tasca: Implementa un programa que, a partir del nom, cognom i any de naixement de l’usuari, recomani noms d’usuari per aquella persona. Per exemple:

  • nom.cognom
  • inicial+cognom
  • cognom+any_naixement
  • cognom invertint les lletres
  • un parell més que se t’acudeixin