Похожие презентации:
Строковый тип данных
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
Программирование