Основы работы со строками¶
- Строка
Неизменяемая последовательность символов.
Строковые литералы¶
Строковый литерал может быть записан в одинарных или двойных кавычнах:
>>> "Hello"
'Hello'
>>> 'World'
'World'
Разницы между этими двумя формами записи нет. Записывать строки в двойных кавычках удобно в случаях, когда в тексте содержится апостроф:
>>> "What's your name?"
"What's your name?"
Запись в апострофах удобна, если в тексте есть кавычки:
>>> 'He said: "Bond, James Bond."'
'He said: "Bond, James Bond."'
Иначе интерпретатор будет считать ближайшие кавычку или апостроф закрывающими, и их нужно экранировать:
>>> 'What\'s your name?'
"What's your name?"
>>> "He said: \"Bond, James Bond.\""
'He said: "Bond, James Bond."'
Внутри строки могут быть управляющие последовательности. Некоторые из них:
Последовательность |
Описание |
|---|---|
|
Обратный слеш ( |
|
Апостроф |
|
Кавычка |
|
Символ табуляции |
|
Перевод строки |
Примеры:
>>> print("Hello\nWorld")
Hello
World
>>> print("1\t2\n30\t4")
1 2
30 4
В некоторых случаях экранирование обратного слеша может быть неудобно. Можно воспользоваться литералом сырых строк:
>>> print(r"Hello\nWorld")
Hello\nWorld
Операции со строками¶
-
len(s)¶ Получение длины строки:
>>> len("Hello") 5
-
s1 + s2 Конкатенация строк:
>>> "Hello " + "World" 'Hello World'
-
s * n Повторение строки
nраз:>>> "python " * 3 'python python python '
-
s[i] Обращение к символу
iстрокиs. Индексация начинается с нуля. Индексы могут быть отрицательными, тогда отсчет ведется с конца строки:>>> s = 'abcdef' >>> s[0] 'a' >>> s[5] 'f' >>> s[-1] 'f' >>> s[-2] 'e'
-
s[begin:end:step] Получение среза строки от позиции
beginдо позицииendс шагомstep. Любой параметр может быть пропущен:>>> s = "abcdef" >>> s[1:] 'bcdef' >>> s[:-1] 'abcde' >>> s[1:-1] 'bcde' >>> s[1::2] 'bdf' >>> s[::2] 'ace' >>> s[::-2] 'fdb'
Задачи¶
Пользователь вводит слово. Подсчитать количество символов в нем.
Пользователь вводит слово. Вывести его первую и последнюю буквы.
Пользователь вводит число. Вывести соответствующее количество кроликов. Пример:
Rabbits: 1 (\_/) =(^.^)= (“)_(“) Rabbits: 3 (\_/) (\_/) (\_/) =(^.^)= =(^.^)= =(^.^)= (“)_(“) (“)_(“) (“)_(“)
Дана строка, содержащая путь к файлу:
C:\Python3\python.exe
С помощью срезов вывести отдельно имя файла, его расширение, имя каталога и полный путь к каталогу. Пример вывода:
Имя файла: python.exe Расширение: exe Имя каталога: Python3 Полный путь к каталогу: C:\Python3\
Дана строка
12'345'678. Используя срезы и преобразование типов получить из нее число.Пользователь вводит названия трех глав книги и номера их страниц. Вывести получившиееся содержание так, чтобы названия глав были выровнены по левому краю, а номера страниц — по правому. Ширину страницы принять за 50 символов.
Входные данные:
Chapter 1: Мальчик, который выжил Page: 5 Chapter 2: Косой переулок Page: 40 Chapter 3: Человек с двумя лицами Page: 500
Вывод:
Содержание Мальчик, который выжил 5 Косой переулок 40 Человек с двумя лицами 500
Дополнительные задачи¶
Разработать приложение, которое запрашивает у пользователя стоимость заказа из трех пунктов и выводит чек таким образом, что все стоимости выводятся в крайнем правом столбце. Ширину чека принять за 30 символов. Пример:
Салат: 60
Первое: 45
Второе: 120
Ваш счет
Салат: 60.0
Первое: 45.0
Второе: 120.0
------------------------------
Итого: 225.0
Домашнее задание¶
На вход программе подается строка. Необходимо вывести:
Сначала выведите третий символ этой строки.
Во второй строке выведите предпоследний символ этой строки.
третьей строке выведите первые пять символов этой строки.
В четвертой строке выведите всю строку, кроме последних двух символов.
В пятой строке выведите все символы с четными индексами (считая, что индексация начинается с 0, поэтому символы выводятся начиная с первого).
В шестой строке выведите все символы с нечетными индексами, то есть начиная со второго символа строки.
В седьмой строке выведите все символы в обратном порядке.
В восьмой строке выведите все символы строки через один в обратном порядке, начиная с последнего.
В девятой строке выведите длину данной строки.
Пример:
Input: Abrakadabra
Output:
r
r
Abrak
Abrakadab
Arkdba
baaar
arbadakarbA
abdkrA
11