Рубрики
Без рубрики

Сравнение форматирования строки: формат () | Процентов | F-string.

Резюме: F-String более читается и проще реализовать, чем% и .Format () стилей форматирования строки. Кроме того, использование F-strings предлагается для Python 3.6 и выше, в то время как. Format () лучше всего подходит для Python 2.6 и выше. Версии до Python 2.6 обеспечивают только опцию% для форматирования строки. С точки зрения скорости,% это … Сравнение строкового форматирования: формат () | Процентов | F-строка Подробнее »

Автор оригинала: Shubham Sayon.

Резюме: F-string более читабелен и проще реализовать, чем % и .Format () Струнные форматирования стилей. Кроме того, используя F-струны Предлагается для Python 3.6 и выше, пока .Format () лучше всего подходит для Python 2.6 и выше. Версии до Python 2.6 только предоставляют % Опция для форматирования строки. С точки зрения скорости % это самый быстрый стиль форматирования строки.

Обзор

Проблема: Сравните различные стили форматирования строки в Python I.e. % Против .Format () VS Форматированная строка литерала/ F-струны Отказ

Обзор решения : Существует 4 способа форматирования строки в Python в настоящее время. Эти

  1. % форматирование
  2. str.format ()
  3. F-string (Строковая буквальная)
  4. Шаблонные строки

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

from string import Template

name = "FINXTERS!"
print('1. Hello %s' % name)
print('2. Hello {}'.format(name))
print(f"3. Hello {name}")
temp = Template("4. Hello $name")
print(temp.substitute(name=name))

Выход

1. Hello FINXTERS!
2. Hello FINXTERS!
3. Hello FINXTERS!
4. Hello FINXTERS!

Итак, из приведенного выше примера мы видим, что все типы форматирования строки создают одинаковый выход. Сказав это, у нас сейчас есть много вопросов для решения. Некоторые из этих вопросов включают в себя:

  • В чем разница между каждым методом форматирования строки?
  • Какой метод форматирования строки должен быть предпочтительным, и в какой ситуации он должен быть предпочтительным?

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

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

Упражнение : Добавьте вторую строковую переменную имя и вставьте его в каждый выход!

Разница синтаксиса

В следующей таблице изображена разница в синтаксисе между каждым способом форматирования строки:

% форматирования str.format () F-струны
Синтаксис:% переменная Синтаксис: .format (value1, value2 …) Синтаксис: F ”
Пример: Печать (‘1. Здравствуйте% S’% Name) Пример: Печать (‘2. Здравствуйте {}’. Формат (имя)) Пример: Печать (F’3. Hello {name} ‘)

Версия и разница в совместимости

В следующей таблице изображена разница между каждым стилем форматирования строки с точки зрения их совместимости в разных версиях Python.

% форматирования str.format () F-струны
1. Введен в первоначальном / первом выпуске Python. 1. Введен в Python 2.6. 1. Введен в Python 3.6.
2. Может использоваться в любой версии Python. Однако это не рекомендуемый стиль форматирования строки для Python 2.6 и выше. 2. Его можно использовать в Python 2.6 и выше. Однако он будет поднять синтаксическую ошибку при использовании в версиях до Python 2.6. 2. Может использоваться только в Python 3.6 и выше. Он повысит ошибку синтаксиса, если используется в версиях до Python 3.6

Функциональная разница

% форматирования str.format () F-струны
% – это оператор, известный как оператор Modulo, который позволяет нам форматировать строковый объект в Python. Это встроенный метод, который позволяет нам отформатировать строковый объект в Python. F-string – это буквальная строка в Python, с «F» в качестве префикса и содержит выражения внутри брекетов.
Комплексный синтаксис и может принимать переменную или кортеж. Пожалуйста, посмотрите на пример 1, приведенный ниже, чтобы получить лучшее представление об этой концепции. Будучи новым и улучшенным стилем форматирования строки, он более универсален и прост в использовании, чем%. Он имеет более простой синтаксис и использует аналогичный синтаксис, необходимо ли вам принять строковую переменную или кортеж. Пожалуйста, посмотрите на пример 1, приведенный ниже, чтобы получить лучшее представление об этой концепции. Он использует еще более простой синтаксис с момента .Format () может быть утомительным, особенно при использовании с длинными строками. Пожалуйста, посмотрите на пример 1, приведенный ниже, чтобы получить лучшее представление об этой концепции. Это более мощный вариант форматирования строки на учетную запись, что позволяет нам встраивать выражения в самой строке. Пожалуйста, посмотрите на пример 2, приведенный ниже, чтобы получить лучшее представление об этой концепции.

