Лабораторная работа № 3 Строковые величины
Перед началом работы, cкачайте файл с заданиями, выполняемыми без компьютера.
Теоретические сведения
Операции над строками
Инструкции и операторы для обработки строковых значений находятся в следующей таблице:
| Инструкции и операторы | Назначение |
|---|---|
+ |
Конкатенация |
* |
Повторение |
<строка>[] |
Индексирование |
<строка>[ : ] |
Срез |
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)
С клавиатуры вводится строка. Из цифр введённой строки составьте число и выведите его на экран. Если цифр в исходной строке нет, выведите сообщение "В строке нет цифр".
Примеры работы программы:
Введите строку: <{а1бв23гд4}> ++enter++
Число: 1234Введите строку: <{число}> ++enter++
В строке нет цифр
Задание 4. Сбалансированная строка (sam04.py)
Две строки s1 и s2 назовём сбалансированными, если все символы строки s1 присутствуют в строке s2. Порядок символов не учитывается. Напишите программу, которая определит являются ли две строки, введённые с клавиатуры, сбалансированными. Ответ должен быть записан в следующем виде - либо “Строки сбалансированы” либо “Баланс нарушен”.
Запишите в таблицу варианты входных тестовых данных и ожидаемый результат. Запишите минимум три теста для алгоритма. Рассмотрите различные комбинации входных данных.
Запишите код решения задачи по следующей блок-схеме. В блоках, выделенных зелёным цветом, замените прочерки на необходимые инструкции и выражения.
Задание 5. Микс (sam05.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" |
"Б" |
"АБ" |
"Функция" |
"Очередь" |
"ФьуднекрцеичяО" |
Задание 6. (sam06.py)
Решите следующую задачу вашего варианта.
Напишите программу, которая преобразует строку с датой из формата мм/дд/гггг в дд.мм.гггг. Если номер дня или месяца состоит из одной цифры, при вводе слева записывается ноль.
Пример работы программы:
мм/дд/гггг: <{03/18/2026}> ++enter++
18.03.2026Пользователь вводит номер телефона в виде строки из 9 цифр без пробелов и других символов. Сформируйте и выведите номер в формате +375 (XX) XXX-XX-XX.
Пример работы программы:
Номер телефона: <{291234567}> ++enter++
+375 (29) 123-45-67С клавиатуры вводятся имя, фамилия и отчество. Выведите на экран текст с инициалами.
Пример работы программы:
Фамилия: <{Алферов}> ++enter++
Имя: <{Жорес}> ++enter++
Отчество: <{Иванович}> ++enter++
Ж.И. АлферовСоздайте программу, с помощью которой можно заменить одно слово на другое. Пользователь вводит строку. После этого программа запрашивает слово, которое нужно заменить и слово для замены. Регистр слов важен. После замены, программа выводит новую строку и количество произведённых замен.
Пример работы программы:
Строка: <{Группа 240424. Задания для 240424.}> ++enter++
Заменить: <{240424}> ++enter++
На: <{240425}> ++enter++
Новый текст: Группа 240425. Задания для 240425.
Количество замен: 2Пользователь вводит имя, фамилию и год рождения. Сформируйте адрес электронной почты по правилу: первые две буквы имени + последние три буквы фамилии + символ @ + строка stud.by.
Если имя или фамилия короче требуемого количества символов, используется вся строка.
Пример работы программы:
Имя: <{Alexandr}> ++enter++
Фамилия: <{Ivanov}> ++enter++
Адрес: alnov@stud.byПользователь вводит имя текстового файла в формате имя.расширение. Сформируйте новое имя файла, заменив расширение .txt на .bak. После этого выведите исходное и новое имя файла.
Имя файла: <{report.txt}> ++enter++
Исходный файл: report.txt
Резервная копия: report.bakНапишите программу, которая из введённых имени, фамилии и номера группы студента составит логин для доступа в ресурсный центр. Логин должен быть результатом сложения первых трёх букв имени и фамилии и последних четырёх символов в номере группы. Если символов в имени, фамилии или номере группы меньше чем требуется, берётся вся строка.
Примеры работы программы:
Имя: <{Альберт}> ++enter++
Фамилия: <{Эйнштейн}> ++enter++
Номер группы: <{240425}> ++enter++
Логин: АльЭйн0425Имя: <{Георг}> ++enter++
Фамилия: <{Ом}> ++enter++
Номер группы: <{25}> ++enter++
Логин: ГеоОм25Напишите программу, которая преобразует строку с датой из формата мм/дд/гггг в дд.мм.гггг. Если номер дня или месяца состоит из одной цифры, при вводе слева записывается ноль.
Пример работы программы:
мм/дд/гггг: <{03/18/2026}> ++enter++
18.03.2026Пользователь вводит номер телефона в виде строки из 9 цифр без пробелов и других символов. Сформируйте и выведите номер в формате +375 (XX) XXX-XX-XX.
Пример работы программы:
Номер телефона: <{291234567}> ++enter++
+375 (29) 123-45-67С клавиатуры вводятся имя, фамилия и отчество. Выведите на экран текст с инициалами.
Пример работы программы:
Фамилия: <{Алферов}> ++enter++
Имя: <{Жорес}> ++enter++
Отчество: <{Иванович}> ++enter++
Ж.И. АлферовСоздайте программу, с помощью которой можно заменить одно слово на другое. Пользователь вводит строку. После этого программа запрашивает слово, которое нужно заменить и слово для замены. Регистр слов важен. После замены, программа выводит новую строку и количество произведённых замен.
Пример работы программы:
Строка: <{Группа 240424. Задания для 240424.}> ++enter++
Заменить: <{240424}> ++enter++
На: <{240425}> ++enter++
Новый текст: Группа 240425. Задания для 240425.
Количество замен: 2Пользователь вводит имя, фамилию и год рождения. Сформируйте адрес электронной почты по правилу: первые две буквы имени + последние три буквы фамилии + символ @ + строка stud.by.
Если имя или фамилия короче требуемого количества символов, используется вся строка.
Пример работы программы:
Имя: <{Alexandr}> ++enter++
Фамилия: <{Ivanov}> ++enter++
Адрес: alnov@stud.byПользователь вводит имя текстового файла в формате имя.расширение. Сформируйте новое имя файла, заменив расширение .txt на .bak. После этого выведите исходное и новое имя файла.
Имя файла: <{report.txt}> ++enter++
Исходный файл: report.txt
Резервная копия: report.bakНапишите программу, которая из введённых имени, фамилии и номера группы студента составит логин для доступа в ресурсный центр. Логин должен быть результатом сложения первых трёх букв имени и фамилии и последних четырёх символов в номере группы. Если символов в имени, фамилии или номере группы меньше чем требуется, берётся вся строка.
Примеры работы программы:
Имя: <{Альберт}> ++enter++
Фамилия: <{Эйнштейн}> ++enter++
Номер группы: <{240425}> ++enter++
Логин: АльЭйн0425Имя: <{Георг}> ++enter++
Фамилия: <{Ом}> ++enter++
Номер группы: <{25}> ++enter++
Логин: ГеоОм25Задание 7* (sam07.py)
Решите следующую задачу вашего варианта.
Дана строка. Определите, является ли она корректным идентификатором Python. Строка считается корректным идентификатором, если она содержит только буквы, цифры и символ _, не начинается с цифры и не является пустой.
Примеры работы программы:
Введите строку: <{sum_1}> ++enter++
ПодходитВведите строку: <{1prod}> ++enter++
Не подходитДана строка. Посчитайте количество гласных и согласных букв в ней. Все буквы в строке - строчные.
Примеры работы программы:
Строка: <{телескоп}> ++enter++
Гласных букв: 3
Согласных букв: 5Строка: <{123!@#}> ++enter++
Гласных букв: 0
Согласных букв: 0Напишите программу, которая проверяет, подходит ли введённая строка в качестве пароля. Требования к паролю:
- минимальная длина - 8 символов;
- содержит минимум 3 цифры;
- не содержит пробелов.
Если пароль не подходит, программа выводит причину.
Примеры работы программы:
Введите пароль: <{ps123}> ++enter++
Меньше 8 символовВведите пароль: <{passw_12}> ++enter++
Меньше 3 цифрВведите пароль: <{passw 123}> ++enter++
Есть пробелыВведите пароль: <{whitehat123}> ++enter++
Пароль whitehat123 подходитПользователь вводит друг за другом два слова. Программа должна определить, можно ли из букв слова с наибольшим количеством букв, составить слово с наименьшим количеством букв.
Примеры работы программы:
Введите первое слово: <{око}> ++enter++
Введите второе слово: <{окно}> ++enter++
Из слова окно можно составить слово окоВведите первое слово: <{программа}> ++enter++
Введите второе слово: <{строка}> ++enter++
Составить нельзяДана строка. Определите, является ли она корректным идентификатором Python. Строка считается корректным идентификатором, если она содержит только буквы, цифры и символ _, не начинается с цифры и не является пустой.
Примеры работы программы:
Введите строку: <{sum_1}> ++enter++
ПодходитВведите строку: <{1prod}> ++enter++
Не подходитДана строка. Посчитайте количество гласных и согласных букв в ней. Все буквы в строке - строчные.
Примеры работы программы:
Строка: <{телескоп}> ++enter++
Гласных букв: 3
Согласных букв: 5Строка: <{123!@#}> ++enter++
Гласных букв: 0
Согласных букв: 0Напишите программу, которая проверяет, подходит ли введённая строка в качестве пароля. Требования к паролю:
- минимальная длина - 8 символов;
- содержит минимум 3 цифры;
- не содержит пробелов.
Если пароль не подходит, программа выводит причину.
Примеры работы программы:
Введите пароль: <{ps123}> ++enter++
Меньше 8 символовВведите пароль: <{passw_12}> ++enter++
Меньше 3 цифрВведите пароль: <{passw 123}> ++enter++
Есть пробелыВведите пароль: <{whitehat123}> ++enter++
Пароль whitehat123 подходитПользователь вводит друг за другом два слова. Программа должна определить, можно ли из букв слова с наибольшим количеством букв, составить слово с наименьшим количеством букв.
Примеры работы программы:
Введите первое слово: <{око}> ++enter++
Введите второе слово: <{окно}> ++enter++
Из слова окно можно составить слово окоВведите первое слово: <{программа}> ++enter++
Введите второе слово: <{строка}> ++enter++
Составить нельзяДана строка. Определите, является ли она корректным идентификатором Python. Строка считается корректным идентификатором, если она содержит только буквы, цифры и символ _, не начинается с цифры и не является пустой.
Примеры работы программы:
Введите строку: <{sum_1}> ++enter++
ПодходитВведите строку: <{1prod}> ++enter++
Не подходитДана строка. Посчитайте количество гласных и согласных букв в ней. Все буквы в строке - строчные.
Примеры работы программы:
Строка: <{телескоп}> ++enter++
Гласных букв: 3
Согласных букв: 5Строка: <{123!@#}> ++enter++
Гласных букв: 0
Согласных букв: 0Напишите программу, которая проверяет, подходит ли введённая строка в качестве пароля. Требования к паролю:
- минимальная длина - 8 символов;
- содержит минимум 3 цифры;
- не содержит пробелов.
Если пароль не подходит, программа выводит причину.
Примеры работы программы:
Введите пароль: <{ps123}> ++enter++
Меньше 8 символовВведите пароль: <{passw_12}> ++enter++
Меньше 3 цифрВведите пароль: <{passw 123}> ++enter++
Есть пробелыВведите пароль: <{whitehat123}> ++enter++
Пароль whitehat123 подходитПользователь вводит друг за другом два слова. Программа должна определить, можно ли из букв слова с наибольшим количеством букв, составить слово с наименьшим количеством букв.
Примеры работы программы:
Введите первое слово: <{око}> ++enter++
Введите второе слово: <{окно}> ++enter++
Из слова окно можно составить слово окоВведите первое слово: <{программа}> ++enter++
Введите второе слово: <{строка}> ++enter++
Составить нельзяДана строка. Определите, является ли она корректным идентификатором Python. Строка считается корректным идентификатором, если она содержит только буквы, цифры и символ _, не начинается с цифры и не является пустой.
Примеры работы программы:
Введите строку: <{sum_1}> ++enter++
ПодходитВведите строку: <{1prod}> ++enter++
Не подходитДана строка. Посчитайте количество гласных и согласных букв в ней. Все буквы в строке - строчные.
Примеры работы программы:
Строка: <{телескоп}> ++enter++
Гласных букв: 3
Согласных букв: 5Строка: <{123!@#}> ++enter++
Гласных букв: 0
Согласных букв: 0
