Python. Извлечение части символов из строки

Дана строка

s1 = ‘Пример текста’

Строка в Python неизменяемый объект, можно извлечь из нее данные, но нельзя изменить. Хотя можно создать новую строку и поместить в нее уже измененную строку.

 

Распечатает строку s1

print(s1)

 

Пример текста

Узнаем длинну текста через len

sz = len(s1)

print(sz)

13

Буквы нумеруются с нуля 0. Попробуем вывести букву “и” из “Пример текста” – это 3 буква в человеческом понимании, но в Python у строк нумерация-индексация начинается с нуля,

П – 0

 р – 1

и – 2

Буква “и” то есть имеет индекс 2 , если считать с нуля. Попробуем вывести букву “и” на экран.

print(s1[2])

и

Да, все работает.

Выведем еще три буквы “мер” идущие далее, чтобы получилось “имер”, итого 4 буквы. И! еще добавим 1 букву, потому что последний индекс диапазона при указании не используется. 

Итого

индекс 2 у буквы “и”, + еще 3 буквы + 1 чтобы захватить конец диапазона = 2+3+1 = 6.

Диапазон указывается через :

print([2:6])

имер

Как вывести слово от начала строки и до индекса 5 – т.е. первое слово из 6 букв (0-5)?

Начало диапазона не указываем, только конец

s1[:6]

print (s1[:6])

Пример

Напомню у нас фраза в s1 – “Пример текста”

Как вывести последнее слово. Всего у нас 13 букв, последняя буква имеет индекс, если указывать с конца -1, предпоследняя -2 и тд.

В слове “текста” 6 букв, соответственно нужен диапазон от -1 до -6.

Но вывод диапазона  происходит только слева направо поэтому укажем диапазон так

s1[-6:-1]

Но это неправильно, мы не захватили последнюю букву, потому что, напомню, нужно край диапазона указать на 1 больше, а больше чем -1 это 0.

НО!

Ноль не указывается в диапазоне, вместо него оставляется пустое место, или вообще ничего, вот так:

s1[-6:]

Для вывода на экран:

print (s1[-6:])

текста

Если захотите вывести только “тек”, тогда:

первая буква слова – это индекс с конца -6.

Нужно еще +2 буквы:

-6+2=-4

Но конец диапазона не захватывается, поэтому прибавляет еще +1

Итого

-6  +2 +1 = -3

print(s1[-6:-3])

тек

Ну и скомбинируем текст

Пример текста

0123456789 10,11,12

Выведем слово “перст” взяв первую (точнее нулевую по индексу) П, затем 8 по индексу “е” и тд. Не забываем добавлять +1 к концу диапазона.

Можем указывать как сначала строки индексы, так и с конца, но или так или иначе, не вместе.

print(s1[:1]+ s1[8:9]+ s1[5:6] + s1[-3:-1])

Перст

 

 

Оставьте первый комментарий

Отправить ответ