Найти тему
Быстрый ветер

Python. Урок 3. Работа со строками, индексы.

Оглавление

Приветствую на моем канале, и сегодня мы узнаем, что можно делать со строками (не путайте строки и строчки!).

Строка - ячейка данных, записанная в формате string.

Как известно, в одном из форматов данных в python - string - записываются любые символы, их может быть любое количество, и вообще его можно считать «самым свободным» форматом, если можно так сказать. С ним не проводятся математические операции, кроме одной, которую мы сейчас разберем.

Функции с форматом string

Умножение int на str

Форматы integer и float хорошо взаимодействуют: данные, записанные в этих форматах, можно умножать и делить друг на друга, вычитать их друг из друга, складывать друг с другом, а с форматом string есть только одна операция: умножение данных формата integer на данные формата string. Попробуем умножить строку 'Привет' на 3. Результатом будет 'ПриветПриветПривет'. Если умножать на 0 или отрицательные целые числа, то результатом будет '', то есть ничего. Внимание, при умножение данных string на данные float получится ошибка!

len() - кол-во символов

Следующая функция, которую мы узнаем - len(). Она возвращает количество символов в строке. Например, len('Город') = 5, а len(' Город') = 6 из-за пробела в начале.

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

Ставьте лайк и подписывайтесь на канал!)
Ставьте лайк и подписывайтесь на канал!)

Помните, что считается все: знаки препинания, буквы, цифры, пробелы и т.д..

Индексы

Каждый символ строки имеет свой индекс. А вот здесь один из сложных этапов обучения для начинающих: индексы начинаются не с единицы, а с нуля. То есть первый символ имеет индекс 0, второй - индекс 1 и т.д.. Python интересен тем, что он также может считать символы с конца. Последний элемент имеет индекс -1, предпоследний -2 и т.д..

Символы строки и их индексы
Символы строки и их индексы

Как известно, мы можем написать, допустим, такой код:

a='Слоник'
print(a)

И нам напечатается только само это слово. Мы же с вами можем попросить вывести только один символ с каким-то определенным индексом, например, индексом 4. Для этого нам надо записать индекс в квадратных скобках после названия переменной.

a='Слоник'
print(a[4])

Напечатается буква 'и'. Разумеется, мым можем и записать этот символ в переменную:

a='Слоник'
g=(a[4])
print(g*4)

Выведется 'ииии'. Замечу, что все это можно записать в одну строку:

print('Слоник'[4]*4)

Срезы

Как правило нужно выводить не какой-то один символ строки, а ее часть. Выводить группу символов вручную сложно, поэтому существует функция срезов.

Срез - извлечение из данной строки одного символа или некоторого ее фрагмента

Начало такое же, как в прошлый раз: пишем квадратные скобки после названия переменной, но в них записываем два двоеточия.

print(a[::])

Теперь у нас есть три данных: индекс символа, с которого начинается срез (слева от первого двоеточия), индекс символа, которым он кончается (между двоеточиями) и шаг (через каждые <шаг> символов брать по одному символу). Например:

a='Достопримечательность'
print(a[3:18:2])

Разберем, что же выведется на экран:
Первый символ имеет индекс 3, значит им будет буква 'т'. Мы имеем шаг 2, значит будем пропускать по одному символу. Следующими будут 'п', 'и', 'е', 'а', 'е', 'ь', 'о', а вот 'т' уже не войдет, т.к. его индекс 19, а в функции print указан 18-ый. Значит, программа ответит 'тпиеаеьо'.

find

В принципе несложная для понимания функция. Она ищет некий символ в строке и возвращает его индекс. Записывается она следующим образом:

a='Медведи'
print(a.find('в'))

Буква 'в' в этой строке имеет индекс 3, значит он и выведется на экран. Если бы мы ввели вместо буквы 'в' букву 'д', то результатом было бы число 2, несмотря на то что в слове две такие буквы. Функция ищет только первую из них.

Функция rfind() отличается только тем, что ищет не с первого символа до последнего, а с последнего до первого. Также надо уточнить, что функция возвращает первый вариант индекса (0 и более, а не отрицательный). Если искомого элемента в строке нет, то результатом является -1.

На этом урок подошел к концу, пишите свои мысли в комментариях, всем пока!