Лабораторная работа № 3 Строковые величины
Теоретические сведения
Операции над строками
Инструкции и операторы для обработки строковых значений находятся в следующей таблице:
| Инструкции и операторы | Назначение |
|---|---|
+ |
Конкатенация |
* |
Повторение |
<строка>[] |
Индексирование |
<строка>[ : ] |
Срез |
len(<строка>) |
Длина строки |
in, not in |
Нахождение в строке |
for <символ> in <строка> |
Перебор символов |
Методы класса str
Класс str обладает рядом методов, которые упрощают обработку строк.
str
| Метод | Назначение |
|---|---|
s.count(sub) |
Возвращает количество вхождений подстроки sub в строку s |
s.find(sub) |
Возвращает индекс первого вхождения подстроки sub в строку s |
s.replace(old, new) |
Заменяет подстроку old на new; возвращает новую строку |
s.upper() |
Преобразование всех символов в прописные; возвращает новую строку |
s.lower() |
Преобразование всех символов в строчные; возвращает новую строку |
s.isdigit() |
Возвращает True, если в строке s хранятся только десятичные цифры. Иначе вернёт False. |
s.alpha() |
Возвращает True, если в строке s хранятся только буквы. Иначе вернёт False. |
Задания для самостоятельной работы
📝 Задание 1. Операции над строками
Запишите в таблице результат работы программы вашего варианта. В кавычках записаны только кириллические буквы.
Используйте Таблицу 1, если вам нужна подсказка.
📝 Задание 2. Методы класса str
Запишите в таблице результат работы программы вашего варианта.
Используйте Таблицу 2, если вам нужна подсказка.
📝💻 Задание 3. Сбалансированная строка (sam03.py)
Две строки s1 и s2 назовём сбалансированными, если все символы строки s1 присутствуют в строке s2. Порядок символов не учитывается. Напишите программу, которая определит являются ли две строки, введённые с клавиатуры, сбалансированными. Ответ должен быть записан в следующем виде - либо “Строки сбалансированы” либо “Баланс нарушен”.
Запишите в таблицу варианты входных тестовых данных и ожидаемый результат. Запишите минимум три теста для алгоритма. Рассмотрите различные комбинации входных данных.
Запишите код решения задачи по следующей блок-схеме. В блоках, выделенных зелёным цветом, замените прочерки на необходимые инструкции и выражения.
💻 Задание 4. Микс (sam04.py)
Составьте программу, содержащую функцию mix(s1, s2). Функция принимает в качестве параметров две строки. Функция возвращает новую строку. Символы в новую строку добавляются по следующему правилу: в начале берётся первый символ строки s1, затем последний символ строки s2. После этого берётся второй символ строки s1 и предпоследний символ строки s2. Процесс повторяется, пока в строках не закончатся символы.
Используйте следующей шаблон. Замените прочерки на необходимые инструкции и выражения:
def mix(s1, s2):
answ = "" # строка-аккумулятор: в ней будем "накапливать" решение
for i in range(0, _____ ):
answ = answ + ____ # символ из строки s1
answ = answ + ____ # символ из строки s2
return answ
# Вызов функции, тестирование
print(mix("Abc", "Xyz"))Тестовые данные:
s1 |
s2 |
mix(s1, s2) |
|---|---|---|
"Abc" |
"Xyz" |
"AzbycX" |
"" |
"" |
"" |
"A" |
"Б" |
"АБ" |
"Функция" |
"Очередь" |
"ФьуднекрцеичяО" |
💻 Задание 5 (sam05.py)
Решите следующую задачу вашего варианта.
Дана строка. Определите общее количество символов + и - в ней.
Дана строка. Определите, какой символ в ней встречается раньше: y или n. Если какого-то из символов нет, вывести сообщение об этом.
Дана строка. Найдите наибольшее количество подряд идущих пробелов в нем.
В данной строке найти количество цифр.
Дана строка. Найдите наибольшее количество идущих подряд цифр.
Дана строка. Найти сумму имеющихся в нем цифр.
Дана строка. Показать номера символов, совпадающих с последним символом строки.
Дана строка. Определите общее количество символов + и - в ней.
Дана строка. Определите, какой символ в ней встречается раньше: y или n. Если какого-то из символов нет, вывести сообщение об этом.
Дана строка. Найдите наибольшее количество подряд идущих пробелов в нем.
В данной строке найти количество цифр.
Дана строка. Найдите наибольшее количество идущих подряд цифр.
Дана строка. Найти сумму имеющихся в нем цифр.
Дана строка. Показать номера символов, совпадающих с последним символом строки.
💻 Задание 6* (sam06.py)
Решите следующую задачу вашего варианта.
Даны две строки. Определите, можно ли первую строку получить из второй циклическим сдвигом.
Написать программу, которая преобразует введенное целое трёхзначное число в соответствующую строку символов.
Пример:
С клавиатуры вводится строка, которая содержит имя переменной в camelCase. Преобразуйте имя переменной в snake_case.
Дана строка, которая содержит число, записанное римскими цифрами. Запишите это число в десятичной системе счисления.
Дана строка, которая содержит квадратное уравнение, состоящее из цифр, символа умножения *, символа x неизвестной, символов +,-, =. Выведите на экран значения коэффициентов a, b и с данного уравнения.
Реализуйте метод, осуществляющий сжатие строки на основе счетчика повторяющихся символов. Например, строка aaabbcccc должна превратиться в a3b2c5.
Расстояние между двумя словами равной длины - количество букв, в которых различаются эти слова. Определите расстояние для двух строк, вводимых с клавиатуры.
Даны две строки. Определите, можно ли первую строку получить из второй циклическим сдвигом.
Написать программу, которая преобразует введенное целое трёхзначное число в соответствующую строку символов.
Пример:
С клавиатуры вводится строка, которая содержит имя переменной в camelCase. Преобразуйте имя переменной в snake_case.
Дана строка, которая содержит число, записанное римскими цифрами. Запишите это число в десятичной системе счисления.
Дана строка, которая содержит квадратное уравнение, состоящее из цифр, символа умножения *, символа x неизвестной, символов +,-, =. Выведите на экран значения коэффициентов a, b и с данного уравнения.
Реализуйте метод, осуществляющий сжатие строки на основе счетчика повторяющихся символов. Например, строка aaabbcccc должна превратиться в a3b2c5.
Расстояние между двумя словами равной длины - количество букв, в которых различаются эти слова. Определите расстояние для двух строк, вводимых с клавиатуры.