Строки, индексы и срезы

Содержание

Слайд 2

План занятия

Индексация строк

Срезы

План занятия Индексация строк Срезы

Слайд 3

Строки

Мы увидели, что Python отлично умеет работать с числами, но что, если

Строки Мы увидели, что Python отлично умеет работать с числами, но что,
мы хотим общаться с людьми? Люди лучше понимает слова и предложения, а не просто цифры. Чтобы написать программы, которыми смогут пользоваться люди, нам потребуется другой тип переменных, известный под названием строки. Строки - это то, как мы называем текст или клавиатурные символы на языке программирования, иными словами, это группы букв, цифр и символов. Ваше имя - это строка, как и название вашего любимого цвета, даже этот абзац (или даже вся книга) - это длинная строка букв, пробелов, цифр, символов, перемешанных друг с другом.

Слайд 4

Строки

Строковый тип данных очень часто используется в программировании. В Python строковый тип

Строки Строковый тип данных очень часто используется в программировании. В Python строковый
данных имеет название str. Команда input() считывает именно строку текста. Для задания пустой строки, мы используем две кавычки одинакового типа. Нельзя путать пустую строку и строку состоящую из одного символа пробела. Это абсолютно разные строки !!!!
Длиной строки называется количество символов
из которых она состоит. Чтобы посчитать длину строки
используем встроенную функцию len().
Помните, что пробелы, запятые, все знаки, заключенные в кавычки, являются символами.

11

Слайд 5

Строки

В Python есть специальный оператор in, который позволяет проверить, что одна строка

Строки В Python есть специальный оператор in, который позволяет проверить, что одна
находится внутри другой.
Мы можем использовать оператор in вместе с логическим оператором not.

Слайд 6

Индексация

Очень часто бывает необходимо обратиться к конкретному символу в строке. Для этого

Индексация Очень часто бывает необходимо обратиться к конкретному символу в строке. Для
в Python используются квадратные скобки [], в которых указывается индекс (номер) нужного символа в строке.
Обратите внимание первый символ строки равен s[0], а не s[1]. В Python индексация начинается с 0, по аналогии с функцией range(n).
Если длина строки s равна len(s), то при положительной нумерации слева направо, последний элемент имеет индекс равный len(s) - 1, а при отрицательной индексации справа налево, первый элемент имеет индекс равный - len(s).

Слайд 7

Перебор элементов строки

Строка - это набор символов, поэтому циклический проход по строке

Перебор элементов строки Строка - это набор символов, поэтому циклический проход по
с помощью цикла for языка Python разобьет строку на отдельные символы. В примере ниже переменная i пройдет по всем символам в строковой переменной word.
В нашем случае длина строки word, равна 6. Таким образом, вызов функции range(len(word)) имеет вид range(6) и переменная цикла i последовательно перебирает все значения от 0 до 5. Это означает, что выражение word[i] последовательно вернет все символы строки word.
Если нам не нужен индекс самого символа, то мы можем использовать более короткий способ итерации:

Слайд 8

Практика

1 На вход программе подается одна строка. Напишите программу, которая выводит

Практика 1 На вход программе подается одна строка. Напишите программу, которая выводит
элементы строки с индексами 1, 3, 5, ... в столбик.
2 На вход программе подаются три строки: имя, фамилия и отчество. Напишите программу, которая выводит инициалы человека. На вход программе подаются три строки, каждая на отдельной строке.
3 На вход программе подается одна строка состоящая из цифр. Напишите программу, которая считает сумму цифр данной строки.
4 На вход программе подается одна строка. Напишите программу, которая определяет сколько в ней одинаковых соседних символов.
ДЗ На вход программе подается одна строка. Напишите программу, которая определяет сколько раз в строке встречаются символы ! и -.

Слайд 9

Срезы

Иногда нужно бывает работать с целыми частями строки, в таком случае мы

Срезы Иногда нужно бывает работать с целыми частями строки, в таком случае
используем срезы (slices). Срезы похожи на комбинацию индексации и функции range(). С помощью среза мы можем получить несколько символов исходной строки, создав диапазон индексов разделенных двоеточием word[x:y]. При построении среза word[x:y] первое число – это то место, где начинается срез (включительно), а второе – это место, где заканчивается срез (невключительно).
word =

Слайд 10

Срезы

Если опустить второй параметр в срезе word[x:] (но поставить двоеточие), то срез

Срезы Если опустить второй параметр в срезе word[x:] (но поставить двоеточие), то
берется до конца строки. Аналогично если опустить первый параметр word[:y], то можно взять срез от начала строки. Срез word[:] совпадает с самой строкой word.
word =

Слайд 11

Срезы

Мы также можем использовать отрицательные индексы для создания срезов. Как уже говорилось

