Используйте кортежи для хранения информации

#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 спасибо, я на самом деле новичок здесь. Я делаю то, что указано в предоставленной вами ссылке. Еще раз спасибо.