How to convert a python string to int

Введение

Строки (strings) в Python представляют собой последовательности из одного или более знаков (букв, цифр, символов). И хотя мы можем использовать эту последовательность в каких-то операциях, сама она является неизменной. То есть строку нельзя изменить, не создав при этом другой объект, занимающий иной адрес в памяти.

Благодаря широкому распространению текста в повседневной жизни, строка является важным типом данных, присутствующим в мире программирования.

В этом руководстве мы рассмотрим, как создавать и выводить на экран строки, как их объединять и повторять, а также, как устанавливать в качестве значения для переменных.

Преобразование строки Python в int

Метод Python позволяет преобразовать любое значение типа String в целочисленное значение.

Синтаксис:

int(string_variable)

Пример:

string_num = '75846'
print("The data type of the input variable is:\n")
print(type(string_num))

result = int(string_num)
print("The data type of the input value after conversion:\n")
print(type(result))
print("The converted variable from string to int:\n")
print(result)

Выход:

The data type of the input variable is:
<class 'str'>
The data type of the input value after conversion:
<class 'int'>
The converted variable from string to int:
75846

Python также предоставляет нам эффективный вариант преобразования чисел и значений типа String в целочисленные значения с определенной базой в соответствии с системой счисления.

Синтаксис:

int(string_value, base = val)

Пример:

string_num = '100'
print("The data type of the input variable is:\n")
print(type(string_num))

print("Considering the input string number of base 8....")
result = int(string_num, base = 8)
print("The data type of the input value after conversion:\n")
print(type(result))
print("The converted variable from string(base 8) to int:\n")
print(result) 

print("Considering the input string number of base 16....")
result = int(string_num, base = 16)
print("The data type of the input value after conversion:\n")
print(type(result))
print("The converted variable from string(base 16) to int:\n")
print(result) 

В приведенном выше фрагменте кода мы преобразовали «100» в целочисленное значение с основанием 8 и основанием 16 соответственно.

Выход:

The data type of the input variable is:

<class 'str'>
Considering the input string number of base 8....
The data type of the input value after conversion:

<class 'int'>
The converted variable from string(base 8) to int:

64
Considering the input string number of base 16....
The data type of the input value after conversion:

<class 'int'>
The converted variable from string(base 16) to int:

256

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

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

Давайте выведем на экран 9 раз с помощью оператора .

print("Sammy" * 9)

SammySammySammySammySammySammySammySammySammy

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

Целые числа (int)

Числа в Python 3 ничем не отличаются от обычных чисел. Они поддерживают набор самых обычных математических операций:

x + y Сложение
x — y Вычитание
x * y Умножение
x / y Деление
x // y Получение целой части от деления
x % y Остаток от деления
-x Смена знака числа
abs(x) Модуль числа
divmod(x, y) Пара (x // y, x % y)
x ** y Возведение в степень
pow(x, y) xy по модулю (если модуль задан)

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

>>> 255 + 34
289
>>> 5 * 2
10
>>> 20  3
6.666666666666667
>>> 20 // 3
6
>>> 20 % 3
2
>>> 3 ** 4
81
>>> pow(3, 4)
81
>>> pow(3, 4, 27)
>>> 3 ** 150
369988485035126972924700782451696644186473100389722973815184405301748249

Битовые операции

Над целыми числами также можно производить битовые операции

x | y Побитовое или
x ^ y Побитовое исключающее или
x & y Побитовое и
x << n Битовый сдвиг влево
x >> y Битовый сдвиг вправо
~x Инверсия битов

Дополнительные методы

int.bit_length() — количество бит, необходимых для представления числа в двоичном виде, без учёта знака и лидирующих нулей.

>>> n = -37
>>> bin(n)
'-0b100101'
>>> n.bit_length()
6

int.to_bytes(length, byteorder, *, signed=False) — возвращает строку байтов, представляющих это число.

>>> (1024).to_bytes(2, byteorder='big')
b'\x04\x00'
>>> (1024).to_bytes(10, byteorder='big')
b'\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00'
>>> (-1024).to_bytes(10, byteorder='big', signed=True)
b'\xff\xff\xff\xff\xff\xff\xff\xff\xfc\x00'
>>> x = 1000
>>> x.to_bytes((x.bit_length() // 8) + 1, byteorder='little')
b'\xe8\x03'

classmethod int.from_bytes(bytes, byteorder, *, signed=False) — возвращает число из данной строки байтов.

>>> int.from_bytes(b'\x00\x10', byteorder='big')
16
>>> int.from_bytes(b'\x00\x10', byteorder='little')
4096
>>> int.from_bytes(b'\xfc\x00', byteorder='big', signed=True)
-1024
>>> int.from_bytes(b'\xfc\x00', byteorder='big', signed=False)
64512
>>> int.from_bytes(, byteorder='big')
16711680

Где используется

  • Функция используется для определения типа переменной.
  • Это очень важная информация, которая часто нужна программистам.
  • Например, программа может собирать данные, и будет необходимость знать тип этих данных.
  • Часто требуется выполнять определенные операции с конкретными типами данных: например, арифметические вычисления на целых или числах с плавающей точкой или поиск символа в строках.
  • Иногда будут условные ситуации, где с данными нужно будет обращаться определенным образом в зависимости от их типа.
  • Будет и много других ситуаций, где пригодится функция .

Рекомендации по работе с типами данных

  1. Типы и можно конвертировать в , потому что строка может включать не только символы алфавита, но и цифры.
  2. Значения типа всегда представлены в кавычках, а для , и они не используются.
  3. Строку, включающую символы алфавита, не выйдет конвертировать в целое или число с плавающей точкой.

Операторы

Оператор – это символ, которая обозначает операцию. Например, в математике знак плюса или + – это оператор сложения.

Мы рассмотрим схожие операторы, которые перешли в Python из математики. Но другие операторы специфичны именно для программирования.

Ниже представлена таблица с кратким обзором математических операторов, доступных в Python.

Операция Возвращаемое значение
x + y Сумма x и y.
x — y Разность x и y.
-x Изменение знака x.
+x Тождественность x.
x * y Произведение x и y.
x / y Частное от деления x на y.
x // y Частное от целочисленного деления x на y.
x % y Остаток от деления x / y.
x ** y x в степени y.

Списки

Список представляет собой упорядоченную последовательность элементов. Он очень гибкий и является одним из самых используемых типов в Python. Элементы списка не обязательно должны быть одного типа.

Объявить список довольно просто. Внутрь квадратных скобок помещаются элементы списка, разделённые запятой:

Мы можем использовать оператор  для извлечения элемента (такая операция называется «доступ по индексу») или диапазона элементов (такая операция назвается «извлечение среза») из списка. В Python индексация начинается с нуля:

Списки являются изменяемым типом, т.е. значения его элементов можно изменить:

Комплексные числа в Python (complex)

Также в Python встроены комплексные числа:

>>>
>>> x = complex(1, 2)
>>> print(x)
(1+2j)
>>> y = complex(3, 4)
>>> print(y)
(3+4j)
>>> z = x + y
>>> print(x)
(1+2j)
>>> print(z)
(4+6j)
>>> z = x * y
>>> print(z)
(-5+10j)
>>> z = x  y
>>> print(z)
(0.44+0.08j)
>>> print(x.conjugate())  # Сопряжённое число
(1-2j)
>>> print(x.imag)  # Мнимая часть
2.0
>>> print(x.real)  # Действительная часть
1.0
>>> print(x > y)  # Числа нельзя сравнить
Traceback (most recent call last):
  File "", line 1, in
TypeError unorderable types complex() > complex()
>>> print(x == y)  # Однако можно проверить их на равенство
False
>>> abs(3 + 4j)  # Модуль 
5.0
>>> pow(3 + 4j, 2)  # Возведение в степень, получение значения степени
(-7+24j)

Кроме того, для работы с complex может применяться модуль cmath.

На этом пока что всё. Следите за новостями и не забывайте оставлять свои комментарии!

Преобразование типа

Процесс преобразования значения одного типа данных (целое число, строка, число с плавающей запятой и т.д.) в другой тип данных называется преобразованием типа. Python имеет два способа преобразования типов:

  • Неявное преобразование типов
  • Явное приведение типов

Неявное преобразование типов

При неявном преобразовании типов Python автоматически преобразует один тип данных в другой тип данных. Этот процесс не требует участия пользователя.

Давайте рассмотрим пример, в котором Python способствует преобразованию младшего типа данных (целое число) в более высокий тип данных (число с плавающей запятой), чтобы избежать потери данных.

Пример 1: преобразование целого числа в число с плавающей точкой

num_int = 123
num_float = 1.23

num_new = num_int + num_float

print("тип данных num_int:",type(num_int))
print("тип данных num_float:",type(num_float))

print("значение num_new:",num_new)
print("тип данных num_new:",type(num_new))

блок 1

Давайте рассмотрим этот пример преобразования типа подробнее:

  1. мы добавляем две переменные num_int и num_float, сохраняя значение в num_new
  2. мы выводим тип данных всех трех объектов соответственно
  3. в выводе мы можем видеть, что тип данных num_int является целым числом, тип данных num_float — это число с плавающей точкой
  4. кроме того, мы можем видеть, что num_new имеет тип данных float, потому что Python всегда преобразует меньший тип данных в больший тип данных, чтобы избежать потери данных

Подробнее преобразование типа int в float и обратно, рассмотрено в статье Числа в Python.

Теперь давайте попробуем добавить строку и целое число и посмотрим, как Python отнесется к этому.

Пример 2: сложение строкового (более высокого) типа данных и целочисленного (более низкого) типа данных

num_int = 123
num_str = "456"

print("тип данных num_int:",type(num_int))
print("тип данных num_str:",type(num_str))

print(num_int+num_str)

Если запустить приведенный выше пример, вы сначала увидите вывод типа данных двух наших переменных, а затем сообщение об ошибке. В данном случае, интерпретатор «не понял» что ему делать со значениями двух переменных, так как сложить число и строку не представляется возможным. Однако у Python есть решение для такого типа ситуаций, которое известно как явное преобразование.

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

В явном преобразовании типов пользователи сами преобразуют тип данных объекта в требуемый тип данных. Мы используем предопределенные функции, такие как int(), float(), str() и т.д., чтобы выполнить явное преобразование типов.

Это преобразование типов также называется явным приведением типов, поскольку пользователь явно преобразует (изменяет) тип данных объектов.

Typecasting может быть выполнен путем назначения требуемой функции типа данных для выражения.

Пример 3: добавление строки и целого числа с использованием явного преобразования

num_int = 123
num_str = "456"

print("тип данных num_int:",type(num_int))
print("тип данных num_str до приведения типа :",type(num_str))

num_str = int(num_str)
print("тип данных num_str после приведения типа:",type(num_str))

num_sum = num_int + num_str

print("сумма num_int и num_str:",num_sum)
print("тип данных num_sum:",type(num_sum))

Другие встроенные функции

abs(x) — Возвращает абсолютную величину (модуль числа).

all(последовательность) — Возвращает True, если все элементы истинные (или, если последовательность пуста).

any(последовательность) — Возвращает True, если хотя бы один элемент — истина. Для пустой последовательности возвращает False.

ascii(object) — Как repr(), возвращает строку, содержащую представление объекта, но заменяет не-ASCII символы на экранированные последовательности.

bin(x) — Преобразование целого числа в двоичную строку.

callable(x) — Возвращает True для объекта, поддерживающего вызов (как функции).

chr(x) — Возвращает односимвольную строку, код символа которой равен x.

classmethod(x) — Представляет указанную функцию методом класса.

compile(source, filename, mode, flags=0, dont_inherit=False) — Компиляция в программный код, который впоследствии может выполниться функцией eval или exec. Строка не должна содержать символов возврата каретки или нулевые байты.

delattr(object, name) — Удаляет атрибут с именем ‘name’.

dir() — Список имен объекта, а если объект не указан, список имен в текущей локальной области видимости.

divmod(a, b) — Возвращает частное и остаток от деления a на b.

enumerate(iterable, start=0) — Возвращает итератор, при каждом проходе предоставляющем кортеж из номера и соответствующего члена последовательности.

eval(expression, globals=None, locals=None) — Выполняет строку программного кода.

exec(object]) — Выполняет программный код на Python.

filter(function, iterable) — Возвращает итератор из тех элементов, для которых function возвращает истину.

format(value) — Форматирование (обычно форматирование строки).

getattr(object, name ,) — извлекает атрибут объекта или default.

globals() — Словарь глобальных имен.

hasattr(object, name) — Имеет ли объект атрибут с именем ‘name’.

hash(x) — Возвращает хеш указанного объекта.

help() — Вызов встроенной справочной системы.

hex(х) — Преобразование целого числа в шестнадцатеричную строку.

id(object) — Возвращает «адрес» объекта. Это целое число, которое гарантированно будет уникальным и постоянным для данного объекта в течение срока его существования.

input() — Возвращает введенную пользователем строку. Prompt — подсказка пользователю.

isinstance(object, ClassInfo) — Истина, если объект является экземпляром ClassInfo или его подклассом. Если объект не является объектом данного типа, функция всегда возвращает ложь.

issubclass(класс, ClassInfo) — Истина, если класс является подклассом ClassInfo. Класс считается подклассом себя.

iter(x) — Возвращает объект итератора.

len(x) — Возвращает число элементов в указанном объекте.

locals() — Словарь локальных имен.

map(function, iterator) — Итератор, получившийся после применения к каждому элементу последовательности функции function.

max(iter, * ) — Максимальный элемент последовательности.

min(iter, * ) — Минимальный элемент последовательности.

next(x) — Возвращает следующий элемент итератора.

oct(х) — Преобразование целого числа в восьмеричную строку.

open(file, mode=’r’, buffering=None, encoding=None, errors=None, newline=None, closefd=True) — Открывает файл и возвращает соответствующий поток.

ord(с) — Код символа.

pow(x, y) — ( x ** y ) % r.

reversed(object) — Итератор из развернутого объекта.

repr(obj) — Представление объекта.

print(, *, sep=» «, end=’\n’, file=sys.stdout) — Печать.

property(fget=None, fset=None, fdel=None, doc=None)

round(X ) — Округление до N знаков после запятой.

setattr(объект, имя, значение) — Устанавливает атрибут объекта.

sorted(iterable) — Отсортированный список.

staticmethod(function) — Статический метод для функции.

sum(iter, start=0) — Сумма членов последовательности.

super(]) — Доступ к родительскому классу.

type(object) — Возвращает тип объекта.

type(name, bases, dict) — Возвращает новый экземпляр класса name.

vars() — Словарь из атрибутов объекта. По умолчанию — словарь локальных имен.

zip(*iters) — Итератор, возвращающий кортежи, состоящие из соответствующих элементов аргументов-последовательностей.

Используем рекурсию

# Python code to reverse a string  
# using recursion 
  
def reverse(s): 
    if len(s) == 0: 
        return s 
    else: 
        return reverse(s) + s 
  
s = "Pythonist"
  
print ("The original string  is : ",end="") 
print (s) 
  
print ("The reversed string(using recursion) is : ",end="") 
print (reverse(s)) 
The original string  is : Pythonist
The reversed string(using recursion) is : tsinohtyP  

Объяснение: В приведенном выше коде строка передается в качестве аргумента рекурсивной функции для обращения строки. В функции основное условие состоит в том, что если длина строки равна 0, строка возвращается. Если не равно 0, рекурсивно вызывается обратная функция, чтобы разрезать часть строки, оставив первый символ, и объединить первый символ с концом отрезанной строки.

Число с плавающей запятой

Число с плавающей запятой содержит десятичные точки. Он может быть положительным или отрицательным.

Мы можем использовать функцию float(), чтобы получить представление объекта с плавающей запятой. В объекте должен быть реализован метод __float __(), который возвращает число с плавающей запятой.

x = 10.50
print(x)
print(type(x))

x = float("10.50")
print(x)
print(type(x))


class Data:
    id = 0.0

    def __init__(self, i):
        self.id = i

    def __float__(self):
        return float(self.id)


d = Data(10.50)

x = float(d)
print(x)
print(type(x))

d = Data(10)
x = float(d)
print(x)
print(type(x))

Вывод:

10.5
<class 'float'>
10.5
<class 'float'>
10.5
<class 'float'>
10.0
<class 'float'>

String обеспечивает реализацию метода __float __(). Вот почему мы можем легко преобразовать строку в float.

Если объект не реализует метод __float __(), мы получаем сообщение об ошибке как:

TypeError: float() argument must be a string or a number, not 'Data'

Если метод объекта __float __() не возвращает число с плавающей запятой, мы получаем сообщение об ошибке как:

TypeError: Data.__float__ returned non-float (type int)

Мы также можем определить число с плавающей запятой в экспоненциальной нотации, используя «e» или «E». Здесь число после «E» обозначает степень до 10.

x = 10.5e2
print(x)

x = 10.5E2
print(x)

Выход:

1050.0
1050.0

Пояснение: 10,5E2 = 10,5 * pow (10, 2) = 10,5 * 100 = 1050,0

Операции с датами

Последнее обновление: 05.05.2017

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

Для форматирования объектов date и time в обоих этих классах предусмотрен метод strftime(format). Этот метод принимает только один
параметр, указывающий на формат, в который нужно преобразовать дату или время.

Для определения формата мы можем использовать один из следующих кодов форматирования:

  • %a: аббревиатура дня недели. Например, Wed — от слова Wednesday (по умолчанию используются английские наименования)

  • %A: день недели полностью, например, Wednesday

  • %b: аббревиатура названия месяца. Например, Oct (сокращение от October)

  • %B: название месяца полностью, например, October

  • %d: день месяца, дополненный нулем, например, 01

  • %m: номер месяца, дополненный нулем, например, 05

  • %y: год в виде 2-х чисел

  • %Y: год в виде 4-х чисел

  • %H: час в 24-х часовом формате, например, 13

  • %I: час в 12-ти часовом формате, например, 01

  • %M: минута

  • %S: секунда

  • %f: микросекунда

  • %p: указатель AM/PM

  • %c: дата и время, отформатированные под текущую локаль

  • %x: дата, отформатированная под текущую локаль

  • %X: время, форматированное под текущую локаль

Используем различные форматы:

from datetime import datetime
now = datetime.now()
print(now.strftime("%Y-%m-%d"))             # 2017-05-03
print(now.strftime("%d/%m/%Y"))             # 03/05/2017
print(now.strftime("%d/%m/%y"))             # 03/05/17
print(now.strftime("%d %B %Y (%A)"))        # 03 May 2017 (Wednesday)
print(now.strftime("%d/%m/%y %I:%M"))       # 03/05/17 01:36

При выводе названий месяцев и дней недели по умолчанию используются английские наименования. Если мы хотим использовать текущую локаль, но то мы
можем ее предварительно установить с помощью модуля locale:

from datetime import datetime
import locale
locale.setlocale(locale.LC_ALL, "")

now = datetime.now()
print(now.strftime("%d %B %Y (%A)"))        # 03 Май 2017 (среда)

Сложение и вычитани дат и времени

Нередко при работе с датами возникает необходимость добавить к какой-либо дате определенный промежуток времени или, наоборот, вычесть некоторый период. И специально для
таких операций в модуле datetime определен класс timedelta. Фактически этот класс определяет некоторый период времени.

Для определения промежутка времени можно использовать конструктор timedelta:

timedelta(      )

В конструктор мы последовательно передаем дни, секунды, микросекунды, миллисекунды, минуты, часы и недели.

Определим несколько периодов:

from datetime import timedelta

three_hours = timedelta(hours=3)
print(three_hours)       # 3:00:00
three_hours_thirty_minutes = timedelta(hours=3, minutes=30)  # 3:30:00

two_days = timedelta(2)  # 2 days, 0:00:00

two_days_three_hours_thirty_minutes = timedelta(days=2, hours=3, minutes=30)  # 2 days, 3:30:00

Используя timedelta, мы можем складывать или вычитать даты. Например, получим дату, которая будет через два дня:

from datetime import timedelta, datetime

now = datetime.now()
print(now)                      # 2017-05-03 17:46:44.558754
two_days = timedelta(2)
in_two_days = now + two_days
print(in_two_days)              # 2017-05-05 17:46:44.558754

Или узнаем, сколько было времени 10 часов 15 минут назад, то есть фактически нам надо вычесть из текущего времени 10 часов и 15 минут:

from datetime import timedelta, datetime

now = datetime.now()
till_ten_hours_fifteen_minutes = now - timedelta(hours=10, minutes=15)
print(till_ten_hours_fifteen_minutes) 

Свойства timedelta

Класс timedelta имеет несколько свойств, с помощью которых мы можем получить временной промежуток:

  • days: возвращает количество дней

  • seconds: возвращает количество секунд

  • microseconds: возвращает количество микросекунд

Кроме того, метод total_seconds() возвращает общее количество секунд, куда входят и дни, и собственно секунды, и микросекунды.

Например, узнаем какой временной период между двумя датами:

from datetime import timedelta, datetime

now = datetime.now()
twenty_two_may = datetime(2017, 5, 22)
period = twenty_two_may - now
print("{} дней  {} секунд   {} микросекунд".format(period.days, period.seconds, period.microseconds))
# 18 дней  17537 секунд   72765 микросекунд

print("Всего: {} секунд".format(period.total_seconds()))
# Всего: 1572737.072765 секунд

Сравнение дат

Также как и строки и числа, даты можно сравнивать с помощью стандартных операторов сравнения:

from datetime import datetime

now = datetime.now()
deadline = datetime(2017, 5, 22)
if now > deadline:
    print("Срок сдачи проекта прошел")
elif now.day == deadline.day and now.month == deadline.month and now.year == deadline.year:
    print("Срок сдачи проекта сегодня")
else:
    period = deadline - now
    print("Осталось {} дней".format(period.days))

НазадВперед

Разбиение строки

Для анализа текста требуются различные метрики, такие как количество слов, количество символов, средняя длина предложения. Чтобы вычислить эти значения, нам нужно подготовить текст — очистить и разделить. К счастью для нас, в Python есть несколько встроенных функций для разделения текста:

Разбиение по пробелу (по умолчанию):

test_string.split()
Out: 

Разбиение на определенное количество токенов:

test_string.split(' ', 2)
Out: 

Разбиение на определенное количество токенов в обратном направлении:

test_string.rsplit(' ', 2)
Out: 

Разбиение по произвольному символу:

test_string.split('e')
Out: 

Разбиение строки по нужному токену с токенами до и после него:

test_string.partition('fox')
Out: ('The quick brown ', 'fox', ' jumps over the lazy dog')

Сохранение строк в качестве значения для переменных

В общем смысле слова, переменные являются последовательностью символов, которую вы можете использовать для хранения данных в программе. Например, их можно представить в качестве неких пустых ящиков, в которое вы помещаете различные объекты. Такими объектами может стать любой тип данных, и строки в этом смысле не исключение. Однажды создав переменную, мы сильно упрощаем себе работу со строкой на протяжении всей программы.

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

my_str = "Sammy likes declaring strings."

Теперь, когда у нас есть переменная , назначенная нужной нам строке, мы можем вывести ее на экран:

print(my_str)

И получим следующий вывод:

Sammy likes declaring strings.

Использование переменных вместо строк не только дает нам возможность не переписывать строки каждый раз, когда нам это нужно, но также сильно упрощает работу с ними внутри программы.

Translate и Replace

Первый случай — заменить или удалить некоторые символы или подстроки из текста. В Python есть встроенные функции в модуле string, которые выполняют эти задачи.

Метод использует таблицу (которая строится при помощи функции ) для удаления или изменения определенных символов:

test_string = 'The quick brown fox jumps over the lazy dog' 
translation_map = str.maketrans('eo', '  ') 
test_string.translate( translation_map ) 

Out: 'Th  quick br wn f x jumps  v r th  lazy d g'

Метод работает так, как следует из его названия — изменяя подстроку на нужную:

test_string = 'The quick brown fox jumps over the lazy dog'
test_string.replace( 'fox', 'squirell')

Out: 'The quick brown squirell jumps over the lazy dog'

Форматирует значение переменной для вывода на печать.

format(value, format_spec)

Внимание! Ссылка для тех, кто ищет метод форматирования строки

Описание:

Функция преобразует переданное значение в отформатированную строку, в соответствии с спецификацией формата , которое задается в необязательном аргументе .

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

Спецификация формата :

  1. Выравнивание:
    • — Левое выравнивание результата (в пределах доступного пространства);
    • — Выравнивает результат по правому краю (в пределах доступного пространства);
    • — Выравнивает результат по центру (в пределах доступного пространства);
    • — Помещает результат в крайнее левое положение;
  2. Знаки, только для чисел:
    • — знак плюс;
    • — знак минус только для отрицательных значений;
  3. Разделители десятков, только для чисел:
    • — Использовать запятую в качестве разделителя тысяч;
    • — Использовать символ подчеркивания в качестве разделителя тысяч;
  4. Точность:

    .число — количество цифр выводимых после фиксированной точки или количество символов в строке;
    >>>format(1, ‘f’)
    ‘1.000000’
    >>>format(10, ‘.2f’)
    ‘10.00’
    >>>format(‘format’, ‘.2’)
    ‘fo’

  5. Тип форматируемого объекта:

    • — строка, можно не указывать, используется по умолчанию;
    • — двоичный формат;
    • — преобразует целое число в символ Unicode;
    • — десятичный формат;
    • — научный формат, со строчной буквой ;
    • — научный формат, с верхним регистром;
    • — формат чисел с плавающей запятой;
    • — формат чисел с плавающей запятой, верхний регистр;
    • — общий формат, нижний регистр;
    • — общий формат, верхний регистр;
    • — Восьмеричный формат;
    • — шестнадцатеричный формат, нижний регистр;
    • — шестнадцатеричный формат, верхний регистр;
    • — формат целых чисел;
    • — Процентный формат. Умножает число на 100 и использует для вывода. В конце ставится ;
    • — альтернативный вариант вывода указанного формата, работает с форматами , , .

Общий вид инструкции :

Пример: , где — формат .

  • — заполнитель
  • — выравнивание
  • — знак
  • — размер итоговой строки в символах
  • — разделитель десятков
  • — точность, количество выводимых цифр после запятой
  • — тип,

Пример выведет отформатированную строку:

>>> format(5)
'5'
>>> format(5, '.1f')
'5.0'
>>> format(5, '*^10.2f')
'***5.00***'
>>> format(1000, '10,d')
'     1,000'
>>> format('Привет', '>10.3')
'       При'
>>> format(1000, '#>+10,.2f')
' +1,000.00'
>>>format(1000.5368, '~>+15,.2f')
'~~~~~~+1,000.54'

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий