Строковый тип данных: индексация и срезы
Строковый тип данных
Строковый тип данных
Строковый тип данных
Строковый тип данных
Индексация
Индексация
Индексация
Индексация
Индексация
Задача
Задача
Задача
Задача
Итерирование строк
Итерирование строк
Итерирование строк
Итерирование строк
Задача
Задача
Срезы
Срезы
Срезы
Срезы до конца, от начала
Отрицательные индексы в срезе
Шаг среза
Отрицательный шаг среза
Подводя итог
Задача
Задача
Задача
Задача
Задача
Задача
Задача
Задача
Задача
Задача
9.68M
Категория: ПрограммированиеПрограммирование

Строковый тип данных

1. Строковый тип данных: индексация и срезы

2. Строковый тип данных

3. Строковый тип данных

Создание строки: для создания строк, мы используем парные
кавычки '' или "":
s1 = 'Python'
s2 = "Pascal"
Считывание строки: для считывания текстовых данных в
строковую переменную, мы используем функцию input():
s = input()
num = int(input())
Пустая строка: для создания пустой строки, мы пишем
s = '' или s = "". Пустая строка – это аналог числа 0.

4. Строковый тип данных

Длина строки: для определения длины строки (количество
символов), мы используем встроенную функцию len():
s = 'Hello'
n = len(s)
print(n)
# длина равна 5
Конкатенация и умножение на число: операторы + и * можно
использовать для строк:
print('AB' + 'cd')
print('A' + '7' + 'B')
print('Hi' * 4)
'ABcd'
'A7B'
'HiHiHiHi'

5. Строковый тип данных

Оператор принадлежности in: с помощью оператора in, мы можем
проверить, находится ли одна строка в составе другой или нет:
s = 'All you need is love'
if 'love' in s:
print(' ')
else:
print(' ')
Строка s содержит подстроку 'love', поэтому будет выведен символ
В Python можно использовать emoji

6. Индексация

7. Индексация

Очень часто нам надо обратиться к конкретному символу в
строке.
Для этого в Python используются квадратные скобки [], в
которых указывается индекс (номер) нужного символа в строке.
Операция обращения по индексу
называется индексацией строки

8. Индексация

s = 'Python'
Выражение
Результат
Пояснение
s[0]
P
первый символ строки
s[1]
y
второй символ строки
s[2]
t
третий символ строки
s[3]
h
четвертый символ строки
s[4]
o
пятый символ строки
s[5]
n
шестой символ строки
Обратите внимание первый символ строки равен
s[0], а не s[1]. В Python индексация начинается с 0.

9. Индексация

s = 'Python'
Выражение
Результат
Пояснение
s[-6]
P
первый символ строки
s[-5]
y
второй символ строки
s[-4]
t
третий символ строки
s[-3]
h
четвертый символ строки
s[-2]
o
пятый символ строки
s[-1]
n
шестой символ строки
Если первый символ строки имеет индекс 0, то
последнему символу присваивается индекс -1.

10. Индексация

Положительные индексы
0
1
2
3
4
5
Строка
P
y
t
h
o
n
Отрицательные индексы
-6
-5
-4
-3
-2
-1
При обращение по несуществующему индексу в строке
возникает ошибка:
IndexError: string index out of range

11. Задача

Что покажет приведенный ниже фрагмент кода?
s = 'abcdefg'
print(s[0] + s[2] + s[4] + s[6])

12. Задача

Что покажет приведенный ниже фрагмент кода?
s = 'abcdefg'
print(s[0] + s[2] + s[4] + s[6])
Ответ:
aceg

13. Задача

Что покажет приведенный ниже фрагмент кода?
s = 'abcdefg'
print(s[0]*3 + s[-1]*3 + s[3]*2 + s[3]*2)

14. Задача

Что покажет приведенный ниже фрагмент кода?
s = 'abcdefg'
print(s[0]*3 + s[-1]*3 + s[3]*2 + s[3]*2)
Ответ:
aaagggdddd

15. Итерирование строк

16. Итерирование строк

Очень часто нам необходимо просканировать всю строку целиком,
обрабатывая каждый ее символ.
Для этого удобно использовать цикл for:
s = 'abcdef'
for i in range(len(s)):
print(s[i])
a
b
c
d
e
f
Такой способ итерации строки удобен, когда нам нужен не только
сам элемент s[i], но и его индекс i

17. Итерирование строк

Если нам не нужен индекс самого символа, то мы можем использовать
более короткий способ итерации:
s = 'abcdef'
for c in s:
print(c)
a
b
c
d
e
f
Этот цикл пройдет по строке s, придавая переменной цикла c значение
каждого символа (!) в отличии от предыдущего цикла, в котором
переменная цикла «бегала» по индексам строки.

