Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/04/2010, 09:17
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda sobre colecciones de datos

Bienvenido aejs, al foro y a Python
Lo que estás usando allí es formato de cadenas, el equivalente al sprintf() de C.

Python puede hacerlo de dos formas:
Código Python:
Ver original
  1. cadena = "Hola, %s" % (nombre);
Los % dentro de la cadena delimitada por comillas (en tu caso comillas triples, es una de las formas de definir cadenas) funcionan igual que en C (%s para una cadena, %d para un entero, %.2f para flotantes con dos decimales, etc).
Luego de definir la cadena, va un %, y a continuación una tupla conteniendo las variables que se sustituirán. Aquí otro ejemplo:
Código Python:
Ver original
  1. nombre = "aejs"
  2. numero = 2
  3. cadena = "¡Hola, %s! El número es %d" % (nombre, numero)

La segunda forma (en realidad una extensión de la primera) utiliza un diccionario en vez de una tupla, y se puede dar nombre a cada campo. Sirve por claridad o para utilizar un parámetro más de una vez sin tener que repetirlo en la tupla. Usando esta forma, mi ejemplo anterior se puede escribir como:
Código Python:
Ver original
  1. nombre = "aejs"
  2. numero = 2
  3. cadena = "¡Hola %{n}s! El número es %{num}d" % { 'n' : nombre, 'num' : numero }

Que ya se parece más a lo que tenías en un principio

Python 3 cambia la forma de hacer esto, utilizando una función format().

http://docs.python.org/library/stdty...ing-formatting
http://docs.python.org/library/strin...-string-syntax


Saludos