Lecture_03_Python

Содержание

Слайд 2

Строка считывается со стандартного ввода функцией input(). Напомним, что для двух строк

Строка считывается со стандартного ввода функцией input(). Напомним, что для двух строк
определена операция сложения (конкатенации), также определена операция умножения строки на число.
Строка состоит из последовательности символов. Узнать количество символов (длину строки) можно при помощи функции len.
Любой другой объект в Питоне можно перевести к строке, которая ему соответствует. Для этого нужно вызвать функцию str(), передав ей в качестве параметра объект, переводимый в строку.

Строки

Слайд 3

Срез (slice) — извлечение из данной строки одного символа или некоторого фрагмента

Срез (slice) — извлечение из данной строки одного символа или некоторого фрагмента
подстроки или подпоследовательности.
Есть три формы срезов. Самая простая форма среза: взятие одного символа строки, а именно, S[i] — это срез, состоящий из одного символа, который имеет номер i. При этом считается, что нумерация начинается с числа 0. То есть если S = 'Hello', то S[0] == 'H', S[1] == 'e', S[2] == 'l', S[3] == 'l', S[4] == 'o'.

Строки

Заметим, что в Питоне нет отдельного типа для символов строки. Каждый объект, который получается в результате среза S[i] — это тоже строка типа str.
Номера символов в строке (а также в других структурах данных: списках, кортежах) называются индексом. Если указать отрицательное значение индекса, то номер будет отсчитываться с конца, начиная с номера -1. То есть S[-1] == 'o', S[-2] == 'l', S[-3] == 'l', S[-4] == 'e', S[-5] == 'H'.

Слайд 4

Если же номер символа в срезе строки S больше либо равен len(S),

Если же номер символа в срезе строки S больше либо равен len(S),
или меньше, чем -len(S), то при обращении к этому символу строки произойдет ошибка IndexError: string index out of range.
Срез с двумя параметрами: S[a:b] возвращает подстроку из b - a символов, начиная с символа c индексом a, то есть до символа с индексом b, не включая его. Например, S[1:4] == 'ell', то же самое получится если написать S[-4:-1]. Можно использовать как положительные, так и отрицательные индексы в одном срезе, например, S[1:-1] — это строка без первого и последнего символа (срез начинается с символа с индексом 1 и заканчиватеся индексом -1, не включая его). При использовании такой формы среза ошибки IndexError никогда не возникает. Например, срез S[1:5] вернет строку 'ello', таким же будет результат, если сделать второй индекс очень большим, например, S[1:100] (если в строке не более 100 символов).

Строки

Слайд 5

Если опустить второй параметр (но поставить двоеточие), то срез берется до конца

Если опустить второй параметр (но поставить двоеточие), то срез берется до конца
строки. Например, чтобы удалить из строки первый символ (его индекс равен 0), можно взять срез S[1:]. Аналогично если опустить первый параметр, то можно взять срез от начала строки. То есть удалить из строки последний символ можно при помощи среза S[:-1]. Срез S[:] совпадает с самой строкой S.
Если задать срез с тремя параметрами S[a:b:d], то третий параметр задает шаг, как в случае с функцией range, то есть будут взяты символы с индексами a, a + d, a + 2 * d и т. д. При задании значения третьего параметра, равному 2, в срез попадет кажый второй символ, а если взять значение среза, равное -1, то символы будут идти в обратном порядке. Например, можно перевернуть строку срезом S[::-1].

Строки

Слайд 6

Строки

Обратите внимание на то, как похож третий параметр среза на третий параметр

Строки Обратите внимание на то, как похож третий параметр среза на третий параметр функции range():
функции range():

Слайд 7

Строки

Методы find и rfind
Метод – это функция, применяемая к объекту, в данном

Строки Методы find и rfind Метод – это функция, применяемая к объекту,
случае – к строке. Метод вызывается в виде Имя_объекта.Имя_метода(параметры). Например, S.find("e") – это применение к строке S метода find с одним параметром "e".
Метод find находит в данной строке (к которой применяется метод) данную подстроку (которая передается в качестве параметра). Функция возвращает индекс первого вхождения искомой подстроки. Если же подстрока не найдена, то метод возвращает значение -1.

Слайд 8

Строки

Аналогично, метод rfind возвращает индекс последнего вхождения данной строки (“поиск справа”).

Если вызвать

Строки Аналогично, метод rfind возвращает индекс последнего вхождения данной строки (“поиск справа”).
метод find с тремя параметрами S.find(T, a, b), то поиск будет осуществляться в срезе S[a:b]. Если указать только два параметра S.find(T, a), то поиск будет осуществляться в срезе S[a:], то есть начиная с символа с индексом a и до конца строки. Метод S.find(T, a, b) возвращает индекс в строке S, а не индекс относительно среза.

Слайд 9

Строки

Метод replace
Метод replace заменяет все вхождения одной строки на другую. Формат: S.replace(old,

Строки Метод replace Метод replace заменяет все вхождения одной строки на другую.
new) – заменить в строке S все вхождения подстроки old на подстроку new. Пример:

Если методу replace задать еще один параметр: S.replace(old, new, count), то заменены будут не все вхождения, а только не больше, чем первые count из них.

Слайд 10

Строки

Метод count
Подсчитывает количество вхождений одной строки в другую строку. Простейшая форма вызова