Давайте сравним Строковые форматированные стили Основываясь на их простоте реализации, используя несколько примеров:

Пример 1.

name = 'Finxter Shubham'
tup = (1, 2, 3)

# Different syntax for printing a string and tuple
print("Name: %s" % name)
print("Tuple: %s" % (tup,))

# same syntax to print both string and tuple
print("Name: {}".format(name))
print("Tuple: {}".format(tup))

# even more readable and easier syntax
print(f'Name: {name}')
print("Tuple: " f'{tup}')

Выход

Name: Finxter Shubham
Tuple: (1, 2, 3)
Name: Finxter Shubham
Tuple: (1, 2, 3)
Name: Finxter Shubham
Tuple: (1, 2, 3)

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

Пример 2.

# The number of units per player
units = {}
units['Alice'] = 10
units['Bob'] = 15
x = 'Alice'
y = 'Bob'
print(f'{x} has {units["Bob"] - units["Alice"]} units less than {y}')

Выход

Alice has 5 units less than Bob

Чтобы узнать, как вы можете выполнить вышеуказанную работу в .Format () Строковый способ форматирования – кликните сюда!

► Теперь давайте посмотрим на пример, который изображает, как легко мы можем использовать позиционные Аргументы В случае .Format () и F-струны Но насколько отвратительно становится при этом одинаковое использование % форматирование.

Пример 3.

tu = (100, 500, 300)
print('{0} {2} {1}'.format(*tu))
print(f'{tu[0]}, {tu[2]}, {tu[1]}')

# using % formatting
print('%(a)s %(c)s %(b)s' % {'a': 100, 'b': 500, 'c': 300})

Выход

100 300 500
100, 300, 500
100 300 500

► Еще одно преимущество новых методов форматирования строки по % Форматирование строки: – Новые стили могут взять объект свойства тогда как % не может сделать это. Давайте посмотрим на следующий код, чтобы увидеть принцип работы за этой концепцией:

class Finxter(object):
    def __init__(self, a, b):
        self.x = a
        self.y = b


a = Finxter(2, 3)
print("\nUsing .format():")
print('Value1 = {0}\nValue2 = {1}'.format(a.x, a.y))
print("\nUsing f-string:")
print(f'Value1={a.x}\nValue2={a.y}')
print("\nNot possible using %")

Выход

Using .format():
Value1 = 2
Value2 = 3

Using f-string:
Value1=2
Value2=3

Not possible using %

Разница скорости/производительности

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

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

import timeit

print('.format() Speed:', timeit.timeit("'{}{}{}'.format(0.5, 1.5, 'SPEED TEST!')"))
print('% Speed:', timeit.timeit("'%s%s%s' % (0.5, 1.5, 'SPEED TEST!')"))
print('f-string Speed:', timeit.timeit("f'{0.5}{1.5}{\"SPEED TEST!\"}'"))

Выход

.format() Speed: 1.615438
% Speed: 1.2333532999999999
f-string Speed: 1.2435527000000004

Поэтому мы видим, что % (модуль) Строкольный форматирующий стиль выигрывает гонку производительности!

Используйте случай, который соответствует определенному стилю форматирования строки

Из вышеперечисленных обсуждений мы можем легко вывести следующее:

  • Если вы используете любую версию до Python 2.6 Stick со старым % (модуль) Строкольный способ форматирования.
  • Если вы используете Python 2.6 или выше, а затем используете .Format () Строковый способ форматирования – лучший вариант.
  • Если вы используете Python 3.6 или выше, лучший вариант для форматирования строки – F-string Отказ

Если вы запутались в отношении версии Python, на которой вы работаете, вы можете взглянуть на это руководство.

Вывод

В этой статье мы обсудили ключевые различия между % ул. Формат () и F-струны на основе многочисленных факторов вместе со своими примерами. Я надеюсь, что после прочтения этой статьи вы можете сравнить и сопоставить различия между каждым стилем форматирования строки. Хотя примеры, используемые в вышеуказанной статье, являются очень базовыми (для лучшего занижения концепции), одинаковые контрасты также проводятся в случае сложных ситуаций.

Если вам понравилось прочитать эту статью, пожалуйста, подпишитесь и оставайтесь настроенными для более интересных статей!

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @: