Python. 11 класс

 




11к1 - 06.09.2022, 11к2 13.09.2022

Задание
Написать программу, которая считывает текстовой файл в строку (текст в файле "мама мыла раму мама мыла раму мама мыла раму ")

Используем:

  • команду open('путь к файлу/имя файла')
  • функцию readlin(), которая считывает символы в строку
  • функцию close(), закрывающую файл
Текст программы

f=open('C:/Users/admin/Desktop/файлы/текст.txt')
a=f.readline()
f.close()
print(a)

Подсчитать количество символов "а" в файле, который считали (обращаем внимание, что считаем русские буквы!)

Вариант 1
f=open('C:/Users/admin/Desktop/файлы/текст.txt')
a=f.readline()
f.close()
print(a)
k=0
for i in a:
    if i=='а':
        k=k+1
print(k)

Вариант 2
f=open('C:/Users/admin/Desktop/файлы/текст.txt')
a=f.readline()
f.close()
print(a)
k=0
for i in range(len(a)):
    if a[i]=='а':
        k=k+1
print(k)





11к1 - 13.09.2022 11к2 20.09.2022

Задание
Подсчитать количество сочетаний "ма" в ранее созданном файле
Текст программы
f=open('C:/Users/admin/Desktop/файлы/текст.txt')
a=f.readline()
f.close()
print(a)
k=0
for i in range(len(a)-1):
    if a[i]+a[i+1]=='ма':
        k=k+1
print(k)

Задание
Убрать в ранее созданном файле пробелы (используем функцию replace)
Функция replase - позволяет производить поиск и замену одних частей строки на другие нужное количество раз
Текст программы
f=open('C:/Users/admin/Desktop/файлы/текст.txt')
s=f.readline()
f.close()
print(s)
s1=s.replace(' ','')
print(s1)






11к1 - 20.09.2022, 11к2 - 27.09.2022

Задание
Текстовый файл состоит не более чем из 1000000 символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых каждые два соседних различны.
Пояснение: рассматриваем соседние символы в строке, если они разные увеличиваем счетчик k на 1, если одинаковые, то накопленное количество в счетчике k сравниваем с предыдущими через max, сохраняя наибольшее в mx и сбрасываем значение k, k=1.
Текст программы
f=open('C:/Users/admin/Desktop/файлы/файл1.txt')
a=f.readline()
f.close()
mx=0
k=1
for i in range(len(a)-1):
    if a[i]!=a[i+1]:
        k=k+1
    else:
        mx=max(mx,k)
        k=1
print(mx)

Задание
Текстовый файл состоит не более чем из 1000000 символов X, Y и Z. Определите длину самой длинной последовательности, состоящей из символов X. Хотя бы один символ X находится в последовательности.
Текст программы
f=open('C:/Users/admin/Desktop/файлы/файл1.txt')
s=f.readline()
f.close()
k=1
mx=0
for i in range(len(s)-1):
    if s[i]==s[i+1]=='X':
        k=k+1
    else:
        mx=max(mx,k)
        k=1
print(mx)






11к1 - 04.10.2022, 11к2 - 11.10.2022

Функция split(m,n) превращает исходную строку в массив строк по выбранному элементу m заданное количество раз n.
Пример:
Была строка s='MNBGHJAGBVDXJAJHJIUUGFDAMJUOIP'
Применили функцию a=s.split('A')  режем по букве A
Получаем массив строк a=['MNBGHJ','GBVDXJ','JHJIUUGFD','MJUOIP'], буква 'A' по которой резали строку удаляется

Функция sort()
Сортировка элементов массива методом sort() производится по умолчанию в алфавитном порядке, а также от меньшего значения к большему.

Задание
Дан текстовой файл: список фамилий, набранных через пробел. Нужно получить строковый массив каждый элемент - одна фамилия, отсортировать по алфавиту и вывести каждую фамилию с новой строки.
Текст программы
f=open('C:/Users/admin/Desktop/файлы/список.txt')
s=f.readline()
f.close()
print(s)
p=s.split(' ')
p.sort()
for i in range(len(p)):
    print(p[i])







11к1 - 11.10.2022, 11к2 - 18.10.2022

Задание
В файле содержится последовательность целых чисел. Определите количество пар последовательности, в которых хотя бы одно число делится на 3. Под парой подразумевается два идущих подряд элемента.
Текст программы
f=open('C:/Users/admin/Desktop/файлы/числа.txt')
x=[int(i) for i in f]
f.close()
k=0
for i in range(len(x)-1):
    if x[i]%3==0 or x[i+1]%3==0:
        k=k+1
print(k)

Задание
В файле содержится последовательность целых чисел. Определите максимальный элемент, кратный 3.
Текст программы
f=open('C:/Users/admin/Desktop/файлы/числа.txt')
x=[int(i) for i in f]
f.close()
mx=0
for i in range(len(x)):
    if x[i]%3==0:
        mx=max(mx,x[i])
print(k)

Задание
В файле содержится последовательность из 10 000 целых положительных чисел. Каждое число не превышает 10 000. Определите и запишите в ответе сначала количество пар элементов последовательности, разность кратна 5 и хотя бы одно из чисел делится на 12, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Пояснение: так число 12 не является простым, то проверять на кратность 12 нужно каждый элемент пары.
Текст программы
f=open('C:/Users/admin/Desktop/файлы/числа2.txt')
x=[int(i) for i in f]
f.close()
k=0
mx=0
for i in range(len(x)-1):
    if (x[i]-x[i+1])%5==0 and (x[i]%12==0 or x[i+1]%12==0):
        k=k+1
        mx=max(mx,x[i]+x[i+1])
print(k,mx)



















Комментариев нет:

Отправить комментарий