Различия между версиями 7 и 8
Версия 7 от 2017-10-27 14:24:08
Размер: 2545
Редактор: FrBrGeorge
Комментарий:
Версия 8 от 2017-10-27 22:48:12
Размер: 2704
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 19: Строка 19:
Строка 50: Строка 51:
 * ('''Разбор решения в полном условии задачи''')<<EJCMC(86, YieldFrom, Суперпозиция генераторов)>>

Строки

Напоминание: если в задаче сказано «написать генератор», это значит «написать генератор». Например, 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: 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

TODO

  • /!\ Прочитать

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

  • ?
  • поиск наибольшего числа в тексте

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

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