Работа со строками в языке Python
Строка
Создание строк
Умножение и сложение строк
Сравнение строк
Индексация строк
Задача 0
Проверка принадлежности
Срезы
Задача 1
Методы преобразования регистра
Наличие определённых символов в строке
Методы поиска и замены
Методы поиска и замены
Методы поиска и замены
Методы удаления пробелов
Метод replace()
Методы не изменяют исходную строку
Задание 12
Задание 12
Задание 12
Задание 12
Задача 1
66.94K
Категория: ПрограммированиеПрограммирование

Занятие 1.7

1. Работа со строками в языке Python

2. Строка

• — это последовательность символов (букв,
цифр, знаков препинания, пробелов),
заключенная в кавычки.

3. Создание строк

• s1 = ‘first'
• s2 = “second“
• Ввод из консоли:
• s = input()
• Пустая строка
• s = '‘
• s = ""

4. Умножение и сложение строк

• s1 = "some string 1"
• s2 = "some string 2"
• print(s1 + s2) # some string 1some string 2
• s1 = “12”
• print(s1 * 5) # 1212121212

5. Сравнение строк

• print('a' > 'b') # False
• print('a' < 'z') # True
• Чем дальше буква, тем «больше»
• print('d' > 'D') # True
• Маленькая «больше» большой
• Символы сравниваются по очереди, пока
хоть один не будет «больше»
• print(‘asdf' > ‘asdb') # True

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

• s1 = ‘first'
• ы1[0] = ‘f’
• s1[-1] = ‘t’
• Длина строки
• len(s1) # 5
• Строки неизменяемы
s1[0] = 'h’ # Вызовет ошибку
• text = list(s1)
text[0] = 'h'
print(''.join(text))
• new_text = 'h' + s1[1:] # Срезы работают со строками

7. Задача 0

• words = ['Python', 'is', 'great']
• Создайте из списка строку, где эти слова
разделены символом «+» и выведете её в
консоль.

8. Проверка принадлежности

• text = "Hello, World!"
• # Операторы in и not in
• print("Hello" in text) # True
• print("Python" in text) # False
• print("xyz" not in text) # True

9. Срезы

• s1 = ‘first'
• print(s1[3:])
• print(s1[-3:])
• print(s1[::-1])
• st
• rst
• tsrif

10. Задача 1

• Введите строку из консоли, затем замените
в ней 5 символ на «i», и выведете
изменённую строку в консоль.

11. Методы преобразования регистра

• text = "Hello World“
• print(text.upper())
# HELLO WORLD
• print(text.lower())
# hello world
• print(text.capitalize()) # Hello world
• print(text.title())
# Hello World
• print(text.swapcase()) # hELLO wORLD
• print(text.isupper())
# False
• print(text.islower())
# False
• print(text.istitle())
# True

12. Наличие определённых символов в строке

• isalnum() - True, если исходная строка
является непустой и состоит только из
буквенно-цифровых символов, иначе False.
• isalpha() – только буквы
• isdigit() – только цифры
• isspace() - только пробелы

13. Методы поиска и замены

• count(sub, start, end) – возвращает
количество непересекающихся вхождений.
• s1 = “some string”
• s1.count(‘s’) # 2
• s1.count(‘s’, 0, 4) # 1

14. Методы поиска и замены

• startswith(sub, start, end) – начинается ли
строка подстрокой sub
• s1 = “some string”
• s1.startswith("s") # True
s1.startswith("s", 1, 4) # False
• endswith(sub, start, end) – заканчивается ли
строка подстрокой sub

15. Методы поиска и замены

• find(sub, start, end) - возвращает индекс
первого вхождения подстроки sub
• rfind(sub, start, end) – возвращает индекс
первого вхождения подстроки sub, но
начинает с конца строки
• s1 = “some string”
• s1.find("s") # 0
s1.rfind("s") # 5
• index(), rindex() – тоже самое, но вызывают
ошибку, если не найдут

16. Методы удаления пробелов

• text = " Hello World "
• print(text.strip())
# "Hello World"
• print(text.lstrip())
# "Hello World "
• print(text.rstrip())
# " Hello World«
• Можно передать в аргумент другие
символы
• s1 = "some string"
print(s1.strip("s")) - ome string

17. Метод replace()

• s.replace(“old”, “new”) – заменяет все
вхождения подстроки “old” на “new”.
• s1 = "some string dome ome"
print(s1.replace("me", "1"))
• # so1 string do1 o1
• Также третьим аргументом можно передать
количество замен.
• s1 = "some string dome ome"
print(s1.replace("me", "1“, 2))
• # so1 string do1 ome

18. Методы не изменяют исходную строку

• Обратите внимание на то, что строковые
методы не изменяют исходную строку:
вместо этого они возвращают новую строку.
• s1 = "some string dome ome"
s1.replace("me", "1", 2)
print(s1) # some string dome ome
s1 = s1.replace("me", "1", 2)
print(s1) # so1 string do1 ome

19. Задание 12


Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две
команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды
заменить (111, 27) преобразует строку 05111150 в строку 0527150. Если в строке нет вхождений цепочки v, то
выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда
возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя
при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
В конструкции
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 68 идущих
подряд цифр 8? В ответе запишите полученную строку.
НАЧАЛО
ПОКА нашлось (222) ИЛИ нашлось (888)
ЕСЛИ нашлось (222)
ТО заменить (222, 8)
ИНАЧЕ заменить (888, 2)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ

20. Задание 12

• заменить (v, w)
• s.replace(v, w, 1)
• нашлось (v)
• v in s
• 68 идущих подряд цифр 8
• s = 68 * “8”

21. Задание 12

• Какая строка получится в результате применения
приведённой ниже программы к строке, состоящей из
68 идущих подряд цифр 8? В ответе запишите
полученную строку.
• НАЧАЛО
• ПОКА нашлось (222) ИЛИ нашлось (888)
ЕСЛИ нашлось (222)
ТО заменить (222, 8)
ИНАЧЕ заменить (888, 2)
КОНЕЦ ЕСЛИ
• КОНЕЦ ПОКА
• КОНЕЦ

22. Задание 12

• s = 68 * '8'
while "222" in s or "888" in s:
if "222" in s:
s = s.replace("222", "8", 1)
else:
s = s.replace("888", "2", 1)
print(s) # 28

23. Задача 1

English     Русский Правила