{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "ac8a2392",
   "metadata": {},
   "source": [
    "# <span style=\"color: DarkMagenta\">Задачи для практического занятия по курсу:</span>\n",
    "\n",
    "## <span style=\"color: Purple\">\"Основы алгоритмизации и программирования\"</span>\n",
    "\n",
    "### Лабораторная работа по теме \"Строки\" (повторение) &#128221;\n",
    "\n",
    "#### Преподаватель практики: Е.В. Ширяева, каф. ВМ и МФ, мехмат ЮФУ \n",
    "\n",
    "-----------\n",
    "\n",
    "<span style=\"color: DarkRed\">**Переименовать файл:**</span> File -> Rename... -> поменять NameStud на свою фамилию, записанную латинскими буквами -> нажать Rename.\n",
    "\n",
    "-----------"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "b6c80e01",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 1) Задайте двухстрочный текст, используя f-строку"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c8f25880",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 2) Выведите полученную строку на экран. Выведите длину строки."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bce04e46",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 3) Оформите в виде тернарной условной конструкции печать результата проверки условия\n",
    "# \"Если длина строки s нечетная, то выведите символ, стоящий ровно посередине текста,\n",
    "#  в противном случае вывести первый и последний символы строки через пробел\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d16016ef",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 4) Замените первый символ строки буквой P, не используя никаких методов\n",
    "# Примечание. Далее работа будет происходить с исправленной строкой s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "974e4a19",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 5) Используя срез вида [begin:end], создайте из исходной строки новую строку со словом \"ration\"\n",
    "# begin, end -- числовые значения нужных позиций символов"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "60744324",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 6) Используя срез вида [begin:end:step], напечатайте следующий фрагмент\n",
    "# исходной строки: pt  t.i0  tpiSnat\"hur snnesso5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "3153d0bc",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 7) Получите значения переменных, используя функцию index()\n",
    "# pos25 -- позиция подстроки 25;   posP -- позиция любой точки;  pos2026 -- позиция подстроки 2025\n",
    "# Используя только полученные значений pos25, posP, pos2026, конкатенацию и срезы,\n",
    "# соберите из элементов строки текст с сегодняшней датой в формате\n",
    "# 25.02.2026\n",
    "# выведите его на экран"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a2b86d42",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 8) Выведите каждую букву строки в порядке их расположения в кодовой таблице.\n",
    "# Каждая буква должна выводиться один раз.\n",
    "# Формат строки с ответами для каждой буквы: <Код символа> <Символ> <Количество символов в строке>\n",
    "# Например, для строки \"kotok\" вид ответа (печатайте в каждой строке сведения о 5 буквах)\n",
    "# 107 k 2    111 o 2   116 t 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "348018fa",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 9) Создайте новую строку sNew, в которой все первые буквы исходной строки заменены на заглавные\n",
    "# Совет: используйте встроенный метод (цикл не нужен)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "9437e05b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 10) Замените в новой строке sNew первое и второе слово Test на слово Work\n",
    "# Совет: используйте встроенный метод (цикл не нужен)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "0a30b3e4",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 11) Устно определите результат работы функций min(sNew) и max(sNew)\n",
    "# Напечатайте результат работы этих функций. Совпал ли он с Вашими ожиданиями?\n",
    "# Объясните (в виде комментария), почему получился такой результат"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "ea895367",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 12) Напишите оператор присваивания, позволяющий скопировать все пробелы из строки sNew\n",
    "# вперед и в начало строки. Выведите измененную строку на печать. \n",
    "# Например, для строки 'cat and dog' измененная строка '  cat and dog  '"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "842b760f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 13) Используя полученную строку sNew, придумайте примеры заданий для демонстрации методов\n",
    "# strip, lstrip и rstrip. Приведите решения своих заданий."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "75bb3772",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 14) Создайте из строки sNew список слов. Словами считаются подстроки, состоящие только \n",
    "# из латинских букв."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "e7c23c22",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 15) Соберите из созданного в задании 14_ списка новую строку, соединив слова знаком '-'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "e447d50f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 16) Любым способом удалите из списка a1 все повторяющиеся слова. Отсортируйте полученный список. \n",
    "# Выведите изменённый список на печать"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "f40d68df",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 17) Для числа n получите строковые виды представлений числа в 2-ой, 8-ой, 10-ной и 16-ой с.с.\n",
    "# Все числа 16-разрядные. Если разрядов получилось больше, то дополните их незначащими нулями.\n",
    "# Выведите получившиеся строки на экран"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "065895cb",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 18) Определите количество незначащих нулей в каждой из полученных в задании 17) строк\n",
    "# Выведите результат на экран"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "41ee9fb2",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 19) С клавиатуры вводится натуральное число n. Выполните для него задания\n",
    "# a) Найдите количество нечетных цифр в двоичной записи числа n.\n",
    "# b) Найдите количество чётных цифр в восьмеричной записи числа n.\n",
    "# c) Определите, есть ли в 16-ной записи числа n буквы. Используйте соответствующую строковую функцию.\n",
    "# d) Найдите среднее арифметическое цифр в 16-ной записи числа n.\n",
    "# e) Переведите число n в 16-ую с.с. Затем, считая, что это запись не 16-го числа, а 20-го, переведите его\n",
    "#    обратно в 10-ную с.с.\n",
    "#    Например, n = 123 --> n16 = '7b' -> n20 = 151\n",
    "# f) Переведите число n в 16-ую с.с. Определите, может ли эта 16-ная запись представлять собой \n",
    "# правильную запись десятичного числа. \n",
    "#    Например, для числа n = 15 -> n16 = 'f' - не может быть записью 10-го числа\n",
    "#    Например, для числа n = 16 -> n16 = '10' - может быть записью 10-го числа"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0637a41b",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
