{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Классная работа"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String8.** Дано целое число $N (> 0)$ и символ $C$. Вывести строку длины $N$, которая состоит из символов $C$. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "c=(input(\"input c:\"))\n",
    "n=int(input(\"input n:\"))\n",
    "#print(...)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String9.** Дано четное число $N (> 0)$ и символы $C_1$ и $C_2$. Вывести строку длины $N$, которая состоит из чередующихся символов $C_1$ и $C_2$, начиная с $C_1$. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "\"\"\"\n",
    "Пример результата работы программы:\n",
    "input c1 h\n",
    "input c2 w\n",
    "input n 6\n",
    "hwhwhw\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*Подсказка.* Используйте целочисленное деление на 2."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String10.** Дана строка. Вывести строку, содержащую те же символы, но расположенные в обратном порядке. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*Подсказка.* Используйте срезы! См. лекцию. Краткое описание: `s[i:j:step]` (\"от\", \"до\", \"шаг\"). Следите за индексами!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String27.** Даны целые положительные числа $N_1$ и $N_2$ и строки $S_1$ и $S_2$. Получить из этих строк новую строку, содержащую первые $N_1$ символов строки $S_1$ и последние $N_2$ символов строки $S_2$ (в указанном порядке). "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String31.** Даны строки $S$ и $S_0$. Проверить, содержится ли строка $S_0$ в строке $S$. Если содержится, то вывести `True`, если не содержится, то вывести `False`. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*Подсказка.* Решение можно поместить в одну команду; никакого условного оператора. Вспомните методы строк!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String32.** Даны строки $S$ и $S_0$. Найти количество вхождений строки $S_0$ в строку $S$. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*Подсказка.* Вспомните методы строк! Используйте срезы и методы поиска подстроки в строке (помните, что возвращают они *индекс*, т.е. номер вхождения, либо -1). См. лекцию.\n",
    "Соберите искомую строчку через конкатенацию (сложение) фрагментов строк."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String36.** Даны строки $S$, $S_1$ и $S_2$. Заменить в строке $S$ первое вхождение строки $S_1$ на строку $S_2$. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String37.** Даны строки $S$, $S_1$ и $S_2$. Заменить в строке $S$ последнее вхождение строки $S_1$ на строку $S_2$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Домашняя работа"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String11.** Дана непустая строка $S$. Вывести строку, содержащую символы строки $S$, между которыми вставлено по одному пробелу. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*Подсказка.* Можно взять цикл в диапазоне длины строки `len(s)`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String12.** Дана непустая строка $S$ и целое число $N (> 0)$. Вывести строку, содержащую символы строки $S$, между которыми вставлено по $N$ символов «$*$» (звездочка). "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String13.** Дана строка. Подсчитать количество содержащихся в ней цифр. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*Подсказка.* Для проверки, является ли символ цифрой, можно использовать\n",
    "`in '0123456789'`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String24.** Дана строка, изображающая двоичную запись целого положительного числа. Вывести строку, изображающую десятичную запись этого же числа. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "\n",
    "\"\"\"\n",
    "Например, если ввели\n",
    "input s: 10001111\n",
    "то результат будет\n",
    "143\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*Подсказка.* Вспомните алгоритм перевода чисел из двоичной в десятичную запись! Используйте цикл `while` для прохода по каждой цифре числа."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String54.** Дана строка-предложение на русском языке. Подсчитать количество содержащихся в строке гласных букв. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Recur12.** Описать рекурсивную функцию `digit_count(s)` целого типа, которая находит количество цифр в строке $S$, не используя оператор цикла. С помощью этой функции найти количество цифр в каждой из пяти данных строк."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "#описание функции\n",
    "def digit_count(s):\n",
    "    return 1\n",
    "#никаких циклов!\n",
    "\n",
    "\n",
    "#Основная программа:\n",
    "for g in range(5):\n",
    "    print(1)\n",
    "\n",
    "\n",
    "\"\"\"\n",
    "В основной программе цикл уже можно использовать -\n",
    "просто для вывода значений описанной функции. \n",
    "Сотрите это комментарий, если он мешает.\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "#тестирование функции\n",
    "assert digit_count('555hell0w0rl9')==6, \"Test 1\"\n",
    "assert digit_count('c00000000000conut')==11, \"Test 2\"\n",
    "assert digit_count('45454545458')==11, \"Test 3\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
