Как разобрать код на Python?

Кто поможет разобраться в этом коде? Особенно интересует 4 строка, что в ней делает программа? Что значит [0]?

s = 6
result = 1000 * 1000
N = int(input())
prev_min = [0] * s 
prev_min[0] = float(input()) 
for i in range(1, s):
    prev_min[i] = min(float(input()), prev_min[i - 1]) 
for i in range(s, N):
    next_num = float(input())
    result = min(result, next_num * prev_min[i % s]) 
    prev_min[i % s] = min(prev_min[(i - 1) % s], next_num)
print(result)
  • Вопрос задан
  • 670 просмотров
Решения вопроса 1
@tplus
s = 6
result = 1000 * 1000
N = int(input()) # получаем ввод с клавиатуры и приводим к целому числу
prev_min = [0] * s # при s = 6, [0, 0, 0, 0, 0, 0]
prev_min[0] = float(input()) # первый элемент списка из 6 элементов делаем равным float(ввод с клавиатуры)
for i in range(1, s) # от 1 до 5
  # запись в i-ячейку меньшего из ввода с клавиатуры и предыдущего элемента списка
  prev_min[i] = min(float(input()), prev_min[i-1])

for i in range(s, N): # от 6 до N-1
  next_num = float(input()) # ввод с клавиатуры приводим к float
  # присваиваем минимальное из result и произведения next_num * prev_min[i % s]
  # i % 2 - остаток от деления = проверка числа на чётность
  # 3 % 2 = 1, 5 % 2 = 1, 6 % 2 = 0, то есть индекс всегда будет 0 или 1
  result = min(result, next_num * prev_min[i % s]
  # присваивание в prev_min[0/1] минимального из prev_min[0/1] и next_num
  prev_min[i % s] = min(prev_min[(i - 1) % s], next_num)
print(result) # вывод результат
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Drjabaka
Насчет четвертой строки - получается список

>>> s=6
>>> prev_min = [0] * s
>>> prev_min
[0, 0, 0, 0, 0, 0]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы