Различия между версиями 9 и 10
Версия 9 от 2017-10-28 11:21:11
Размер: 3572
Редактор: FrBrGeorge
Комментарий:
Версия 10 от 2017-10-28 11:29:41
Размер: 3584
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 49: Строка 49:
-----
Строка 58: Строка 57:
 * <<EJCMC(86, MaxInt, Поиск наибольшего числа в тексте)>>
Строка 59: Строка 59:
 * поиск наибольшего числа в ''тексте''

Строки

Напоминание: если в задаче сказано «написать генератор», это значит «написать генератор». Например, LookSay

Повторение: списки

  • Индексируемая последовательность
    • for

    • .__getitem__(), оно же [,

    • распаковка везде,
    • лексикографическое сравнение,
    • in

    • сложение/умножение
  • цилклический генератор
  • модифицируемость
  • Динамический массив
    • вставка, удаление, индексирование
  • стек
  • моделирование многомерных массивов с помощью списков

Строки

  • Задание строк
  • Спецсимволы, модификатор r

Строки как последовательности

  • индексирование, секционирование, сложение, умножение, итерация, распаковка
  • особенности:
    • a[5] === a[5:6] (так ли это? :) )

    • "asd" in "qwasdgfh"

Строковые методы

  • endswith(), startswith(),

  • find(), index(), count(),

  • isalnum(), isalpha(), isdecimal(), isdigit(), isidentifier(), islower(), isnumeric(), isprintable(), isspace(), istitle(), isupper(),

  • center(), rjust(), ljust(),

  • lower(), upper(), swapcase(), title(), capitalize(), casefold(),

  • replace(),

  • strip(), expandtabs(),

  • zfill(),

  • rfind(), rindex(), rpartition(), rsplit(), rstrip(), lstrip(),

split() и join()

  • split(), splitlines(), join(),

Форматиро вание строк

  • format() (+ format_map(), но там словари)

Байтовые строки

  • bytes/bytearray,

  • кодировки и кодирование/декодирование
  • encode(),

Д/3

  • (Разбор решения в полном условии задачи, но на EJudge она тоже будет)

    EJudge: YieldFrom 'Суперпозиция генераторов'

    Ввести последовательность четвёрок целых чисел вида (s, d, m, n), (…), …. Для каждой четвёрки составить целочисленную последовательность {ai}: a0=s, ai+1=ai/d+m, если ai делится на d и ai+1=ai+n в противном случае. Последовательность заканчивается на i-м элементе, если i+1-й будет ему равен, в противном случае (цикл из нескольких значений или неограниченный рост) последовательность считается бесконечной. Если последовательность, полученная из очередной четвёрки, заканчивается, начинается последовательность, полученная из следующей четвёрки. Ввести k и вывести k-й член этой общей последовательности или "NO", если в ней меньше k элементов. См. далее разбор решения.

    Input:

    (4,2,5,3),(3,5,8,1),(5,3,8,2),(3,4,2,6)
    30
    Output:

    13
  • Прочитать
  • Посмотреть, как оформлена, и разобраться, как работает программа «рисования» фигур на текстовом экране. Дописать функции, рисующие:

    • прямоугольник со сторонами, параллельными осям координат
    • ломаную (из последовательности пар координат)
    • <!> окружность

  • EJudge: MaxInt 'Поиск наибольшего числа в тексте'

    Ввести текст, состоящий из нескольких строк (заканчивается пустой строкой). Каждая строка состоит из «слов» (последовательностей непробельных символов), разделённых пробелами или табуляциями. Некоторые слова — целые числа (возможно, отрицательные), другие числами не являются (хотя могут содержать цифры). Найти и вывести наибольшее из этих чисел.

    Input:

    enemies -565 glanduliform h252Tbeaic -tv5naa2re4 55 silicamortar eared
    ra50ertc-8 -4 94 ohgutyd38 163 -562 u8e8qisn handout crossword 22s4cico
    -v80s6eessl beaning en1A1i-2l 545 december flo ch00a0-h1t vignettist
    ­­
    Output:

    545

TODO

  • поиск примитивного шаблона в строке (не обязательно эффективный, без *)

  • обход лабиринта

LecturesCMC/PythonIntro2017/06_Strings (последним исправлял пользователь FrBrGeorge 2017-11-19 22:46:42)