Close

Урок 7. Форматирование строк

Приведение типов

Ранее, мы увидели что строки — это объекты, способные хранить символы, не только буквы но и числа. Но сложение (конкатенация) строк не имеет ничего общего с арифметическим сложением. Чтобы в этом убедится, попробуем запустить следующий пример:

Если вам требуется преобразовать строковую переменную в число, для этого существуют две функции: int() и float().
int() — это сокращение от integer, что переводится как целое. Функция конвертирует строку в целое число. float() — «floating-point», означает, число с плавающей точкой, то есть десятичную дробь. Попробуем применить их на практике:

В дробном числе, после преобразования была добавлена точка, отделяющая целую часть.

Преобразовать строку в число возможно не всегда. Строка не должна содержать лишних символов. Даже такой символ, как точка в строке при преобразовании в целое вызовет ошибку. Поэтому, используя эти функции, нужно быть особенно внимательным.

Для обратного преобразования, используется функция str(). Она не является настолько требовательной как две предыдущие и обрабатывает любое числовое значение.

Часто возникает необходимость объединения строки и числа для вывода на экран. Простая попытка выдаст такую ошибку:

Python не знает как применить операцию сложения к объектам различных типов, ему требуется уточнить то, что мы имели в виду. От того, хотим ли мы соединить две строки или суммировать два числа, сильно зависит результат:

7_1

 

 Форматирование

Допустим, у нас есть три объекта, которые нужно вывести на экран. Это объекты: name = “Michael”, apple = 4 и pear = 2. Вывести их нужно следующим образом: «Michael has 4 apples and 2 pears».

Мы уже можем сделать это двумя способами. Первый — через запятую перечислить объекты:

Другой способ — это конкатенация строк:

Оба способа являются рабочими, но у них есть недостатки. Из за множества кавычек и преобразований типов строки являются абсолютно не читабельными. Существует другой способ, упрощающий подобные операции. Это строковый метод — format().

Простейший способ его применения выглядит так:

Пара пустых фигурных скобок (между ними нет даже пробела) представляют собой места, в которые будут вставленные переменные. Переменные занимают места в порядке, в котором они переданы в функцию format(). Теперь мы не нуждаемся в преобразование типа каждой переменной, format() делает все это автоматически.

При необходимости, мы можем менять порядок следования переменных:

Индексы в скобках указывают на порядок аргументов функции format().

Иногда требуется повторение одного элемента в строке многократно. Для этого достаточно продублировать его индекс:

Наконец, мы можем помечать места для вставки именами:

 

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

Еще одним из часто используемых методов строк является find(). Он позволяет искать вхождение одной строки в другую. Этот метод принадлежит к классу строки и вызывается через точку, так же как и format().

Напечатанное число (16), показывает первое вхождение искомой нами строки. Другими словами, строка fox начинается в строке «The quick brown fox jumps over the lazy dog» с 16 го символа.

В случае если подстрока не будет найдена в строке find() вернет нам -1:

Так же, как и любой метод строки мы можем вызвать его без явного объявления строковой переменной:

Следует не забывать, что строки сравниваются по регистру символов. Если мы будем искать в строке Fox вместо fox, то метод там вернет -1.

Если в строке несколько раз повторяется подстрока, то метод выдаст нам позицию первой подстроки:

 

Замена подстроки в строке

Метод replace() используется, когда нужно заменить часть строки на другую.

Напомним, что сама строка my_story не меняется от этой операции. Если вы хотите изменить ее, то необходимо сделать следующее:

 

Перед вами основные операции, которые python позволяет делать со строками. Со строками на протяжение уроков мы будем встречаться часто и будем пополнять этот список. Впереди нас ждет описание такого важного элемента програмирования, как функции.

Поделиться: