Различия между версиями 8 и 9
Версия 8 от 2021-10-21 16:03:56
Размер: 6208
Редактор: hbd
Комментарий:
Версия 9 от 2021-12-01 03:09:02
Размер: 6292
Редактор: alryaz
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 2: Строка 2:
Множества
==
Множества ==
Строка 6: Строка 8:
  * [[py3doc:string.html#string.ascii_letters]] ? ☺
 * <!> Задача_1: Подсчитать количество различных пар букв в тексте
  * на вход подаётся строка, в которую могут входить: буквы, пробелы, а также любые другие символы
  * буквой считается символ, на котором `isalpha()` возвращает `True`
  * требуется подсчитать количество различных пар букв в тексте (заглавные и строчные буквы не считаются различными, поэтому строку сразу перевести в нижний регистр через `lower()`)
  * парой букв считаются расположенные рядом две буквы (примеры разных пар: аб, бб, , щz)
  * пример:
   * вход: `"аwба%Ба б7"`
   * выход: `3`
   * пары букв (выводить не надо): аw, wб, ба
  * [[py3doc:string.html]] ? ☺
 * <!> '''Задача_1:'''
  *
Подсчитать количество различных пар букв в тексте
  * На вход подаётся строка, в которую могут входить: буквы, пробелы, а также любые другие символы
  * Буквой считается символ, на котором `isalpha()` возвращает `True`
  * Требуется подсчитать количество различных пар букв в тексте (заглавные и строчные буквы не считаются различными, поэтому строку сразу перевести в нижний регистр через `lower()`)
  * Парой букв считаются расположенные рядом две буквы (примеры разных пар: `аб`, `бб`, ``, `щz`)
Строка 17: Строка 16:
Словари   '''Input:'''
  {{{
аwба%Ба б7
}}}

  '''Output:'''
  {{{
3
}}}

  '''Пары букв (выводить не надо):''' аw, wб, ба

== Словари ==
Строка 19: Строка 31:
 * В частности, [[py3doc|functions.html#eval]]  * В частности, [[py3doc:functions.html#eval|eval()]]

Строка 21: Строка 35:
 * {i} То же с помощью [[py3doc:collections#collections.Counter|Counter]]  * {i} То же с помощью [[py3doc:collections|Counter]]
Строка 23: Строка 37:
  * Ввод:
  '''Input:'''
Строка 26: Строка 41:
  }}}
  * Вывод:
}}}
  '''Output:'''
Строка 30: Строка 45:
  }}}
 * <!> Задача_2
  * Вводится сценарий, состоящий из строк двух видов
}}}
 * <!> '''Задача_2:'''
  * Вводится сценарий, состоящий из строк двух видов:
Строка 34: Строка 49:
    `:функция имя_переменной Python_выражение_с_этой_переменной`     . `:функция имя_переменной Python_выражение_с_этой_переменной`
Строка 36: Строка 51:
    `функция константа`     . `функция константа`
Строка 42: Строка 57:
  * Ввод:
  '''Input:'''
Строка 51: Строка 67:
  * Вывод:   '''Output:'''
Строка 58: Строка 74:
 * <!> Задача_3: В первой строке вводится натуральное число W. Затем — многострочный текст, который оканчивается пустой строкой. Вывести отсортированно через пробел все самые популярные в этом тексте слова длиной W. Если таких нет, ничего не выводить
  * Ввод
:
 * <!> '''Задача_3:'''
  *
В первой строке вводится натуральное число W.
  *
Затем — многострочный текст, который оканчивается пустой строкой.
  *
Вывести отсортированно через пробел все самые популярные в этом тексте слова длиной W.
  *
Если таких нет, ничего не выводить.

  '''Input
:'''
Строка 80: Строка 101:
  }}}
  * Вывод
}}}
  '''Output:'''
Строка 84: Строка 105:
  }}} }}}
Строка 87: Строка 109:
 * Задача_2: 
  * переделать под произвольное количество переменных, включая ноль. Определение функции будет иметь вид `:функция переменная_1 переменная_2 … выражение_без_пробелов`
  * параметр функции `quit` — форматная строка для двух параметров — количество определённых функций и количество обработанных строк
 * <!> '''Задача_2:'''
  * Переделать под произвольное количество переменных, включая ноль. Определение функции будет иметь вид `:функция переменная_1 переменная_2 … выражение_без_пробелов`
  * Параметр функции `quit` — форматная строка для двух параметров — количество определённых функций и количество обработанных строк
