Задача 3. Убийца Steam (Python)

Вы пишете программу-инсталлятор для компьютерной игры. Пока инсталлятор скачивает обновление, пользователю нужно показать сколько процентов уже скачалось, чтобы он мог решить пойти заварить чаю, или подождать у экрана компьютера. Обновления игры всегда занимают разное количество мегабайт, да и скорость интернет-соединения у игроков разная.

Напишите программу, принимающую на вход размер файла обновления в мегабайтах и скорость интернет соединения в мегабайтах в секунду. Для каждой секунды программа рассчитывает и выводит на экран сколько процентов от всего объема уже скачано, до тех пор пока не будет скачан весь объем. В конце программа должна показать сколько всего секунд заняло скачивание обновления. Обеспечьте контроль ввода.

Пример:

Укажите размер файла для скачивания: 123

Какова скорость вашего соединения? 27

Прошло 1 сек. Скачано 27 из 123 Мб (22%)

Прошло 2 сек. Скачано 54 из 123 Мб (44%)

Прошло 3 сек. Скачано 81 из 123 Мб (66%)

Прошло 4 сек. Скачано 108 из 123 Мб (88%)

Прошло 5 сек. Скачано 123 из 123 Мб (100%)

Что оценивается

  • результат вывода соответствует условию;
  • input содержит корректное приглашение для ввода;
  • вывод содержит описание результата (выведенные числа сопровождаются текстовым описанием).

Решение задачи

import math
import time

file = int(input('Укажите размер файла: '))
speed = int(input('Какова скорость вашего соединения? '))
second = 1
str_info = 'Прошло {0} секунд. Скачено {1} Мб из {2} Мб ( {3}% )'

for mb in range(speed, file, speed):
    print(str_info.format(second, mb, file, math.ceil(100 * mb / file)))
    second += 1
    time.sleep(1)
else:
    print(str_info.format(second, file, file, math.ceil(100 * file / file)))
Задача 3. Убийца Steam (Python)

Проверяем

Задача 3. Убийца Steam (Python)

Оцените статью
( 7 оценок, среднее 3 из 5 )