18. Итерирование строк

Итерирование по
индексам:
Итерирование по
символам:
s = 'abcdef'
for i in range(len(s)):
print(s[i])
s = 'abcdef'
for c in s:
print(c)
Обратите внимание на название переменных цикла:
в первом цикле мы используем имя i, что соответствует
стандартной идеологии наименования переменных цикла;
во втором цикле, мы назвали переменную буквой c –
первая буква слова char (символ).

19. Задача

Что покажет приведенный ниже фрагмент кода?
s = '01234567891011121314151617'
for i in range(0, len(s), 5):
print(s[i], end='')

20. Задача

Что покажет приведенный ниже фрагмент кода?
s = '01234567891011121314151617'
for i in range(0, len(s), 5):
print(s[i], end='')
Ответ:
051217

21. Срезы

22. Срезы

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

23. Срезы

Индексы
0
1
2
3
4
5
6
7
8
9
Строка
a
b
c
d
e
f
g
h
i
j
Индексы
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
s = 'abcdefghij'
print(s[2:5])
print(s[0:6])
print(s[2:7])
cde
abcdef
cdefg
В срезе s[x:y] первое число – это то место, где начинается срез
(включительно), а второе – это место, где заканчивается срез
(невключительно).

24. Срезы до конца, от начала

Если опустить второй параметр в срезе s[x:], то срез берется до
конца строки.
Если опустить первый параметр s[:y], то можно взять срез от начала
строки.
s = 'abcdefghij'
print(s[2:])
print(s[:7])
cdefghij
abcdefg
Срез s[:]совпадает с самой строкой s

25. Отрицательные индексы в срезе

Мы можем использовать отрицательные индексы для создания срезов.
При использовании отрицательных индексов первый параметр среза
должен быть меньше второго, либо должен быть пропущен.
s = 'abcdefghij'
print(s[-9:-4])
print(s[-3:])
print(s[:-3])
bcdef
hij
abcdefg
Отрицательные индексы строки начинаются с -1 и
отсчитываются до достижения начала строки

26. Шаг среза

Мы можем передать в срез третий необязательный параметр,
который отвечает за шаг среза.
s = 'abcdefghij'
print(s[1:7:2])
bdf
Индексы
0
1
2
3
4
5
6
7
8
9
Строка
a
b
c
d
e
f
g
h
i
j
Индексы
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1

27. Отрицательный шаг среза

Если в качестве шага среза указать отрицательное число, то
символы будут идти в обратном порядке.
s = 'abcdefghij'
print(s[::-1])
print(s[::-2])
jihgfedcba
jhfdb
Индексы
0
1
2
3
4
5
6
7
8
9
Строка
a
b
c
d
e
f
g
h
i
j
Индексы
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1

28. Подводя итог

s = 'abcdefghij'
Код
Результат
Пояснение
s[2:5]
cde
s[:5]
abcde
первые пять символов строки
s[5:]
fghij
строка состоящая из символов с индексами от 5 до конца
s[-2:]
ij
s[:]
abcdefghij
s[1:7:2]
bdf
s[::-1]
jihgfedcba
строка состоящая из символов с индексами 2, 3, 4
последние два символа строки
вся строка целиком
строка состоящая из каждого второго символа с индексами от
1 до 6
строка в обратном порядке, так как шаг отрицательный

29. Задача

Что покажет приведенный ниже фрагмент кода?
s = 'abcdefg'
print(s[2:5])

30. Задача

Что покажет приведенный ниже фрагмент кода?
s = 'abcdefg'
print(s[2:5])
Ответ:
cde

31. Задача

Что покажет приведенный ниже фрагмент кода?
s = 'abcdefg'
print(s[3:])

32. Задача

Что покажет приведенный ниже фрагмент кода?
s = 'abcdefg'
print(s[3:])
Ответ:
defg

33. Задача

Что покажет приведенный ниже фрагмент кода?
s = 'abcdefg'
print(s[:3])

34. Задача

Что покажет приведенный ниже фрагмент кода?
s = 'abcdefg'
print(s[:3])
Ответ:
abc

35. Задача

Что покажет приведенный ниже фрагмент кода?
s = 'abcdefg'
print(s[:])

36. Задача

Что покажет приведенный ниже фрагмент кода?
s = 'abcdefg'
print(s[:])
Ответ:
abcdefg

37. Задача

Что покажет приведенный ниже фрагмент кода?
s = 'abcdefg'
print(s[::-3])

38. Задача

Что покажет приведенный ниже фрагмент кода?
s = 'abcdefg'
print(s[::-3])
Ответ:
gda
English     Русский Правила