Показываю разборы с ответами и решениями урока 3.4 (Файловый ввод/вывод) для курса «Программирование на Python».
Предыдущий модуль 3.2 следующий модуль 3.5
Напишите программу, которая считывает из файла строку, соответствующую тексту, сжатому с помощью кодирования повторов, и производит обратную операцию, получая исходный текст.
with open('dataset_3363_2.txt') as t:
s = t.readline().strip()
def rep(symbol, iter): return symbol*int(iter)
i = 0
while i < len(s):
iter = ''
if s[i].isalpha():
symbol = s[i]
i += 1
while s[i].isdigit():
iter += s[i]
if i == len(s)-1: break
i += 1
print(rep(symbol, iter),end='')
Недавно мы считали для каждого слова количество его вхождений в строку. Но на все слова может быть не так интересно смотреть, как, например, на наиболее часто используемые.
Напишите программу, которая считывает текст из файла (в файле может быть больше одной строки) и выводит самое частое слово в этом тексте и через пробел то, сколько раз оно встретилось. Если таких слов несколько, вывести лексикографически первое (можно использовать оператор < для строк).
with open('dataset_3363_3.txt') as inf, open('MostPopularWord.txt','w') as ouf:
maxc = 0
s = inf.read().lower().strip().split()
s.sort()
for word in s:
counter = s.count(word)
if counter > maxc:
maxc = counter
result_word = word
ouf.write(result_word +' ' + str(maxc))
Имеется файл с данными по успеваемости абитуриентов. Он представляет из себя набор строк, где в каждой строке записана следующая информация:
Фамилия;Оценка_по_математике;Оценка_по_физике;Оценка_по_русскому_языку
Поля внутри строки разделены точкой с запятой, оценки — целые числа.
Напишите программу, которая считывает исходный файл с подобной структурой и для каждого абитуриента записывает его среднюю оценку по трём предметам на отдельной строке, соответствующей этому абитуриенту, в файл с ответом.
Также вычислите средние баллы по математике, физике и русскому языку по всем абитуриентам и добавьте полученные значения, разделённые пробелом, последней строкой в файл с ответом.
count, a1, b1, c1 = 0, 0, 0, 0
with open('dataset_3363_4.txt', 'r') as inf:
for line in inf:
line = line.strip().split(';')
a, b, c = int(line[1]), int(line[2]), int(line[3])
print((a+b+c)/3)
count += 1
a1 += a
b1 += b
c1 += c
print((a1/count), (b1/count), (c1/count))
всё не правильно