Строка 91: Строка 113:
  *  написать тесты на функции с 0, 1,2 и 4 параметрами
 * Задача_3: очистить текст от не-букв и не учитывать регистр при подсчёте
  * Написать тесты на функции с 0, 1,2 и 4 параметрами

* <!> '''Задача_3:'''
 * Очистить текст от не-букв и не учитывать регистр при подсчёте

10.21 Множества и словари

Множества

  • Главное свойство множества — амортизированная константность доступа
  • Теоретико-множественные операции
  • {i} Посчитать, сколько гласных и сколько согласных в строке

  • <!> Задача_1:

    • Подсчитать количество различных пар букв в тексте
    • На вход подаётся строка, в которую могут входить: буквы, пробелы, а также любые другие символы
    • Буквой считается символ, на котором isalpha() возвращает True

    • Требуется подсчитать количество различных пар букв в тексте (заглавные и строчные буквы не считаются различными, поэтому строку сразу перевести в нижний регистр через lower())

    • Парой букв считаются расположенные рядом две буквы (примеры разных пар: аб, бб, , щz)

      Input:

      аwба%Ба б7

      Output:

      3

      Пары букв (выводить не надо): аw, wб, ба

Словари

  • Основные свойства словарей, словари внутри python
  • В частности, eval()

  • {i} Посчитать количество вхождений различных слов в тексте (слова разделены пробелами)

  • {i} То же с помощью Counter

  • {i} Убрать все повторяющиеся слова из текста (однострочник, слова разделены пробелами, используется фича словарей сохранять порядок добавления)

    • Input:

      abc def abc qwert def

      Output:

      abc def qwert
  • <!> Задача_2:

    • Вводится сценарий, состоящий из строк двух видов:
      1. Определение функции от одной переменой:
        • :функция имя_переменной Python_выражение_с_этой_переменной

      2. Вызов функции:
        • функция константа

    • Последняя строка содержит quit c произвольным параметром

    • Выражение не содержит пробельных символов
    • Написать интерпретатор, который бы выводил результаты вызовов функций. Вызов функции quit выводит количество определённых функций (включая саму quit) и завершает работу интерпретатора

    • Считается, что в интерпретаторе выполнен from math import *

    • Имена функций и переменных состоят только из букв

      Input:

      :sin x sin(x)
      sin 1
      :decorate s "--<<{}>>--".format(s)
      decorate "ЖЖЖ"
      sin 2
      quit всё

      Output:

      0.8414709848078965
      --<<ЖЖЖ>>--
      0.9092974268256817
      3
  • <!> Задача_3:

    • В первой строке вводится натуральное число W.
    • Затем — многострочный текст, который оканчивается пустой строкой.
    • Вывести отсортированно через пробел все самые популярные в этом тексте слова длиной W.
    • Если таких нет, ничего не выводить.

      Input:

      5
      cerebral atrophy, n:
              The phenomena which occurs as brain cells become weak and sick, and
      impair the brain's performance.  An abundance of these "bad" cells can cause
      symptoms related to senility, apathy, depression, and overall poor academic
      performance.  A certain small number of brain cells will deteriorate due to
      everday activity, but large amounts are weakened by intense mental effort
      and the assimilation of difficult concepts.  Many college students become
      victims of this dread disorder due to poor habits such as overstudying.
      -
      cerebral darwinism, n:
              The theory that the effects of cerebral atrophy can be reversed
      through the purging action of heavy alcohol consumption.  Large amounts of
      alcohol cause many brain cells to perish due to oxygen deprivation.  Through
      the process of natural selection, the weak and sick brain cells will die
      first, leaving only the healthy cells.  This wonderful process leaves the
      imbiber with a healthier, more vibrant brain, and increases mental capacity.
      Thus, the devastating effects of cerebral atrophy are reversed, and academic
      performance actually increases beyond previous levels.

      Output:

      brain cells

Д/З

  • Доделать всё
  • <!> Задача_2:

    • Переделать под произвольное количество переменных, включая ноль. Определение функции будет иметь вид :функция переменная_1 переменная_2 … выражение_без_пробелов

    • Параметр функции quit — форматная строка для двух параметров — количество определённых функций и количество обработанных строк

      • В примере семинара quit "{}:{}" должен выдать 3:6

    • Написать тесты на функции с 0, 1,2 и 4 параметрами
  • <!> Задача_3:

    • Очистить текст от не-букв и не учитывать регистр при подсчёте

LecturesCMC/PythonIntro2021/Prac/06_SetsDicts (последним исправлял пользователь alryaz 2021-12-01 03:09:02)