elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Python, espacios para impresion en pantalla
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Python, espacios para impresion en pantalla  (Leído 3,024 veces)
metalost

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Python, espacios para impresion en pantalla
« en: 21 Mayo 2017, 00:44 am »

Buenas, disculpen las molestias, alguien me podria indicar/ayudar sobre este tema de imprimir en pantalla? Si vemos el primer codigo que esta aqui abajo, vemos que si lo ejecutamos, este se desconfigura del espacio en el que se deberia imprimir

Código
  1. i = 1
  2. print "i\ti**2\ti**3\ti**5\ti**10\ti**20"
  3. while i <= 10:
  4.    print i, '\t', i**2, '\t', i**3, '\t', i**5, '\t', i**10, '\t', i**20
  5.    i += 1
  6.  
  7.  


Pero si corremos este segundo codigo, podemos apreciar que ese espacio ya esta corregido... Mi duda aqui es, que no entiendo muy bien como opera este segundo...

Código
  1. i = 1
  2. print "%-4s%-5s%-6s%-8s%-13s%-15s" % \
  3.      ('i', 'i**2', 'i**3', 'i**5', 'i**10', 'i**20')
  4. while i <= 10:
  5.    print "%-4d%-5d%-6d%-8d%-13d%-15d" % (i, i**2, i**3, i**5, i**10, i**20)
  6.    i += 1
  7.  

Por ejemplo, alguien me podria indicar/pasar algun documento, sobre como funciona el " % " No entiendo muy bien para que sirve... tampoco entendi muy bien para que sirve el " %-4d%" ese %, ese -4 y la d y otra vez el %

Basicamente el codigo es eso... ¿Alguien podria "iluminarme" por favor?


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Python, espacios para impresion en pantalla
« Respuesta #1 en: 21 Mayo 2017, 01:08 am »

la tabulación en consola usualmente es representada por 8 espacios

entonces los numeros que tengas menos de 8 cifras de largo estaràn dentro de la tabulaciòn (en estaos ejemplos la barra | estará en el espacio siguiente al multiplo de 8)
Código:
>>> print "123456789\n\t|"

Código:
123456789
        |

la tabulaciòn es el espacio justo tras esa barra y las tabulaciones siempre serán una posición multiplo de 8, así que cuando un numero tiene 8 cifras de largo, la tabulación queda en la posición 9 y como la tabulación representa en multiplos de 8, se moverá al espacio 16...

Código:
>>> print "1234567890123456789\n\t|1234567\t|\n12345678\t|

Código:
1234567890123456789
1234567 |
12345678        |

por eso se te descuadra...


tu segundo codigo formatéa los espacios a mano

el % es equivalente al uso de printf en C, %s imprimirá un string %d un digito, etc, pero el formato %-4s lo que le dice es "imprime un string y si no llega a 4 de llargo, rellena con espacios"

aqui hay unos ejemplo simples
http://interactivepython.org/runestone/static/pip/StringFormatting/interpolation.html
y aquì algo màs complejo
https://pyformat.info/


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como hacer para que la impresion se vea casi igual que la pantalla?
Diseño Gráfico
evad 9 44,241 Último mensaje 10 Noviembre 2005, 08:47 am
por evad
[Python] carácteres y espacios « 1 2 »
Scripting
Meta 19 26,485 Último mensaje 27 Octubre 2010, 18:15 pm
por Meta
URL con variables con espacios en blanco en Python
Scripting
MA40 0 1,919 Último mensaje 19 Julio 2012, 12:35 pm
por MA40
Duda en la impresion en pantalla
Programación C/C++
EdgarKrieger 3 5,470 Último mensaje 27 Noviembre 2013, 20:25 pm
por EdgarKrieger
(Python) Admitir espacios
Scripting
BigKaz 6 4,083 Último mensaje 3 Diciembre 2016, 11:02 am
por tincopasan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines