Обработка символьных данных
учитель информатики
МБОУ СОШ с.Тербуны
Тербунского муниципального района Липецкой области
Болгова Н.А.
Строки
- Последовательность символов
- Тип данных - str
- Значение строки записываются в кавычках:
s = ‘12345‘
s = “Последовательность символов”
S = input()
S = input().split(“,”) # разделение строки по «,»
Основные операции:
- Конкатенация, склеивание ( + ):
s1 = “ 12”
s2 = “ 34”
print(s1 + s2) # вывод – 1234
2. Умножение строки на число ( * ):
s = “ 12”
print(s * 3) # вывод – 121212
Основные операции:
3 . Длина строки len (a) :
s = “ 1234”
print(len(s)) # вывод – 4
4. Получение элемента по индексу :
Строки индексируются с нуля, первый символ s[0], последний s[len(s) - 1 ].
Индексация с конца строки :
первый символ s [-len(s)] ,
последний s[ -1].
Основные операции:
5. Срезы : s [а: b: c]
a - начало среза,
b - конец среза (в – 1 позиция)
c - шаг среза
s = “ 123456”
s = s[1: 5] # вывод 2345 , пятый символ не входит
s = “информатика”
s = s[2: 7 ] # вывод форма , 7-й символ не входит
Основные операции:
s = “информатика”
Примеры:
1. s[ : ] # вывод - вся строка
2. s[ 1: ] # вывод нформатика
3 . s[ : 4 ] # вывод инфо
4. s[ : -1 ] # вывод все символы кроме последнего информатик
5. s[ : : -1 ] # вывод наоборот акитамрофни
Основные операции:
6. Проверка вхождения подстроки в строку: in (противоположная операция not in )
S = input()
1. if ‘3’ in S: # входит ли «3» в строку S
…… ..(составное условие)
2. if ‘3’ in S and ‘a’ in S: # входит «3» и «а» в S
Методы строк
- Не изменяют строку, а возвращают измененную строку (выводят)
Строковые методы:
- Разбиение строки по разделителю .split( ) :
S = ‘ 1*2*3*4*5’
S = S. split (‘ * ’)
print(S) # вывод [‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
2. Cборка строки из итерируемого (перечисляемого) объекта .join() :
S = ‘ 12345’
print (‘*'.join( S)) # вывод 1*2*3*4*5
Строковые методы:
3. Поиск подстроки в строке :
s .find ( подстрока, [начало], [конец])
Возвращает индекс первого вхождения или -1 .
s. rfind (подстрока, [начало], [конец])
возвращает индекс последнего вхождения или -1.
S = ‘ 1234512’
s.find(‘2‘, s) # вывод 1
s.rfind(‘2‘, s) # вывод 6
а = “информатика”
а.find(“и”, a) # вывод 0
а.rfind(“и”, a) # вывод 8
Строковые методы:
3. Поиск подстроки в строке :
s .index ( подстрока )
Возвращает индекс первого вхождения или -1 .
S = ‘ 1234512’
print(S .index (’23‘) # вывод 1
Строковые методы:
4. Кол-во вхождений подстроки в строке :
s .count ( подстрока )
S = ‘ 1234512’
Print(S .count (’2‘) # вывод 2
5. Замена подстроки:
s .replace ( строка, замена )
S = ‘ 1234512’
Print(S .replace (’2‘, ‘**’) # вывод 1**3451**
s .replace ( строка, замена, 1 ) # только 1 раз
Строковые методы:
5. Проверка, что в строке :
s .islower ( ) # нет больших букв
s .isupper ( ) # нет маленьких букв
Возвращает True / False
Знаки препинания и цифры возвращаются как True
6. Перевод строки:
s .lower ( ) # все буквы строчные (маленькие)
s .upper ( ) # все буквы заглавные
7. Первый символ заглавный:
s .capitalize ( )
Строковые методы:
8. Проверка, что в строке :
s .isdigit ( ) # все символы - цифры
s .isalpha ( ) # все символы – буквы
s .isalnum ( ) # цифры или буквы
9. Удаление символов ( пробелов, пустого простанства, табуляции, переноса строки ):
s .lstrip ( ) # в начале(слева) строки
s .rstrip ( ) # в конце(справа) строки
s .strip ( ) # с обеих сторон строки
Функции строк:
1. Преобразование строки в список символов :
list (c трока )
S = ‘12345’
print( list(S) ) # вывод [‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
2. Преобразование строки S в число:
int(S) # целое
float(S) # вещественное
3. Преобразование числа x в строку:
str(x)
Задача 1
Вводится произвольная строка. Вывести 3, последний, все нечетные символы,
строку в обратной последовательности .
s = input()
print( s[2] )
print( s[-1] )
print( s[0: :2] )
print( s[ : :-1] )
Задача (Яндекс лицей ) «Найди кота»
Напиши программу, которая находит кота. Вначале вводится количество строк, затем сами строки. Если хотя бы в одной введенной строке нашлось словосочетание «Кот» или «кот», то программа выводит «МЯУ», иначе выводит «НЕТ».
n = int(input())
k = 0
for i in range(n):
s = input()
if “Кот“ in s or “кот” in s:
k += 1 print(i)
if k != 0:
print(“МЯУ”)
else:
print(“НЕТ”)
= 1 : print(s) s = s[ 1 : -1 ] " width="640"
Задача ( Яндекс лицей ) «Буквоедство»
Ввод: одна строка.
Вывод: вывод исходной строки
Затем еще раз строка, но без первого и последнего символа.
И т.д., пока не останется один или два символа
s = input()
while len(s) = 1 :
print(s)
s = s[ 1 : -1 ]
Домашнее задание
- Выучить операции и методы строк
Литература:
- Поляков К.Ю., Еремин Е.А. «Информатика 10 класс (базовый и углубленный уровни)»- Москва, Бином, 2018)
- informatics.mccme.ru
- Питон тьютор
- Python 3.6