Основы работы со строками

Строка

Неизменяемая последовательность символов.

Строковые литералы

Строковый литерал может быть записан в одинарных или двойных кавычнах:

>>> "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."'

Внутри строки могут быть управляющие последовательности. Некоторые из них:

Последовательность

Описание

\\

Обратный слеш (\)

\'

Апостроф

\"

Кавычка

\t

Символ табуляции

\n

Перевод строки

Примеры:

>>> 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'

Задачи

  1. Пользователь вводит слово. Подсчитать количество символов в нем.

  2. Пользователь вводит слово. Вывести его первую и последнюю буквы.

  3. Пользователь вводит число. Вывести соответствующее количество кроликов. Пример:

    Rabbits: 1
     (\_/)
    =(^.^)=
    (“)_(“)
    
    Rabbits: 3
     (\_/)    (\_/)    (\_/)
    =(^.^)=  =(^.^)=  =(^.^)=
    (“)_(“)  (“)_(“)  (“)_(“)
    
  4. Дана строка, содержащая путь к файлу:

    C:\Python3\python.exe
    

    С помощью срезов вывести отдельно имя файла, его расширение, имя каталога и полный путь к каталогу. Пример вывода:

    Имя файла: python.exe
    Расширение: exe
    Имя каталога: Python3
    Полный путь к каталогу: C:\Python3\
    
  5. Дана строка 12'345'678. Используя срезы и преобразование типов получить из нее число.

  6. Пользователь вводит названия трех глав книги и номера их страниц. Вывести получившиееся содержание так, чтобы названия глав были выровнены по левому краю, а номера страниц — по правому. Ширину страницы принять за 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

Домашнее задание

На вход программе подается строка. Необходимо вывести:

  1. Сначала выведите третий символ этой строки.

  2. Во второй строке выведите предпоследний символ этой строки.

  3. третьей строке выведите первые пять символов этой строки.

  4. В четвертой строке выведите всю строку, кроме последних двух символов.

  5. В пятой строке выведите все символы с четными индексами (считая, что индексация начинается с 0, поэтому символы выводятся начиная с первого).

  6. В шестой строке выведите все символы с нечетными индексами, то есть начиная со второго символа строки.

  7. В седьмой строке выведите все символы в обратном порядке.

  8. В восьмой строке выведите все символы строки через один в обратном порядке, начиная с последнего.

  9. В девятой строке выведите длину данной строки.

Пример:

Input: Abrakadabra
Output:
r
r
Abrak
Abrakadab
Arkdba
baaar
arbadakarbA
abdkrA
11