Re: [python] Používání proměnných (formátovací řetězec)
Ahoj všeci, Jen doplním... Od Pythonu 3.2 lze pro pojmenované věci ve složenkách používat metodu format_map, kde jméno se bere jako klíč a dosadí se hodnota. V Python 3.6 se objevila možnost, která se mi původně zdála zbytečná, ale ukázala se jako docela fajn. Pokud var a log jsou proměnné, pak lze přímo psát f'{var}/{log}' ... a je to. V kombinaci s format_map a format (podle toho, kde co mám), je to docela fajn novinka. Mějte se fajn, Petr __ > Od: Petr Messner> Komu: Konference PyCZ > Datum: 03.04.2017 11:11 > Předmět: Re: [python] Používání proměnných > >Dne 3. dubna 2017 10:36 Ondrej Tuma napsal(a): > >> U format se mi líbí zejména používání názvů: >> >> '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) >> >> >Proč tak složitě? :) '{var}/{log}'.format(log='mujlog', var='/var/log') > >Petr > > >-- > >___ >Python mailing list >python@py.cz >http://www.py.cz/mailman/listinfo/python > >Visit: http://www.py.cz > > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Používání proměnných
je to uplne bozi thread :)) time machine. akorat by me zajimalo, jestli @stibi cte ty odpovedi na svuj dotaz :D :D :D 2017-04-03 10:48 GMT+02:00 Jirka Vejrazka: > Zavolalo 2007 a chce odpoved na svoji otazku ;-) > > 2017-04-03 10:43 GMT+02:00 starenka . : > >> Sorka, chtel sem napsat '%(foo)s %(bar)s %(baz)d' % dict(foo='foo', >> bar='bar', baz=1) >> >> --- >> In Perl you shoot yourself in the foot, but nobody can understand how you >> did it. Six months later, neither can you. | print 'aknerats'[::-1] >> >> 2017-04-03 10:41 GMT+02:00 starenka . : >> >>> >> U format se mi líbí zejména používání názvů: >>> >>> '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) >>> >>> Co ale jde i takhle 'foo %(bar)s %(baz)s %(baz)d' % dict(foo='foo', >>> bar='bar', baz=1) >>> --- >>> In Perl you shoot yourself in the foot, but nobody can understand how >>> you did it. Six months later, neither can you. | print 'aknerats'[::-1] >>> >>> 2017-04-03 10:36 GMT+02:00 Ondrej Tuma : >>> Ahoj, ještě doplním, kolega kdysi testoval různé rychlosti spojování stringů s tím, že v každé verzi (i jednotlivé verze Python 2.x) se rychlosti lišily, takže to asi nemá moc cenu řešit. Sám používám + buď na spojování 2 max tří stringů. Ale spíš jen jako jeho další rozšiřování: log_file += '/mujlog' Zejména pokud jde o vkládání někam do středu tak pak už %s nebo format, který má opravdu mnoho krásných možností: log_file = '/var/%s/mujlog' % 'log' U format se mi líbí zejména používání názvů: '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) Ondra V Fri, 31 Mar 2017 14:00:08 +0200 Dan Pressl napsáno: > Ahoj, > > odpověď je trochu složitější. Pokud máš řetězec, který chceš > vytisknout klasickým způsobem (print) tak je doporučovaná cesta: > > >>> x = 'Martin' > >>> print 'Ahoj {}'.format(x) > Ahoj Martin > > s tím, že format je nástroj, který umí hodně věcí (pokročilé > formátování, kontrola datovým typů apod.): > > >>> print '{:>3s}% {:.1f}\n{:>3s}% {:d}'.format('5', 3.14, '95', 42) > 5% 3.1 > 95% 42 > > a v Python 3 už by se jinak formátovat nemělo. Více informací najdeš > tady: https://pyformat.info/ > > Pokud ale používáš Pythoní modul logging, tak by jsi měl používat: > > >>> import logging > >>> logging.info('Ahoj %s', 'Martine') > > protože pak můžeš přistupovat k jednotlivým parametrům u logů. Více > info najdeš na: > > https://docs.python.org/3/library/logging.html#logging.LogRecord > > 2007-02-25 12:29 GMT+01:00 : > > > Zdravím. Mám dotaz na to, jak pracujete s proměnnými. Jestli > > používáte přímo název proměnné: > > > > test = 'svete' > > > > print 'ahoj ' + test > > > > Nebo zápis přes % : > > > > print 'ahoj %s' % test > > > > % se mi líbí, je fajn v tom, že můžu použít %i , %d, .., formátování > > výstupu, atd. Je tam nějaké zásadní 'ale' ? > > > > ___ > > Python mailing list > > python@py.cz > > http://www.py.cz/mailman/listinfo/python > > > > Visit: http://www.py.cz > > > > > -- Ondřej Tůma www: http://ipv6.mcbig.cz jabber: mc...@jabber.cz twitter: mcbig_cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz >>> >>> >> >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > -- Jakub Vysoky mob: +420 605 852 377 jab: jakub.vys...@gmail.com twit: https://twitter.com/kvbik ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Používání proměnných
Jj, pravda, říkal sem si že to musí jít jednodušeji, a jak sem ten mail odeslal, tak sem to našel :-) V Mon, 3 Apr 2017 11:11:21 +0200 Petr Messnernapsáno: > Dne 3. dubna 2017 10:36 Ondrej Tuma napsal(a): > > > U format se mi líbí zejména používání názvů: > > > > '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) > > > > > Proč tak složitě? :) '{var}/{log}'.format(log='mujlog', > var='/var/log') > > Petr -- Ondřej Tůma www: http://ipv6.mcbig.cz jabber: mc...@jabber.cz twitter: mcbig_cz pgpppvmxDrpy0.pgp Description: Digitální podpis OpenPGP ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Používání proměnných
Dne 3. dubna 2017 10:36 Ondrej Tumanapsal(a): > U format se mi líbí zejména používání názvů: > > '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) > > Proč tak složitě? :) '{var}/{log}'.format(log='mujlog', var='/var/log') Petr ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Používání proměnných
Viz mail od ViNyLa minuly tyden - muze za to upgrade news demona nebo neceho okolo. 2017-04-03 10:50 GMT+02:00 starenka .: > Hehe, a jo. Nechapu, proc to prislo tedko do mailu... > > --- > In Perl you shoot yourself in the foot, but nobody can understand how you > did it. Six months later, neither can you. | print 'aknerats'[::-1] > > 2017-04-03 10:48 GMT+02:00 Jirka Vejrazka : > >> Zavolalo 2007 a chce odpoved na svoji otazku ;-) >> >> 2017-04-03 10:43 GMT+02:00 starenka . : >> >>> Sorka, chtel sem napsat '%(foo)s %(bar)s %(baz)d' % dict(foo='foo', >>> bar='bar', baz=1) >>> >>> --- >>> In Perl you shoot yourself in the foot, but nobody can understand how >>> you did it. Six months later, neither can you. | print 'aknerats'[::-1] >>> >>> 2017-04-03 10:41 GMT+02:00 starenka . : >>> >> U format se mi líbí zejména používání názvů: '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) Co ale jde i takhle 'foo %(bar)s %(baz)s %(baz)d' % dict(foo='foo', bar='bar', baz=1) --- In Perl you shoot yourself in the foot, but nobody can understand how you did it. Six months later, neither can you. | print 'aknerats'[::-1] 2017-04-03 10:36 GMT+02:00 Ondrej Tuma : > Ahoj, > > ještě doplním, kolega kdysi testoval různé rychlosti spojování stringů > s tím, že v každé verzi (i jednotlivé verze Python 2.x) se rychlosti > lišily, takže to asi nemá moc cenu řešit. > > Sám používám + buď na spojování 2 max tří stringů. Ale spíš jen jako > jeho další rozšiřování: > > log_file += '/mujlog' > > Zejména pokud jde o vkládání někam do středu tak pak už %s nebo format, > který má opravdu mnoho krásných možností: > > log_file = '/var/%s/mujlog' % 'log' > > U format se mi líbí zejména používání názvů: > > '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) > > Ondra > > V Fri, 31 Mar 2017 14:00:08 +0200 > Dan Pressl napsáno: > > > Ahoj, > > > > odpověď je trochu složitější. Pokud máš řetězec, který chceš > > vytisknout klasickým způsobem (print) tak je doporučovaná cesta: > > > > >>> x = 'Martin' > > >>> print 'Ahoj {}'.format(x) > > Ahoj Martin > > > > s tím, že format je nástroj, který umí hodně věcí (pokročilé > > formátování, kontrola datovým typů apod.): > > > > >>> print '{:>3s}% {:.1f}\n{:>3s}% {:d}'.format('5', 3.14, '95', 42) > > 5% 3.1 > > 95% 42 > > > > a v Python 3 už by se jinak formátovat nemělo. Více informací najdeš > > tady: https://pyformat.info/ > > > > Pokud ale používáš Pythoní modul logging, tak by jsi měl používat: > > > > >>> import logging > > >>> logging.info('Ahoj %s', 'Martine') > > > > protože pak můžeš přistupovat k jednotlivým parametrům u logů. Více > > info najdeš na: > > > > https://docs.python.org/3/library/logging.html#logging.LogRecord > > > > 2007-02-25 12:29 GMT+01:00 : > > > > > Zdravím. Mám dotaz na to, jak pracujete s proměnnými. Jestli > > > používáte přímo název proměnné: > > > > > > test = 'svete' > > > > > > print 'ahoj ' + test > > > > > > Nebo zápis přes % : > > > > > > print 'ahoj %s' % test > > > > > > % se mi líbí, je fajn v tom, že můžu použít %i , %d, .., > formátování > > > výstupu, atd. Je tam nějaké zásadní 'ale' ? > > > > > > ___ > > > Python mailing list > > > python@py.cz > > > http://www.py.cz/mailman/listinfo/python > > > > > > Visit: http://www.py.cz > > > > > > > > > > > > > -- > Ondřej Tůma > www: http://ipv6.mcbig.cz jabber: mc...@jabber.cz twitter: > mcbig_cz > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > >>> >>> ___ >>> Python mailing list >>> python@py.cz >>> http://www.py.cz/mailman/listinfo/python >>> >>> Visit: http://www.py.cz >>> >> >> >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Používání proměnných
Hehe, a jo. Nechapu, proc to prislo tedko do mailu... --- In Perl you shoot yourself in the foot, but nobody can understand how you did it. Six months later, neither can you. | print 'aknerats'[::-1] 2017-04-03 10:48 GMT+02:00 Jirka Vejrazka: > Zavolalo 2007 a chce odpoved na svoji otazku ;-) > > 2017-04-03 10:43 GMT+02:00 starenka . : > >> Sorka, chtel sem napsat '%(foo)s %(bar)s %(baz)d' % dict(foo='foo', >> bar='bar', baz=1) >> >> --- >> In Perl you shoot yourself in the foot, but nobody can understand how you >> did it. Six months later, neither can you. | print 'aknerats'[::-1] >> >> 2017-04-03 10:41 GMT+02:00 starenka . : >> >>> >> U format se mi líbí zejména používání názvů: >>> >>> '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) >>> >>> Co ale jde i takhle 'foo %(bar)s %(baz)s %(baz)d' % dict(foo='foo', >>> bar='bar', baz=1) >>> --- >>> In Perl you shoot yourself in the foot, but nobody can understand how >>> you did it. Six months later, neither can you. | print 'aknerats'[::-1] >>> >>> 2017-04-03 10:36 GMT+02:00 Ondrej Tuma : >>> Ahoj, ještě doplním, kolega kdysi testoval různé rychlosti spojování stringů s tím, že v každé verzi (i jednotlivé verze Python 2.x) se rychlosti lišily, takže to asi nemá moc cenu řešit. Sám používám + buď na spojování 2 max tří stringů. Ale spíš jen jako jeho další rozšiřování: log_file += '/mujlog' Zejména pokud jde o vkládání někam do středu tak pak už %s nebo format, který má opravdu mnoho krásných možností: log_file = '/var/%s/mujlog' % 'log' U format se mi líbí zejména používání názvů: '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) Ondra V Fri, 31 Mar 2017 14:00:08 +0200 Dan Pressl napsáno: > Ahoj, > > odpověď je trochu složitější. Pokud máš řetězec, který chceš > vytisknout klasickým způsobem (print) tak je doporučovaná cesta: > > >>> x = 'Martin' > >>> print 'Ahoj {}'.format(x) > Ahoj Martin > > s tím, že format je nástroj, který umí hodně věcí (pokročilé > formátování, kontrola datovým typů apod.): > > >>> print '{:>3s}% {:.1f}\n{:>3s}% {:d}'.format('5', 3.14, '95', 42) > 5% 3.1 > 95% 42 > > a v Python 3 už by se jinak formátovat nemělo. Více informací najdeš > tady: https://pyformat.info/ > > Pokud ale používáš Pythoní modul logging, tak by jsi měl používat: > > >>> import logging > >>> logging.info('Ahoj %s', 'Martine') > > protože pak můžeš přistupovat k jednotlivým parametrům u logů. Více > info najdeš na: > > https://docs.python.org/3/library/logging.html#logging.LogRecord > > 2007-02-25 12:29 GMT+01:00 : > > > Zdravím. Mám dotaz na to, jak pracujete s proměnnými. Jestli > > používáte přímo název proměnné: > > > > test = 'svete' > > > > print 'ahoj ' + test > > > > Nebo zápis přes % : > > > > print 'ahoj %s' % test > > > > % se mi líbí, je fajn v tom, že můžu použít %i , %d, .., formátování > > výstupu, atd. Je tam nějaké zásadní 'ale' ? > > > > ___ > > Python mailing list > > python@py.cz > > http://www.py.cz/mailman/listinfo/python > > > > Visit: http://www.py.cz > > > > > -- Ondřej Tůma www: http://ipv6.mcbig.cz jabber: mc...@jabber.cz twitter: mcbig_cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz >>> >>> >> >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Používání proměnných
Zavolalo 2007 a chce odpoved na svoji otazku ;-) 2017-04-03 10:43 GMT+02:00 starenka .: > Sorka, chtel sem napsat '%(foo)s %(bar)s %(baz)d' % dict(foo='foo', > bar='bar', baz=1) > > --- > In Perl you shoot yourself in the foot, but nobody can understand how you > did it. Six months later, neither can you. | print 'aknerats'[::-1] > > 2017-04-03 10:41 GMT+02:00 starenka . : > >> >> U format se mi líbí zejména používání názvů: >> >> '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) >> >> Co ale jde i takhle 'foo %(bar)s %(baz)s %(baz)d' % dict(foo='foo', >> bar='bar', baz=1) >> --- >> In Perl you shoot yourself in the foot, but nobody can understand how you >> did it. Six months later, neither can you. | print 'aknerats'[::-1] >> >> 2017-04-03 10:36 GMT+02:00 Ondrej Tuma : >> >>> Ahoj, >>> >>> ještě doplním, kolega kdysi testoval různé rychlosti spojování stringů >>> s tím, že v každé verzi (i jednotlivé verze Python 2.x) se rychlosti >>> lišily, takže to asi nemá moc cenu řešit. >>> >>> Sám používám + buď na spojování 2 max tří stringů. Ale spíš jen jako >>> jeho další rozšiřování: >>> >>> log_file += '/mujlog' >>> >>> Zejména pokud jde o vkládání někam do středu tak pak už %s nebo format, >>> který má opravdu mnoho krásných možností: >>> >>> log_file = '/var/%s/mujlog' % 'log' >>> >>> U format se mi líbí zejména používání názvů: >>> >>> '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) >>> >>> Ondra >>> >>> V Fri, 31 Mar 2017 14:00:08 +0200 >>> Dan Pressl napsáno: >>> >>> > Ahoj, >>> > >>> > odpověď je trochu složitější. Pokud máš řetězec, který chceš >>> > vytisknout klasickým způsobem (print) tak je doporučovaná cesta: >>> > >>> > >>> x = 'Martin' >>> > >>> print 'Ahoj {}'.format(x) >>> > Ahoj Martin >>> > >>> > s tím, že format je nástroj, který umí hodně věcí (pokročilé >>> > formátování, kontrola datovým typů apod.): >>> > >>> > >>> print '{:>3s}% {:.1f}\n{:>3s}% {:d}'.format('5', 3.14, '95', 42) >>> > 5% 3.1 >>> > 95% 42 >>> > >>> > a v Python 3 už by se jinak formátovat nemělo. Více informací najdeš >>> > tady: https://pyformat.info/ >>> > >>> > Pokud ale používáš Pythoní modul logging, tak by jsi měl používat: >>> > >>> > >>> import logging >>> > >>> logging.info('Ahoj %s', 'Martine') >>> > >>> > protože pak můžeš přistupovat k jednotlivým parametrům u logů. Více >>> > info najdeš na: >>> > >>> > https://docs.python.org/3/library/logging.html#logging.LogRecord >>> > >>> > 2007-02-25 12:29 GMT+01:00 : >>> > >>> > > Zdravím. Mám dotaz na to, jak pracujete s proměnnými. Jestli >>> > > používáte přímo název proměnné: >>> > > >>> > > test = 'svete' >>> > > >>> > > print 'ahoj ' + test >>> > > >>> > > Nebo zápis přes % : >>> > > >>> > > print 'ahoj %s' % test >>> > > >>> > > % se mi líbí, je fajn v tom, že můžu použít %i , %d, .., formátování >>> > > výstupu, atd. Je tam nějaké zásadní 'ale' ? >>> > > >>> > > ___ >>> > > Python mailing list >>> > > python@py.cz >>> > > http://www.py.cz/mailman/listinfo/python >>> > > >>> > > Visit: http://www.py.cz >>> > > >>> > >>> > >>> > >>> >>> >>> >>> -- >>> Ondřej Tůma >>> www: http://ipv6.mcbig.cz jabber: mc...@jabber.cz twitter: mcbig_cz >>> >>> ___ >>> Python mailing list >>> python@py.cz >>> http://www.py.cz/mailman/listinfo/python >>> >>> Visit: http://www.py.cz >>> >> >> > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Používání proměnných
Sorka, chtel sem napsat '%(foo)s %(bar)s %(baz)d' % dict(foo='foo', bar='bar', baz=1) --- In Perl you shoot yourself in the foot, but nobody can understand how you did it. Six months later, neither can you. | print 'aknerats'[::-1] 2017-04-03 10:41 GMT+02:00 starenka .: > >> U format se mi líbí zejména používání názvů: > > '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) > > Co ale jde i takhle 'foo %(bar)s %(baz)s %(baz)d' % dict(foo='foo', > bar='bar', baz=1) > --- > In Perl you shoot yourself in the foot, but nobody can understand how you > did it. Six months later, neither can you. | print 'aknerats'[::-1] > > 2017-04-03 10:36 GMT+02:00 Ondrej Tuma : > >> Ahoj, >> >> ještě doplním, kolega kdysi testoval různé rychlosti spojování stringů >> s tím, že v každé verzi (i jednotlivé verze Python 2.x) se rychlosti >> lišily, takže to asi nemá moc cenu řešit. >> >> Sám používám + buď na spojování 2 max tří stringů. Ale spíš jen jako >> jeho další rozšiřování: >> >> log_file += '/mujlog' >> >> Zejména pokud jde o vkládání někam do středu tak pak už %s nebo format, >> který má opravdu mnoho krásných možností: >> >> log_file = '/var/%s/mujlog' % 'log' >> >> U format se mi líbí zejména používání názvů: >> >> '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) >> >> Ondra >> >> V Fri, 31 Mar 2017 14:00:08 +0200 >> Dan Pressl napsáno: >> >> > Ahoj, >> > >> > odpověď je trochu složitější. Pokud máš řetězec, který chceš >> > vytisknout klasickým způsobem (print) tak je doporučovaná cesta: >> > >> > >>> x = 'Martin' >> > >>> print 'Ahoj {}'.format(x) >> > Ahoj Martin >> > >> > s tím, že format je nástroj, který umí hodně věcí (pokročilé >> > formátování, kontrola datovým typů apod.): >> > >> > >>> print '{:>3s}% {:.1f}\n{:>3s}% {:d}'.format('5', 3.14, '95', 42) >> > 5% 3.1 >> > 95% 42 >> > >> > a v Python 3 už by se jinak formátovat nemělo. Více informací najdeš >> > tady: https://pyformat.info/ >> > >> > Pokud ale používáš Pythoní modul logging, tak by jsi měl používat: >> > >> > >>> import logging >> > >>> logging.info('Ahoj %s', 'Martine') >> > >> > protože pak můžeš přistupovat k jednotlivým parametrům u logů. Více >> > info najdeš na: >> > >> > https://docs.python.org/3/library/logging.html#logging.LogRecord >> > >> > 2007-02-25 12:29 GMT+01:00 : >> > >> > > Zdravím. Mám dotaz na to, jak pracujete s proměnnými. Jestli >> > > používáte přímo název proměnné: >> > > >> > > test = 'svete' >> > > >> > > print 'ahoj ' + test >> > > >> > > Nebo zápis přes % : >> > > >> > > print 'ahoj %s' % test >> > > >> > > % se mi líbí, je fajn v tom, že můžu použít %i , %d, .., formátování >> > > výstupu, atd. Je tam nějaké zásadní 'ale' ? >> > > >> > > ___ >> > > Python mailing list >> > > python@py.cz >> > > http://www.py.cz/mailman/listinfo/python >> > > >> > > Visit: http://www.py.cz >> > > >> > >> > >> > >> >> >> >> -- >> Ondřej Tůma >> www: http://ipv6.mcbig.cz jabber: mc...@jabber.cz twitter: mcbig_cz >> >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Používání proměnných
>> U format se mi líbí zejména používání názvů: '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) Co ale jde i takhle 'foo %(bar)s %(baz)s %(baz)d' % dict(foo='foo', bar='bar', baz=1) --- In Perl you shoot yourself in the foot, but nobody can understand how you did it. Six months later, neither can you. | print 'aknerats'[::-1] 2017-04-03 10:36 GMT+02:00 Ondrej Tuma: > Ahoj, > > ještě doplním, kolega kdysi testoval různé rychlosti spojování stringů > s tím, že v každé verzi (i jednotlivé verze Python 2.x) se rychlosti > lišily, takže to asi nemá moc cenu řešit. > > Sám používám + buď na spojování 2 max tří stringů. Ale spíš jen jako > jeho další rozšiřování: > > log_file += '/mujlog' > > Zejména pokud jde o vkládání někam do středu tak pak už %s nebo format, > který má opravdu mnoho krásných možností: > > log_file = '/var/%s/mujlog' % 'log' > > U format se mi líbí zejména používání názvů: > > '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) > > Ondra > > V Fri, 31 Mar 2017 14:00:08 +0200 > Dan Pressl napsáno: > > > Ahoj, > > > > odpověď je trochu složitější. Pokud máš řetězec, který chceš > > vytisknout klasickým způsobem (print) tak je doporučovaná cesta: > > > > >>> x = 'Martin' > > >>> print 'Ahoj {}'.format(x) > > Ahoj Martin > > > > s tím, že format je nástroj, který umí hodně věcí (pokročilé > > formátování, kontrola datovým typů apod.): > > > > >>> print '{:>3s}% {:.1f}\n{:>3s}% {:d}'.format('5', 3.14, '95', 42) > > 5% 3.1 > > 95% 42 > > > > a v Python 3 už by se jinak formátovat nemělo. Více informací najdeš > > tady: https://pyformat.info/ > > > > Pokud ale používáš Pythoní modul logging, tak by jsi měl používat: > > > > >>> import logging > > >>> logging.info('Ahoj %s', 'Martine') > > > > protože pak můžeš přistupovat k jednotlivým parametrům u logů. Více > > info najdeš na: > > > > https://docs.python.org/3/library/logging.html#logging.LogRecord > > > > 2007-02-25 12:29 GMT+01:00 : > > > > > Zdravím. Mám dotaz na to, jak pracujete s proměnnými. Jestli > > > používáte přímo název proměnné: > > > > > > test = 'svete' > > > > > > print 'ahoj ' + test > > > > > > Nebo zápis přes % : > > > > > > print 'ahoj %s' % test > > > > > > % se mi líbí, je fajn v tom, že můžu použít %i , %d, .., formátování > > > výstupu, atd. Je tam nějaké zásadní 'ale' ? > > > > > > ___ > > > Python mailing list > > > python@py.cz > > > http://www.py.cz/mailman/listinfo/python > > > > > > Visit: http://www.py.cz > > > > > > > > > > > > > -- > Ondřej Tůma > www: http://ipv6.mcbig.cz jabber: mc...@jabber.cz twitter: mcbig_cz > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Používání proměnných
Ahoj, ještě doplním, kolega kdysi testoval různé rychlosti spojování stringů s tím, že v každé verzi (i jednotlivé verze Python 2.x) se rychlosti lišily, takže to asi nemá moc cenu řešit. Sám používám + buď na spojování 2 max tří stringů. Ale spíš jen jako jeho další rozšiřování: log_file += '/mujlog' Zejména pokud jde o vkládání někam do středu tak pak už %s nebo format, který má opravdu mnoho krásných možností: log_file = '/var/%s/mujlog' % 'log' U format se mi líbí zejména používání názvů: '{var}/{log}'.format(**{'log': 'mujlog', 'var': '/var/log'}) Ondra V Fri, 31 Mar 2017 14:00:08 +0200 Dan Presslnapsáno: > Ahoj, > > odpověď je trochu složitější. Pokud máš řetězec, který chceš > vytisknout klasickým způsobem (print) tak je doporučovaná cesta: > > >>> x = 'Martin' > >>> print 'Ahoj {}'.format(x) > Ahoj Martin > > s tím, že format je nástroj, který umí hodně věcí (pokročilé > formátování, kontrola datovým typů apod.): > > >>> print '{:>3s}% {:.1f}\n{:>3s}% {:d}'.format('5', 3.14, '95', 42) > 5% 3.1 > 95% 42 > > a v Python 3 už by se jinak formátovat nemělo. Více informací najdeš > tady: https://pyformat.info/ > > Pokud ale používáš Pythoní modul logging, tak by jsi měl používat: > > >>> import logging > >>> logging.info('Ahoj %s', 'Martine') > > protože pak můžeš přistupovat k jednotlivým parametrům u logů. Více > info najdeš na: > > https://docs.python.org/3/library/logging.html#logging.LogRecord > > 2007-02-25 12:29 GMT+01:00 : > > > Zdravím. Mám dotaz na to, jak pracujete s proměnnými. Jestli > > používáte přímo název proměnné: > > > > test = 'svete' > > > > print 'ahoj ' + test > > > > Nebo zápis přes % : > > > > print 'ahoj %s' % test > > > > % se mi líbí, je fajn v tom, že můžu použít %i , %d, .., formátování > > výstupu, atd. Je tam nějaké zásadní 'ale' ? > > > > ___ > > Python mailing list > > python@py.cz > > http://www.py.cz/mailman/listinfo/python > > > > Visit: http://www.py.cz > > > > > -- Ondřej Tůma www: http://ipv6.mcbig.cz jabber: mc...@jabber.cz twitter: mcbig_cz pgp61ARCYeOIE.pgp Description: Digitální podpis OpenPGP ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz