Python学習(九)--小さなプログラムの学習

1031 ワード

概要
本文は主に最近勉強したpythonウィジェットを通じて、pythonの文法規則を文ごとに勉強します.
Pythonコード
#!/use/bin/python

SUFFIXES={1000:['KB','MB','GB','TB','PB','EB','ZB','YB'],1024:['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB']}

def approximate_size(size,a_kilobyte_is_1024_bytes=True):
    '''Convert a size to human-readable form

    arguments:
        size
        a_kilobyte_is_1024_byte
    
    '''
    if size < 0:
        raise ValueError('number must be non-negative!')
    multiple = 1024 if a_kilobyte_is_1024_bytes else 1000
    for suffix in SUFFIXES[multiple]:
        size /= multiple
        if size < multiple:
            return '{0:.1f} {1}'.format(size,suffix)
    raise ValueError('number too large')

if __name__ == '__main__':
    print(approximate_size(1000000000000,False))
    print(approximate_size(1000000000000))