Срезы Мы также можем использовать отрицательные индексы для создания срезов. Как уже
ранее, отрицательные индексы строки начинаются с -1 и отсчитываются до достижения начала строки. При использовании отрицательных индексов первый параметр среза должен быть меньше второго, либо должен быть пропущен.
word =

Слайд 12

Срезы

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

Срезы Мы можем передать в срез третий необязательный параметр, который отвечает за
среза. К примеру, срез word[1:7:2] создаст строку bdf состоящую из каждого второго символа (индексы 1, 3, 5, правая граница не включена в срез).
word =

Слайд 13

Срезы

Предположим, у нас есть строка word = 'abcdefghij' и мы хотим заменить

Срезы Предположим, у нас есть строка word = 'abcdefghij' и мы хотим
символ с индексом 3 на 'X’.
word =
Можно попытаться написать код:
Однако такой код не работает. В Python строки являются неизменяемыми, то есть мы не можем менять их содержимое с помощью индексатора. Если мы хотим поменять какой-либо символ строки word, мы должны создать новую строку. Следующий код использует срезы и решает поставленную задачу:

Слайд 14

Практика

1 Используя срезы, обработайте строку
следующим образом:
a) выведите первые 13 символов

Практика 1 Используя срезы, обработайте строку следующим образом: a) выведите первые 13

б) выведите последние 9 символов строки
в) выведите каждый 7 символ строки s начиная от начала строки
г) выведите строку в обратном порядке
д) строку с удаленным первым и последним символом
2 На вход программе подается одно слово, записанное в нижнем регистре. Напишите программу, которая определяет является ли оно палиндромом. Программа должна вывести «YES», если слово является палиндромом и «NO» в противном случае.
3 На вход программе подается строка текста. Напишите программу, которая разрежет ее на две равные части, переставит их местами и выведет на экран.

Слайд 15

Практика

ДЗ На вход программе подается одна строка, длина которой больше 5 символов. Напишите

Практика ДЗ На вход программе подается одна строка, длина которой больше 5
программу, которая выводит :
второй символ этой строки;
предпоследний символ этой строки;
первые 4 символа этой строки;
всю строку, кроме последних трех символов;
все символы с четными индексами;
все символы с нечетными индексами;
все символы в обратном порядке;
все символы строки через один в обратном порядке, начиная с последнего.

Слайд 16

ООП НА PYTHON

Урок 8. Строки. Методы строк

Руденков Александр Сергеевич

ООП НА PYTHON Урок 8. Строки. Методы строк Руденков Александр Сергеевич

Слайд 17

План занятия

Индексация строк

Срезы

План занятия Индексация строк Срезы

Слайд 18

Основные методы строк

Метод s.title() возвращает строку, первый символ которой в верхнем регистре
Метод

Основные методы строк Метод s.title() возвращает строку, первый символ которой в верхнем
capitalize() возвращает копию строки s, в которой первый символ имеет верхний регистр, а все остальные символы имеют нижний регистр.
Метод s.upper() возвращает строку в верхнем регистре
Метод s.lower() возвращает строку в нижнем регистре
Метод s.swapcase() возвращает строку с противоположными регистрами символов

Слайд 19

Основные методы строк

Метод s.count() возвращает количество подстрок в интервале либо -1
Метод s.startswith()

Основные методы строк Метод s.count() возвращает количество подстрок в интервале либо -1
проверяет, начинается ли строка с символа, переданного в качестве аргумента методу
Метод s.endswith() возвращает строку в верхнем регистре
Метод s.find() находит индекс первого вхождения подстроки в исходной строке s. Если строка s не содержит подстроки, то метод возвращает значение -1.
Метод rfind() идентичен методу find(), за тем исключением, что он ищет первое вхождение подстроки начиная с конца строки s.
Метод index() идентичен методу find(), за тем исключением, что он вызывает ошибку ValueError: substring not found во время выполнения программы, если подстрока не найдена.
Метод rindex() идентичен методу index(), за тем исключением, что он ищет первое вхождение подстроки начиная с конца строки s.

Слайд 20

Основные методы строк

Метод s.strip() очищает от символа переноса строки (\n) и пробелов.
Метод

Основные методы строк Метод s.strip() очищает от символа переноса строки (\n) и
lstrip() возвращает копию строки s у которой удалены все пробелы стоящие в начале строки.
Метод rstrip() возвращает копию строки s у которой удалены все пробелы стоящие в конце строки.
Метод replace() возвращает копию s со всеми вхождениями подстроки, замененными на новую подстроку.
Метод replace() может принимать опциональный третий аргумент, который определяет количество замен.

Слайд 21

Основные методы строк

Метод isalnum() определяет, состоит ли исходная строка из буквенно-цифровых символов.

