Foros del Web » Programando para Internet » Python »

Duda sobre colecciones de datos

Estas en el tema de Duda sobre colecciones de datos en el foro de Python en Foros del Web. Hola a todos, Estoy cogiendo Python por primera vez después de programar en Ada, Java, C... etc Tengo una duda sobre un código que me ...
  #1 (permalink)  
Antiguo 13/04/2010, 02:41
 
Fecha de Ingreso: abril-2010
Mensajes: 1
Antigüedad: 14 años
Puntos: 0
Duda sobre colecciones de datos

Hola a todos,
Estoy cogiendo Python por primera vez después de programar en Ada, Java, C... etc
Tengo una duda sobre un código que me han pasado para añadir unas fuciones y que debo modificar.
Estoy mirando en manuales y no encuentro exactamente a que tipo de colección de datos se refiere lo siguiente:

plantilla_puntos = """ PUNTO %(nombre_punto)s = {COORDENADA="%(coordenada)s"; DESCRIPCION= "%(descripcion)s; ..."}


Estamos hablando de un diccionario? Es lo único que he encontrado que lleve {} pero separa los valores en :
En este caso... sería un diccionario pero con la diferencia de que no le estamos dando un dato estático sino una entrada desde otro lugar?

Gracias por las respuestas, y disculpen mi ignorancia con python!!!!
  #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

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:54.