Similar presentations:
Занятие 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
Какая строка получится в результате примененияприведённой ниже программы к строке, состоящей из 82
идущих подряд цифр 8? В ответе запишите полученную
строку.
НАЧАЛО
ПОКА нашлось (1111) ИЛИ нашлось (8888)
ЕСЛИ нашлось (1111)
ТО заменить (1111, 8)
ИНАЧЕ заменить (8888, 11)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
24. Сумма цифр в строке
• Если известно какие цифры есть в строке:• print(s.count(«1") + 8*s.count(«8"))
25. Сумма цифр в строке
• n = []• for i in s:
• n.append(int(i))
• print(sum(n))
26. Функция map()
• sum(map(int,s))• map() — встроенная функция, которая
применяет другую функцию к каждому
элементу последовательности.
27. Задача 2
Дана программа для Редактора:НАЧАЛО
ПОКА нашлось (19) ИЛИ нашлось (399) ИЛИ нашлось (999)
ЕСЛИ нашлось (19)
ТО заменить (19, 9)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (399)
ТО заменить (399, 91)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (999)
ТО заменить (999, 3)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
На вход приведённой выше программе поступает строка, начинающаяся с
цифры «1», а затем содержащая n цифр «9» (3 < n < 10 000).Определите
наименьшее значение n, при котором сумма цифр в строке, получившейся
в результате выполнения программы, равна 33.
28. Задача 3
Дана программа для Редактора:НАЧАЛО
ПОКА нашлось (25) ИЛИ нашлось (355) ИЛИ нашлось (555)
ЕСЛИ нашлось (25)
ТО заменить (25, 5)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (355)
ТО заменить (355, 52)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (555)
ТО заменить (555, 3)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
На вход приведённой выше программе поступает строка, начинающаяся с
цифры 2, а затем содержащая n цифр 5 (n > 3).Определите наименьшее
значение n, при котором сумма цифр в строке, получившейся в результате
выполнения программы, равна 17.
29. Задача 4
Дана программа для Редактора:НАЧАЛО
ПОКА нашлось (055) ИЛИ нашлось (65) ИЛИ нашлось (5555)
ЕСЛИ нашлось (055)
ТО заменить (055, 56)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (65)
ТО заменить (65, 5)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (5555)
ТО заменить (5555, 000)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (00000)
ТО заменить (00000, 6)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
На вход приведенной выше программе поступает строка, содержащая n
цифр «5» и заканчивающаяся цифрой «0» (3<n<2500)
Определите наибольшее возможное значение суммы числовых значений
цифр в строке, которая может быть результатом выполнения данной
программы.
30. Задача 5
Какая строка получится в результате примененияприведённой ниже программы к строке, состоящей из
108 идущих подряд цифр 7? В ответе запишите
полученную строку.
НАЧАЛО
ПОКА нашлось (33333) ИЛИ нашлось (777)
ЕСЛИ нашлось (33333)
ТО заменить (33333, 7)
ИНАЧЕ заменить (777, 3)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
31. Задача 6
ПОКА нашлось (52) ИЛИ нашлось (1122) ИЛИ нашлось (2222)ЕСЛИ нашлось (52)
ТО заменить (52, 1)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (2222)
ТО заменить (2222, 5)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (1122)
ТО заменить (1122, 25)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
На вход приведённой выше программе поступает строка, начинающаяся с
цифры 5, а затем содержащая n цифр 2 (3 < n < 10000). Определите
наименьшее значение n, при котором сумма цифр в строке, получившаяся
в результате выполнения программы, равна 88.
32. Ответы
• 1) 118• 2) 46
• 3) 29
• 4) 15
• 5) 3337
• 6) 413
programming