Python для школьников
Занятие 6. «Работа со строками в Python»
Паньгина Н.Н. 2019
Строковые данные в Python
A + B — конкатенация;
A * n — повторение n раз, значение n должно быть целого типа.
Ввод строки
Конкатенация
Умножение строки на число
Вывод строк
Строки в Python
Строка состоит из последовательности символов (список символов).
Узнать количество символов (длину строки) можно при помощи функции len.
Каждый символ кодируется 8 битами согласно таблице ASCII.
Код символа можно узнать с помощью функции ord, а определить символ по его коду – с помощью функции chr.
Срезы в Python
Имеется 3 типа срезов:
Пример 1: S = ‘ИНФОРМАТИКА’
print(S[5]+S[0]+S[9]+S[4]+S[3]+S[1])
Пример 2: print(S[9:11]+S[5]+S[2:5]+S[10])
Срез (slice) — извлечение из данной строки одного символа или некоторого фрагмента подстроки или подпоследовательности.
Пример 3: S = ‘ПУТЕШЕСТВЕННИК’
print(S[0:10:3]+S[10:14])
Срезы в Python
Строка | П | Р | И | В | Е | Т |
Индекс | 0 | 1 | 2 | 3 | 4 | 5 |
Индекс | -6 | -5 | -4 | -3 | -2 | -1 |
Пример 1: S = ‘ИНФОРМАТИКА’
print(S[5]+S[0]+S[9]+S[4]+S[3]+S[1])
print(S[-6]+S[-11]+S[-2]+S[-7]+S[-8]+S[-10])
Пример 2: s = ‘0123456789’
s1 = s[4:8]
s2 = s[-6:-2] # "4567"
len(s)-2
len(s)-6
s = "0123456789"
s1 = s[:8] # "01234567"
от начала строки
s = "0123456789"
s1 = s[3:] # "3456789"
до конца строки
Срез S[1:] опускает первый символ
Срез S[:-1] удаляет последний символ
Срез S[:] совпадает с самой строкой S
Срезы в Python
Пример 1:
s = "0123456789"
s1 = s[-8:-2:2] # "246"
len(s)-2
len(s)-8
Срез S[::] та же строка S
Срез S[::1] та же строка S
Срез S[::-1] переворачивает строку S
Срез S[::-2] переворачивает строку S с шагом -2
Пример 2:
s = "0123456789"
s1 = s[-8:-2:] # "234567"
len(s)-2
len(s)-8
Пример 3:
s = "0123456789"
s1 = s[-8::2] # "2468"
len(s)-2
len(s)-8
Пример 4:
s = "0123456789"
s1 = s[:-2:2] # "0246"
len(s)-2
len(s)-8
Методы для строк в Python
Метод — это функция, применяемая к объекту, в данном случае - к строке. Метод вызывается в виде Имя_объекта.Имя_метода(параметры).
Методы .find и .rfind для поиска подстроки в строке, возвращают номер позиции первого символа подстроки или -1.
s = "Здесь был Вася."
n = s.find ("с") # n = 3
if n >= 0:
print ("Номер символа", n)
else:
print ("Символ не найден")
s = "Здесь был Вася."
n = s.rfind ("с") # n = 12
Ищет от начала строки
Ищет с конца строки
Методы для строк в Python
Для поиска подстроки в строке используются методы .index (ищет первое вхождение) и .rindex (ищет последнее вхождение), возвращают номер позиции первого символа подстроки или генерируют ошибку ValueError.
Методы для строк в Python
Метод .split разбивает строку на части по разделителю.
Например, если S = “192.168.240.60”, то S.split(‘.’) даст в результате четыре подстроки 192 168 240 60
Метод разделитель .join собирает строку из списка с разделителем
Задачи на строки
Входные данные: 10011010
Выходные данные: 01100101
Входные данные: 10011010
Выходные данные: 100110100
Входные данные: Иванов Петр Глебович
Выходные данные: П.Г. Иванов
Входные данные: C:/Фото/2015/Байкал/shaman.jpg
Выходные данные:
C:
Фото
2015
Байкал
shaman.jpg
(для самостоятельного решения)
Методы для строк в Python
Метод .replace заменяет все вхождения одной строки на другую. Формат: S.replace(old, new) — заменить в строке S все вхождения подстроки old на подстроку new.
s = "абракадабра"
s = s.replace ("а", "А")
print (s)
Если в методе .replace задать еще один параметр: �S.replace(old, new, count), то заменены будут не все вхождения, �а только не больше, чем первые count из них.
s = "абракадабра"
s = s.replace ("а", "А", 3)
print (s)
Методы для строк в Python
Метод .upper заменяет все строчные буквы строки на заглавные. Метод .lower заменяет все заглавные буквы строки на строчные.
s = "АБРАКАДАБРА"
s = s.lower ()
print (s) #"абракадабра"
Метод .isdigit проверяет строку на цифры: �если True, то строка состоит из одних цифр, если False, то нет. �Можно проверять на цифры отдельные символы в строке.
s = input()
if s.isdigit():
print('Строка из цифр')
else:
print('Строка не из цифр')
s = "абракадабра"
s = s.upper ()
print (s) #"АБРАКАДАБРА"
Методы для строк в Python
Метод .count подсчитывает количество вхождений одной строки в другую строку.
Простейшая форма вызова S.count(T) возвращает число вхождений строки T внутри строки S.
При этом подсчитываются только непересекающиеся вхождения,
например: >>> 'Abracadabra'.count('a') Ответ: 4
>>> ('a' * 100).count('aa') Ответ: 50
При указании трех параметров S.count(T, a, b), будет выполнен подсчет числа вхождений строки T в срез S[a:b].
n = input()
print(n.count('0',len(n)//2,len(n)))
Другие методы для строк в Python
Функция или метод | Назначение |
S.isalpha() | Состоит ли строка из букв |
S.isalnum() | Состоит ли строка из цифр или букв |
S.islower() | Состоит ли строка из символов в нижнем регистре |
S.isupper() | Состоит ли строка из символов в верхнем регистре |
S.istitle() | Начинаются ли слова в строке с заглавной буквы |
S.capitalize() | Переводит первый символ строки в верхний регистр, а все остальные в нижний |
S.center(width, [fill]) | Возвращает отцентрованную строку, по краям которой стоит символ fill (пробел по умолчанию) |
S.lstrip([chars]) | Удаление пробельных символов в начале строки |
S.rstrip([chars]) | Удаление пробельных символов в конце строки |
S.strip([chars]) | Удаление пробельных символов в начале и в конце строки |
S.swapcase() | Переводит символы нижнего регистра в верхний, а верхнего – в нижний |
S.title() | Первую букву каждого слова переводит в верхний регистр, а все остальные в нижний |
S.zfill(width) | Делает длину строки не меньшей width, по необходимости заполняя первые символы нулями |
S.ljust(width, fillchar=" ") | Делает длину строки не меньшей width, по необходимости заполняя последние символы символом fillchar |
S.rjust(width, fillchar=" ") | Делает длину строки не меньшей width, по необходимости заполняя первые символы символом fillchar |
Задачи на строки
Входные данные: Искать такси
Выходные данные: Да
Входные данные: �Он приедет в вам зимой.
Выходные данные: приедет
Зашифруйте введенную строку при помощи шифра Цезаря.
Входные данные: I LOVE YOU.
Выходные данные: L ORYH BRX.
Входные данные: �Я, ты, он, она - вместе целая страна.
Выходные данные:
вместе
он
она
страна
ты
целая
я
(для самостоятельного решения)
СПАСИБО ЗА ВНИМАНИЕ!