Строки Метод count Подсчитывает количество вхождений одной строки в другую строку. Простейшая
S.count(T) возвращает число вхождений строки T внутри строки S. При этом подсчитываются только непересекающиеся вхождения, например:

При указании трех параметров S.count(T, a, b), будет выполнен подсчет числа вхождений строки T в срезе S[a:b].

Слайд 11

Задачи

Задачи

Слайд 12

Задачи

Задачи

Слайд 13

Цикл while

Цикл while (“пока”) позволяет выполнить одну и ту же последовательность действий,

Цикл while Цикл while (“пока”) позволяет выполнить одну и ту же последовательность
пока проверяемое условие истинно. Условие записывается до тела цикла и проверяется до выполнения тела цикла. Как правило, цикл while используется, когда невозможно определить точное значение количества проходов исполнения цикла. Синтаксис цикла while в простейшем случае выглядит так:

При выполнении цикла while сначала проверяется условие. Если оно ложно, то выполнение цикла прекращается и управление передается на следующую инструкцию после тела цикла while. Если условие истинно, то выполняется инструкция, после чего условие проверяется снова и снова выполняется инструкция. Так продолжается до тех пор, пока условие будет истинно. Как только условие станет ложно, работа цикла завершится и управление передастся следующей инструкции после цикла.

Слайд 14

Цикл while

Например, следующий фрагмент программы напечатает на экран квадраты всех целых чисел

Цикл while Например, следующий фрагмент программы напечатает на экран квадраты всех целых
от 1 до 10. Видно, что цикл while может заменять цикл for ... in range(...):

В этом примере переменная i внутри цикла изменяется от 1 до 10. Такая переменная, значение которой меняется с каждым новым проходом цикла, называется счетчиком. Заметим, что после выполнения этого фрагмента значение переменной i будет равно 11, поскольку именно при i == 11 условие i <= 10 впервые перестанет выполняться.

Слайд 15

Цикл while

Вот еще один пример использования цикла while для определения количества цифр

Цикл while Вот еще один пример использования цикла while для определения количества
натурального числа n:

В этом цикле мы отбрасываем по одной цифре числа, начиная с конца, что эквивалентно целочисленному делению на 10 (n //= 10), при этом считаем в переменной length, сколько раз это было сделано.
В языке Питон есть и другой способ решения этой задачи: length = len(str(i)).

Слайд 16

Цикл while

После тела цикла можно написать слово else: и после него блок

Цикл while После тела цикла можно написать слово else: и после него
операций, который будет выполнен один раз после окончания цикла, когда проверяемое условие станет неверно:

Казалось бы, никакого смысла в этом нет, ведь эту же инструкцию можно просто написать после окончания цикла. Смысл появляется только вместе с инструкцией break. Если во время выполнения Питон встречает инструкцию break внутри цикла, то он сразу же прекращает выполнение этого цикла и выходит из него. При этом ветка else исполняться не будет. Разумеется, инструкцию break осмыленно вызывать только внутри инструкции if, то есть она должна выполняться только при выполнении какого-то особенного условия.

Слайд 17

Цикл while

Приведем пример программы, которая считывает числа до тех пор, пока не

Цикл while Приведем пример программы, которая считывает числа до тех пор, пока
встретит отрицательное число. При появлении отрицательного числа программа завершается. В первом варианте последовательность чисел завершается числом 0 (при считывании которого надо остановиться).

Слайд 18

Цикл while

Другая инструкция управления циклом — continue (продолжение цикла). Если эта инструкция

Цикл while Другая инструкция управления циклом — continue (продолжение цикла). Если эта
встречается где-то посередине цикла, то пропускаются все оставшиеся инструкции до конца цикла, и исполнение цикла продолжается со следующей итерации.

Во втором варианте программы сначала на вход подается количество элементов последовательности, а затем и сами элементы. В таком случае удобно воспользоваться циклом for. Цикл for также может иметь ветку else и содержать инструкции break внутри себя.

Слайд 19

Цикл while

Увлечение инструкциями break и continue не поощряется, если можно обойтись без

Цикл while Увлечение инструкциями break и continue не поощряется, если можно обойтись
их использования. Вот типичный пример плохого использования инструкции break (данный код считает количество знаков в числе).

Гораздо лучше переписать этот цикл так:

или

Слайд 20

Множественное присваивание

В Питоне можно за одну инструкцию присваивания изменять значение сразу нескольких

Множественное присваивание В Питоне можно за одну инструкцию присваивания изменять значение сразу
переменных. Делается это так:

или

Отличие двух способов состоит в том, что множественное присваивание в первом способе меняет значение двух переменных одновременно.
Если слева от знака «=» в множественном присваивании должны стоять через запятую имена переменных, то справа могут стоять произвольные выражения, разделённые запятыми. Главное, чтобы слева и справа от знака присваивания было одинаковое число элементов.

Слайд 21

Множественное присваивание

Множественное присваивание удобно использовать, когда нужно обменять значения двух переменных. В

Множественное присваивание Множественное присваивание удобно использовать, когда нужно обменять значения двух переменных.
обычных языках программирования без использования специальных функций это делается так:

В Питоне то же действие записывается в одну строчку:

Слайд 22

Задачи

Задачи

Слайд 23

Задачи

Задачи
Имя файла: Lecture_03_Python.pptx
Количество просмотров: 39
Количество скачиваний: 2