=== Python 3.8.3 ===
import statistics
import re
def TakeFromFile(fname, SingleDataPackCapacity):
with open(fname, 'r', encoding='utf-8') as input_:
data = input_.read()
data = re.sub(r' +', ' ', re.sub(r'\n', ' ', data)).split(' ')
LastTakeIndex = 0
for TakeIndex in range(SingleDataPackCapacity, len(data)+SingleDataPackCapacity, SingleDataPackCapacity):
yield data[LastTakeIndex:TakeIndex]
LastTakeIndex = TakeIndex
for number, WeekData in enumerate(TakeFromFile('input.txt', 7)):
tmp = list(map(int, WeekData))
print(
f'Week: {number+1}\nMax temp: {max(tmp)}\nMin temp: {min(tmp)}\nAverage temp: {statistics.mean(tmp)}\n')
ответ: 33
Объяснение:
Заданный фрагмента программы выполняет следующую задачу:
Цикл для i от 1 до 9, в котором если остаток от деления (А[i] + A[0]) на 5 неравен 0, (т. е. сумма А[i] и A[0] не делится на 5), то их (А[i] и A[0]) меняют местами, а переменную S увеличивают на i. Выполним алгоритм вручную:
A = 2, 8, 7, 8, 5, 3, 10, 1, 9, 12; i=1; (2+8)%5 = 10%5 = 0;
A = 2, 8, 7, 8, 5, 3, 10, 1, 9, 12; i=2; (2+7)%5 = 9%5 = 4; --> S = 0+2 = 2
A = 7, 8, 2, 8, 5, 3, 10, 1, 9, 12; i=3; (7+8)%5 = 15%5 = 0;
A = 7, 8, 2, 8, 5, 3, 10, 1, 9, 12; i=4; (7+5)%5 = 12%5 = 2; --> S = 2+4 = 6
A = 5, 8, 2, 8, 7, 3, 10, 1, 9, 12; i=5; (5+3)%5 = 8%5 = 3; --> S = 6+5 = 11
A = 3, 8, 2, 8, 7, 5, 10, 1, 9, 12; i=6; (3+10)%5 = 13%5 = 3; --> S = 11+6 = 17
A = 10, 8, 2, 8, 7, 5, 3, 1, 9, 12; i=7; (10+1)%5 = 11%5 = 1; --> S = 17+7 = 24
A = 1, 8, 2, 8, 7, 5, 3, 10, 9, 12; i=8; (1+9)%5 = 10%5 = 0;
A = 1, 8, 2, 8, 7, 5, 3, 10, 9, 12; i=9; (1+12)%5 = 13%5 = 3; --> S = 24+9 = 33
Как можно увидеть, после выполнения фрагмента программы переменная S будет равна 33.