Основные методы строк Метод isalnum() определяет, состоит ли исходная строка из буквенно-цифровых
Метод возвращает значение True если исходная строка является непустой и состоит только из буквенно-цифровых символов и False в противном случае.
Метод isalpha() определяет, состоит ли исходная строка из буквенных символов. Метод возвращает значение True если исходная строка является непустой и состоит только из буквенных символов и False в противном случае.
Метод isdigit() определяет, состоит ли исходная строка только из цифровых символов. Метод возвращает значение True если исходная строка является непустой и состоит только из цифровых символов и False в противном случае.
Метод s.isupper() проверяет, написаны ли все символы в верхнем регистре.
Метод s.islower() проверяет, написаны ли все символы в нижнем регистре
Метод s.istitle() проверяет, начинается ли строка с большой буквы

Слайд 22

Практика

1 На вход программе подается строка текста. Напишите программу, которая определяет является

Практика 1 На вход программе подается строка текста. Напишите программу, которая определяет
ли оттенок текста хорошим или нет. Текст имеет хороший оттенок, если содержит подстроку «хорош» во всевозможных регистрах.
2 На вход программе подается строка. Напишите программу, которая подсчитывает количество буквенных символов в нижнем регистре.
3 На вход программе подается строка текста, состоящая из слов, разделенных ровно одним пробелом. Напишите программу, которая подсчитывает количество слов в ней.
4 На вход программе подается строка текста. Напишите программу, которая выводит на экран символ, который появляется наиболее часто.
5 На вход программе подается строка текста, в которой буква «z» встречается минимум два раза. Напишите программу, которая удаляет из этой строки первое и последнее вхождение буквы «z», а также все символы, находящиеся между ними.

Слайд 23

Практика

6 На вход программе подается строка текста в которой буква «z» встречается

Практика 6 На вход программе подается строка текста в которой буква «z»
как минимум два раза. Напишите программу, которая возвращает исходную строку и переворачивает последовательность символов, заключенную между первым и последним вхождением буквы «z».
7 На вход программе подается строка текста. Напишите программу, которая проверяет, что строка заканчивается подстрокой .com или .ru. Программа должна вывести «YES» если введенная строка заканчивается подстрокой .com или .ru и «NO» в противном случае.
8 На вход программе подается строка текста. Напишите программу, которая выводит на экран символ, который появляется наиболее часто. На вход программе подается строка текста. Текст может содержать строчные и заглавные буквы английского и русского алфавита, а также цифры.
ДЗ На вход программе подается строка текста. Напишите программу, которая подсчитывает количество цифр в данной строке.

Слайд 24

ASCII

Каждая буква, число и символ при сохранении в памяти компьютера преобразуется в

ASCII Каждая буква, число и символ при сохранении в памяти компьютера преобразуется
числовое значение. ASCII (American Standard Code for Information Interchange - Американский стандартный код для обмена информацией) - одна из наиболее популярных систем нумерации.

Слайд 25

ASCII

Функция ord позволяет определить код некоторого символа в таблице символов Unicode. Аргументом

ASCII Функция ord позволяет определить код некоторого символа в таблице символов Unicode.
данной функции является одиночный символ.
Функция chr позволяет определить по коду символа сам символ. Аргументом данной функции является численный код.

Слайд 26

Кодирование/декодирование

Шифр Цезаря (шифр сдвига) - один из самых простых и наиболее широко

Кодирование/декодирование Шифр Цезаря (шифр сдвига) - один из самых простых и наиболее
известных методов шифрования. Шифр Цезаря - это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите.
Если сопоставить каждый символ алфавита с его порядковым номером (нумеруя с 0), то шифрование и дешифрование можно выразить формулами модульной арифметики:
y=(x+k) % n,
x=(y−k) % n,
где x - символ открытого текста, y символ шифрованного текста, n - мощность алфавита (количество символов), а k - ключ.

Слайд 27

Кодирование/декодирование

Используемое преобразование в шифре Цезаря обычно обозначают как ROT N, где N

Кодирование/декодирование Используемое преобразование в шифре Цезаря обычно обозначают как ROT N, где
- сдвиг, ROT - сокращение от слова ROTATE, в данном случае «циклический сдвиг». Например, обозначение ROT 2 обозначает сдвиг на 2 позиции, то есть, «а» превращается в «в», «б» в «г», и так далее, и в конце «ю» превращается в «а», а «я» - в «б».
Число разных преобразований зависит от длины алфавита:
для русского языка возможно 32 разных преобразования (преобразования ROT 0 и ROT 33 сохраняют исходный текст, а дальше начинаются уже повторения);
для английского языка возможны 25 разных преобразований (преобразования ROT 0 и ROT 26 сохраняют исходный текст, а дальше начинаются уже повторения).
Неалфавитные символы - знаки препинания, пробелы, цифры - не меняются.
Имя файла: Строки,-индексы-и-срезы.pptx
Количество просмотров: 74
Количество скачиваний: 2