Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab2.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
47 Кб
Скачать
☆

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

Форматирование в питоне – мощный инструмент управления строками. Есть несколько подходов – стандартный и с использованием шаблонов. Для форматирования в питоновских строках используется стандартный оператор – символ %. Слева от процента указываем строку, справа – значение или список значений:

>>> s = 'Hello %s' % 'word'

>>> s

'Hello word'

>>> s = 'one %s %s' % ('two','three')

>>> s

'one two three'

Если нужно преобразование числа в строку, используется числовой спецификатор – %d или %f:

>>> s = 'one %d %f' % (2 , 3.5)

>>> s

'one 2 3.500000'

При форматировании можно указать общую ширину строки и точность для чисел, при этом число будет дополнено незначащими нулями. В следующем примере результирующая строка будет иметь длину 10 символов, на дробную часть будет отведено 5 символов:

>>> x = 4/3

>>> '%10.5f' % x

' 1.00000'

Пробелы слева можно отформатировать нулями:

>>> from math import pi

>>> '%015.10f' % pi

'0003.1415926536'

Для форматирования можно использовать другой подход – шаблоны строк, Template. В следующем примере для форматирования уже можно использовать словарь:

>>> from string import Template

>>> s = Template('1 $two 3 4 $five')

>>> d={}

>>> d['two']=2

>>> d['five']=5

>>> s.substitute(d)

'1 2 3 4 5'

Таблица типов форматирования для строк

Код

Значение

s

Строковый

r

Строковый, но с использованием repr, а не str

c

Посимвольный

d

Десятичный

i

Целый

u

То же, что и d (no longer unsigned)

o

Восьмеричный

x

Шестнадцатеричный

X

Шестнадцатеричный в верхнем регистре

e

Floating-point exponent, нижний регистр

E

То же, что и e, но в верхнем регистре

f

Floating-point decimal

F

Floating-point decimal

g

Floating-point e или f

C

Floating-point E или F

%

Символьный %

6. Методы

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

find – находит подстроку в строке – возвращает позицию вхождения строки, либо -1:

>>> s = 'The find method finds a substring'

>>> s.find('find')

4

>>> s.find('finds')

16

>>> s.find('findsa')

-1

join – объединяет через разделитель набор строк:

>>> seq = ['one','two','three']

>>> sep = ','

>>> sep.join(seq)

'one,two,three'

split – это обратная функция для join, разбивает строку на последовательность:

>>> s = '/usr/local/bin'

>>> s.split('/')

['', 'usr', 'local', 'bin']

replace – заменяет в строке одну подстроку на другую:

>>> s = 'replace method returns a string'

>>> s.replace('returns','return')

'replace method return a string'

strip – удаляет пробелы слева и справа:

>>> ' this is whitespace string '.strip()

'this is whitespace string'

translate – в отличие от replace, может делать множественную замену. В следующем примере каждый символ '1' в исходной строке будет заменен на символ '3', а символ '2' – на символ '4' соответственно:

>>> from string import maketrans

>>> table = maketrans('12', '34')

>>> '1212 5656'.translate(table)

'3434 5656'

Для конверсии различных типов в строковый используются функции str, int, ord, chr:

  • str – конвертирует число в строку;

  • int – конвертирует строку в число;

  • ord – возвращает значение байта;

  • chr – конвертирует число в символ.

Таблица методов, доступных в Python 3.0

S.capitalize() S.ljust(width [, fill])

S.center(width [, fill]) S.lower()

S.count(sub [, start [, end]]) S.lstrip([chars])

S.encode([encoding [,errors]]) S.maketrans(x[, y[, z]])

S.endswith(suffix [, start [, end]]) S.partition(sep)

S.expandtabs([tabsize]) S.replace(old, new [, count])

S.find(sub [, start [, end]]) S.rfind(sub [,start [,end]])

S.format(fmtstr, *args, **kwargs) S.rindex(sub [, start [, end]])

S.index(sub [, start [, end]]) S.rjust(width [, fill])

S.isalnum() S.rpartition(sep)

S.isalpha() S.rsplit([sep[, maxsplit]])

S.isdecimal() S.rstrip([chars])

S.isdigit() S.split([sep [,maxsplit]])

S.isidentifier() S.splitlines([keepends])

S.islower() S.startswith(prefix [, start [, end]])

S.isnumeric() S.strip([chars])

S.isprintable() S.swapcase()

S.isspace() S.title()

S.istitle() S.translate(map)

S.isupper() S.upper()

S.join(iterable) S.zfill(width)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]