[Python] Numero to byte
lordkrandel
lordkrandel a gmail.com
Mer 12 Gen 2011 12:25:19 CET
On 12/01/2011 12.15, Daniele Varrazzo wrote:
> On Wed, 12 Jan 2011 12:02:57 +0100, lordkrandel<lordkrandel a gmail.com>
> wrote:
>> for n, label in map( lambda k: ( factor**k[0], k[1] ), enumerate(labels,1) ):
>
> Forse sarebbe meglio
> for i, label in enumerate(labels, 1):
> n = factor ** i
> ...
M'ha preso un evidente attacco di oneliner-ite
>> return ('%.' + str(precision) + 'lf %s') % (bytes * factor / n, label)
>
> potrebbe essere scritto:
> return ('%.*lf %s') % (precision, bytes * factor / n, label)
# Wow! Grazie!!! Quante cose s'imparano (leggendo al posto giusto). Tested!
# Ora č molto pių carino e pythoneggiante :)
def f( bytes, factor, labels, precision ):
for i, label in enumerate(labels,1):
n = factor ** i
if (bytes < n) or (label == labels[-1]):
return ('%.*lf %s') % (precision, bytes * factor / n, label)
def f_test():
for x in range(22):
y = 512*(10**x)
print f(y, 1024, ('bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB'), 4)
print ' ', f(y, 1000, ('bytes', 'KB', 'MB', 'GB', 'TB', 'PB' ), 2)
f_test()
--
Wyrmskull
Maggiori informazioni sulla lista
Python