Foros del Web » Programando para Internet » Python »

Problema/duda strings y "/t"

Estas en el tema de Problema/duda strings y "/t" en el foro de Python en Foros del Web. Hola a todos, estoy teniendo una seria de problemas al concatenar cadenas unidas por un "/t", me gustaría saber que hago mal o si estoy ...
  #1 (permalink)  
Antiguo 22/10/2011, 05:23
 
Fecha de Ingreso: enero-2011
Mensajes: 23
Antigüedad: 13 años, 3 meses
Puntos: 0
Problema/duda strings y "/t"

Hola a todos, estoy teniendo una seria de problemas al concatenar cadenas unidas por un "/t", me gustaría saber que hago mal o si estoy equivocado en lo que propongo.

Lo que estoy haciendo es algo tan sencillo como:

Código Python:
Ver original
  1. i=-1
  2. scores = ["0.000","-1.000"]
  3. sc = "\td:"+str(scores[i+1])
  4. i=0
  5. ww = "\tw:"+str(scores[i+1])
  6. print "w normal:",ww
  7. print "sc+w:",repr(sc+ww)
  8. print "sc+w normal:", sc+ww

Guardo esto en un fichero y redirijo la salida a otro y lo que contiene este nuevo fichero es:

Código:
w normal: 	w:-1.000
sc+w: '\td:0.000\tw:-1.000'
sc+w normal: 	d:0.000	w:-1.000
Mi idea es que entre los "d:xxx" y "w:xxx" haya un "/t" y antes de "d:xxx" otro. La verdad no entiendo por que esto no es así, ¿alguien podría explicarme que hago mal y como solucionar esto?. Llevo mucho tiempo mirando que puede ser y no lo entiendo...

Mil gracias a todos.
  #2 (permalink)  
Antiguo 22/10/2011, 17:02
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Problema/duda strings y "/t"

Código Python:
Ver original
  1. scores = (0.000, -1.000)
  2. print "d:%.03f\tw:%.03f" % scores
Deberías usar el formateado de cadenas estilo C
  #3 (permalink)  
Antiguo 23/10/2011, 02:28
 
Fecha de Ingreso: enero-2011
Mensajes: 23
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Problema/duda strings y "/t"

Gracias razpeitia, yo también pienso que es mas adecuado tu propuestas, pero aún así, ¿lo que yo propongo es menos adecuado o directamente no debe funcionar por algún motivo?, si no funciona porque esta mal planteado, ¿porque no funciona?, no entiendo porque si la cadena contiene /t como se ve al usar repr no los "escribe" despúes, ¿podrías decirme el motivo?.

Muchisimas gracias.

P.D: usando lo que tu has propuesto obtengo:

Código Python:
Ver original
  1. d:0.000 w:-1.000

Sigo sin ver el espacio que entre el valor de 0.000 y w creo que debería haber al usar un tabulador

Última edición por javie_85; 23/10/2011 a las 02:39
  #4 (permalink)  
Antiguo 23/10/2011, 10:50
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Problema/duda strings y "/t"

Cita:
Iniciado por javie_85 Ver Mensaje
¿lo que yo propongo es menos adecuado?
Si es menos adecuado, la concatenación de cadenas no es una practica común en python, pero si en otros lenguajes como java.

Cita:
Iniciado por javie_85 Ver Mensaje
¿o directamente no debe funcionar por algún motivo?,
Funciona pero creo que no checas que estas concatenando.

Cita:
Iniciado por javie_85 Ver Mensaje
si no funciona porque esta mal planteado, ¿porque no funciona?
Creo que esta pregunta se responde sola (no funciona por que estas planteando mal la solución.)

Cita:
Iniciado por javie_85 Ver Mensaje
no entiendo porque si la cadena contiene /t como se ve al usar repr no los "escribe" despúes, ¿podrías decirme el motivo?.
Bueno no se que esperas ver cuando imprima \t. \t o tabulador o escape t, es un carácter que normalmente un editor de texto lo representa como n espacios (regularmente 4 u 8 en la mayoría de los casos).

Cita:
Iniciado por javie_85 Ver Mensaje
Muchisimas gracias.
De nada.

Cita:
Iniciado por javie_85 Ver Mensaje
P.D: usando lo que tu has propuesto obtengo:

Código Python:
Ver original
  1. d:0.000 w:-1.000

Sigo sin ver el espacio que entre el valor de 0.000 y w creo que debería haber al usar un tabulador
Te recomiendo usar 4 espacios en lugar de un tabulador.
  #5 (permalink)  
Antiguo 23/10/2011, 12:51
 
Fecha de Ingreso: enero-2011
Mensajes: 23
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Problema/duda strings y "/t"

Básicamente lo que esperaba ver es lo que tu dices, si el \t se suele representar por 4 u 8 espacios, que apareciera en mitad de d:0.000 w:-1.000 4 u 8 espacios y no es el caso, concretamente eso es lo que no llego a entender, porque no aparecían esos 4 u 8 espacios.

No entiendo a que te refieres con "funciona pero creo que no checas que estas concatenando".

Efectivamente una pregunta mía estaba mal formulada disculpa.

Por cierto, en lugar de usar \t si usas los 4 espacios como dices funciona bien para la solución que has propuesto, gracias.

Mil gracias de nuevo y perdona las dudas
  #6 (permalink)  
Antiguo 23/10/2011, 15:43
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Problema/duda strings y "/t"

Cita:
Iniciado por javie_85 Ver Mensaje
Básicamente lo que esperaba ver es lo que tu dices, si el \t se suele representar por 4 u 8 espacios, que apareciera en mitad de d:0.000 w:-1.000 4 u 8 espacios y no es el caso, concretamente eso es lo que no llego a entender, porque no aparecían esos 4 u 8 espacios.
No aparecen 4 u 8 espacios por que tu programa no esta configurado para que imprima 4 u 8 espacios.

Cita:
Iniciado por javie_85 Ver Mensaje
No entiendo a que te refieres con "funciona pero creo que no checas que estas concatenando".
En tu programa original, tenias muchas redundancias como convertías a string algo que ya era string y mas importante aun, concatenabas 2 tabs uno en medio y otro al principio.

Cita:
Iniciado por javie_85 Ver Mensaje
Efectivamente una pregunta mía estaba mal formulada disculpa.
No te preocupes a todos nos pasa cuando vamos iniciando.

Cita:
Iniciado por javie_85 Ver Mensaje
Por cierto, en lugar de usar \t si usas los 4 espacios como dices funciona bien para la solución que has propuesto, gracias.
De nada

Cita:
Iniciado por javie_85 Ver Mensaje
Mil gracias de nuevo y perdona las dudas
Te perdono tu duda, pero jamas perdonaría que no preguntaran

Etiquetas: strings
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 02:55.