#python #tuples
#python #Кортежи
Вопрос:
Вопрос: Давайте использовать кортежи для хранения информации о файле: его имени, типе и размере в байтах. Заполните пробелы в этом коде, чтобы вернуть размер в килобайтах (килобайт равен 1024 байтам) с точностью до 2 знаков после запятой.
def file_size(file_info):
___, ___, ___= file_info
return("{:.2f}".format(___ / 1024))
print(file_size(('Class Assi&nment', 'docx', 17875))) # Should print 17.46
print(file_size(('Notes', 'txt', 496))) # Should print 0.48
print(file_size(('Pro&ram', 'py', 1239))) # Should print 1.21
Я в замешательстве, должен ли я использовать байт, килобайт, мегабайт в file_info
?
Ответ №1:
def file_size(file_info):
itsname, itstype, itssize= file_info
return("{:.2f}".format(itssize / 1024))
Вы должны использовать все переменные, указанные в вопросе (их имя, тип и размер в байтах), и itssize
это будет размер, который вы получаете в результате вызова функции. И мы должны преобразовать размер в килобайт, поэтому нам нужно разделить itssize
на 1024.
Ответ №2:
Берем первые примеры Назначение класса = Имя_фАйла, File_Ext = docx, 17875 = Байт
File_Ext — это не что иное, как расширение файла на 1 КБ = 1024 байта, вот почему мы не использовали 1000, и решение здесь
def file_size(file_info):
File_Name, File_Ext, Bytes = file_info
return("{:.2f}".format(Bytes / 1024))
print(file_size(('Class Assi&nment', 'docx', 17875))) # Should print 17.46
print(file_size(('Notes', 'txt', 496))) # Should print 0.48
print(file_size(('Pro&ram', 'py', 1239))) # Should print 1.21
Ответ №3:
ВОТ ПРАВИЛЬНОЕ РЕШЕНИЕ ДЛЯ ТЕСТА:
def file_size(file_info):
name, type, size = file_info
return("{:.2f}".format(size / 1024))
------------------
print(file_size(('Class Assi&nment', 'docx', 17875))) # Should print 17.46
print(file_size(('Notes', 'txt', 496))) # Should print 0.48
print(file_size(('Pro&ram', 'py', 1239))) # Should print 1.21
Ответ №4:
Внутри ('Class Assi&nment', 'docx', 17875)
17875 — это количество байт в документе. Вам нужно преобразовать это в килобайты (помните, что 1 килобайт == 1024 байтам).
Итак, я дам вам несколько советов:
Вы можете распаковать кортеж следующим образом:
&&t;&&t;&&t; file_info = ('Class Assi&nment', 'docx', 17875)
&&t;&&t;&&t; name, file_extension, bytes = file_info
&&t;&&t;&&t; name
'Class Assi&nment'
&&t;&&t;&&t; file_extension
'docx'
&&t;&&t;&&t; bytes
17875
Чтобы преобразовать байты в килобайты, разделите на 1024:
&&t;&&t;&&t; bytes / 1024
17.4560546875
"{:.2f}".format(...)
позаботится о форматировании и округлении, что даст вам 17,46:
&&t;&&t;&&t; "{:.2f}".format(bytes / 1024)
'17.46'
Комментарии:
1. @TerryA спасибо, я на самом деле новичок здесь. Я делаю то, что указано в предоставленной вами ссылке. Еще раз спасибо.