Задачи для практического занятия по курсу:

"Основы алгоритмизации и программирования"

Лабораторная работа № 6 по теме "Строки" (часть 7) 📝

Преподаватель практики: Т.Ф. Долгих, каф. ВМ и МФ, мехмат ЮФУ 👩‍🏫


**Общие указания:** выполнять задания с использованием методов модуля string. Решения оформлять в виде модулей.

Тестовые примеры придумывать свои, а не воровать у преподавателя.


Некоторые полезные методы модуля string:

  • string.ascii_lowercase — строчные латинские буквы в алфавитном порядке 'abcdefghijklmnopqrstuvwxyz'

  • string.ascii_uppercase — прописные латинские буквы в алфавитном порядке 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

  • string.ascii_letters — все латинские буквы 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

  • string.digits — строка из десятичных цифр '0123456789'

  • string.octdigits — строка из восьмеричных цифр '01234567'

  • string.hexdigits — строка из шестнадцатеричных цифр '0123456789abcdefABCDEF'

  • string.punctuation — строка знаков препинания, характерных для кода С: '!"#$%&'()*+,-./:;<=>?@[\]^_´{|}~'

  • string.whitespace — пробельные символы (пробел, табуляция, перевод строки и др.)

  • string.printable — все печатаемые символы (буквы, цифры, пунктуация, пробелы)


💻 Задание 6.26. В модуле func.py опишите функцию delpunct, которая на вход получает строку и удаляет из неё все знаки препинания.

Указание 1. При решении использовать методы модуля string.

Указание 2. Добавьте три теста для проверки функции методами модуля doctest.


💻 Задание 6.27. В модуле main.py решите следующую задачу: дана строка. Используя функцию delpunct, определить самое длинное и самое коротко слова в данной строке. Если таких слов несколько определите первое вхождение.


💻 Задание 6.28. В модуле func.py опишите функцию alphabet, которая получает натуральное число $1 < p < 37$, а возвращает алфавит системы счисления с основанием $p$ в форме строки.

Указание 1. Регист цифр-букв должен учитываться, то есть в алфавит должны входить строчные и заглавные буквы.

Указание 2. При решении использовать методы модуля string.

Указание 3. Добавьте три теста для проверки функции методами модуля doctest.


💻 Задание 6.29. В модуле main2.py решите следующую задачу: дана строка и целое число $n$. Если эта строка является правильной записью числа в $n$-той системе счисления, то получите его десятичное и двоичное значения. В противном случае, инвертируйте данную строку.

Указание. Для проверки строки используйте функцию alphabet.


💻 Задание 6.30. В модуле func.py опишите функцию password, которая получает натуральное число $k > 6$, а возвращает случайно сгенерированный пароль из $k$ символов.

Указание 1. Пароль обязательно должен содержать заглавные и строчные буквы, цифры, знаки пунктуации.

Указание 2. При решении использовать методы модуля string.