Начинаю изучение сего языка, столкнулся со странным поведением самой первой проги из «Dive into Python3».
SUF = {1000: ['KB', 'MB', 'GB'], 1024: ['KiB', 'MiB', 'GiB']}
def appr_size(size, is_1024=True):
if size<0:
raise ValueError('Number must be non-negative')
multiple = 1024 if is_1024 else 1000
for suffix in SUF[multiple]:
size /= multiple
if size < multiple:
return '{0:.1f}{f}'.format(size, suffix)
raise ValueError('tldr!')
if __name__ == '__main__':
print(appr_size(100000000, False))
print(appr_size(100000000))
[yura@TP61 python]$ python3 first.py
Traceback (most recent call last):
File "first.py", line 12, in <module>
print(appr_size(100000000, False))
File "first.py", line 9, in appr_size
return '{0:.1f}{f}'.format(size, suffix)
KeyError: 'f'
[yura@TP61 python]$