2 | ||
Editor: geon
Time: 2011/10/15 18:13:48 GMT+2 |
||
Note: pridavani znacek 2x-3x |
changed: - .. image:: py30.png :align: right Formátování řetězců a čísel při tisku ========================================== Formátovací řetězce slouží k dokonalejšímu tisku nebo převodu proměnných a hodnot. Tato stránka ukáže, jak je v praxi používat. Více k tomuto najdete na http://docs.python.org/py3k/library/string.html#string-formatting. Základ --------- >>> '{0}, {1}, {2}'.format('a', 'b', 'c') 'a, b, c' >>> '{}, {}, {}'.format('a', 'b', 'c') # pouze 3.1+ 'a, b, c' >>> '{2}, {1}, {0}'.format('a', 'b', 'c') 'c, b, a' >>> '{2}, {1}, {0}'.format(*'abc') 'c, b, a' >>> '{0}{1}{0}'.format('abra', 'cad') 'abracadabra' Zaoukrouhlení na 3 desetinná místa ---------------------------------------------------- :: pi=22/7 text= "pi = {:0.3f}" print (text.format(pi)) Odsazení a psaní znaménka i před kladné hodnoty -------------------------------------------------------- :: for i in range(-5,6): print ("{:+3n}".format(i)) Výpis proměnných (v závorkách) ------------------------------------------ :: verze="3.x" pozdrav="Ahoj" print ("{pozdrav}, ja jsem Python {verze}".format(**vars())) Tisk za sebou ---------------- Chceme-li tisknout hodnoty za sebou na řádek, použijeme parametr end:: for i in 'abecede kocka prede': print (i, end="") Případně i takto:: # ----pomoci funkce write() z modulu sys --------------- import sys for i in 'abecede kocka prede': sys.stdout.write(i), print Tisk na jedno místo (využijeme \b) --------------------------------- :: import time, sys for i in range(-5,6): print ("\b\b\b{:+n}".format(i), end="") sys.stdout.flush() time.sleep(0.5) Použití se slovníkem ----------------------- :: vyzva="Vitej {jmeno}! Dnes je {datum}. " slovnik={"jmeno":"Aneto", "datum":"21.12.2012"} print (vyzva.format(**slovnik)) -------------- .. image:: py25.png :align: right Formátování řetězců a čísel při tisku ======================================= Formátovací řetězce slouží k dokonalejšímu tisku nebo převodu proměnných a hodnot. Tato stránka ukáže, jak je v praxi používat. Teorii k tomuto najdete na http://docs.python.org/lib/typesseq-strings.html . Zaokrouhlení na 3 desetinná místa (0.3) ------------------------------------------ :: pi=22.0/7 print "pi = %0.3f" % pi #---- to samé jinak ---------------- pi=22.0/7 text= "pi = %0.3f" print text % pi Odsazení (3) a psaní znaménka i před kladné hodnoty (+) ------------------------------------------------------- :: for i in range(-5,6): print "%+3i" % i Výpis proměnných (v závorkách) --------------------------------- :: verze=2.4 pozdrav="Ahoj" print "%(pozdrav)s, ja jsem Python %(verze)s!" % vars() Tisk za sebou -------------------- Chceme-li tisknout hodnoty za sebou na řádek, použijeme čárku za print:: for i in 'abecede kocka prede': print i, Chceme-li se vyvarovat těch nadbytečných mezer, které však mohou být jindy výhodné, můžeme použít následujících fíglů:: # --- pomoci \b ---------------------------------------- for i in 'abecede kocka prede': print "\b%s" % i, #\b znaci navrat "voziku" zpet o jeden znak # ----pomoci funkce write() z modulu sys --------------- print # at to nemame nalepene na sobe import sys for i in 'abecede kocka prede': sys.stdout.write(i), print Tisk na jedno místo (využijeme \b) ------------------------------------- :: import time for i in range(-5,6): print "\b\b\b%+i" % i, time.sleep(0.5) Použití se slovníkem ---------------------------- :: vyzva="Vitej %(jmeno)s! Dnes je %(datum)s. " slovnik={"jmeno":"Aneto", "datum":"3.8.2005"} print vyzva % slovnik
Formátovací řetězce slouží k dokonalejšímu tisku nebo převodu proměnných a hodnot. Tato stránka ukáže, jak je v praxi používat. Více k tomuto najdete na http://docs.python.org/py3k/library/string.html#string-formatting.
>>> '{0}, {1}, {2}'.format('a', 'b', 'c') 'a, b, c' >>> '{}, {}, {}'.format('a', 'b', 'c') # pouze 3.1+ 'a, b, c' >>> '{2}, {1}, {0}'.format('a', 'b', 'c') 'c, b, a' >>> '{2}, {1}, {0}'.format(*'abc') 'c, b, a' >>> '{0}{1}{0}'.format('abra', 'cad') 'abracadabra'
pi=22/7 text= "pi = {:0.3f}" print (text.format(pi))
for i in range(-5,6): print ("{:+3n}".format(i))
verze="3.x" pozdrav="Ahoj" print ("{pozdrav}, ja jsem Python {verze}".format(**vars()))
Chceme-li tisknout hodnoty za sebou na řádek, použijeme parametr end:
for i in 'abecede kocka prede': print (i, end="")
Případně i takto:
# ----pomoci funkce write() z modulu sys --------------- import sys for i in 'abecede kocka prede': sys.stdout.write(i), print
import time, sys for i in range(-5,6): print ("\b\b\b{:+n}".format(i), end="") sys.stdout.flush() time.sleep(0.5)
vyzva="Vitej {jmeno}! Dnes je {datum}. " slovnik={"jmeno":"Aneto", "datum":"21.12.2012"} print (vyzva.format(**slovnik))
Formátovací řetězce slouží k dokonalejšímu tisku nebo převodu proměnných a hodnot. Tato stránka ukáže, jak je v praxi používat. Teorii k tomuto najdete na http://docs.python.org/lib/typesseq-strings.html .
pi=22.0/7 print "pi = %0.3f" % pi #---- to samé jinak ---------------- pi=22.0/7 text= "pi = %0.3f" print text % pi
for i in range(-5,6): print "%+3i" % i
verze=2.4 pozdrav="Ahoj" print "%(pozdrav)s, ja jsem Python %(verze)s!" % vars()
Chceme-li tisknout hodnoty za sebou na řádek, použijeme čárku za print:
for i in 'abecede kocka prede': print i,
můžeme použít následujících fíglů:
# --- pomoci \b ---------------------------------------- for i in 'abecede kocka prede': print "\b%s" % i, #\b znaci navrat "voziku" zpet o jeden znak # ----pomoci funkce write() z modulu sys --------------- print # at to nemame nalepene na sobe import sys for i in 'abecede kocka prede': sys.stdout.write(i), print
import time for i in range(-5,6): print "\b\b\b%+i" % i, time.sleep(0.5)
vyzva="Vitej %(jmeno)s! Dnes je %(datum)s. " slovnik={"jmeno":"Aneto", "datum":"3.8.2005"} print vyzva % slovnik