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
i = 1
print "i\ti**2\ti**3\ti**5\ti**10\ti**20"
while i <= 10:
print i, '\t', i**2, '\t', i**3, '\t', i**5, '\t', i**10, '\t', i**20
i += 1
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...
i = 1
print "%-4s%-5s%-6s%-8s%-13s%-15s" % \
('i', 'i**2', 'i**3', 'i**5', 'i**10', 'i**20')
while i <= 10:
print "%-4d%-5d%-6d%-8d%-13d%-15d" % (i, i**2, i**3, i**5, i**10, i**20)
i += 1
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?
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)
>>> print "123456789\n\t|"
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...
>>> print "1234567890123456789\n\t|1234567\t|\n12345678\t|
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/ (https://pyformat.info/)