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

Вот три распространенных метода форматирования строк в Python:

1. Использование оператора %

Оператор % существует с первых дней существования Python и до сих пор является популярным выбором для форматирования строк. Он работает, помещая символ % после строки, за которым следует кортеж значений, которые вы хотите включить в строку. Затем на значения ссылаются с помощью специальных заполнителей, таких как %s для строк, %d для целых чисел и %f для чисел с плавающей запятой.

name = 'John'
age = 30

# Using the % operator
print('Hello, my name is %s and I am %d years old' % (name, age))

#Output: Hello, my name is John and I am 30 years old

Вы также можете указать ширину и точность форматируемых значений, используя дополнительные параметры заполнителя.

# using % operator with width and precision
print('Hello, my name is %10s and I am %.2f years old.' % (name, age))

# Output: Hello, my name is      John and I am 30.00 years old.

Имейте в виду, что оператор % для форматирования строк устарел в пользу метода format(). Рекомендуется использовать метод format() для форматирования строк в Python.

2. Использование метода format ()

Метод format() — это новый и более мощный способ форматирования строк. Он работает, вызывая метод format() для строки и передавая значения в качестве аргументов. Затем значения указываются с помощью фигурных скобок {} и могут быть отформатированы с использованием специального синтаксиса.

name = 'John'
age = 30

# Using the format() method
print('Hello, my name is {} and I am {} years old'.format(name, age))

# Output: Hello, my name is John and I am 30 years old

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

# using format() method with width and precision
print('Hello, my name is {0:10} and I am {1:.2f} years old.'.format(name, age))

# Output: Hello, my name is John       and I am 30.00 years old.

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

# using format() method with field names
print('Hello, my name is {name:10} and I am {age:.2f} years old.'.format(name=name, age=age))

# Output: Hello, my name is John       and I am 30.00 years old.

3. Использование f-строк (Python 3.6 и выше)

f-строки — это новейший и наиболее лаконичный способ форматирования строк в Python. Они работают, помещая символ f перед строкой и используя фигурные скобки {} для ссылки на переменные. Переменные также могут быть отформатированы с использованием специального синтаксиса.

name = 'John'
age = 30

# Using f-strings
print(f'Hello, my name is {name} and I am {age} years old')

#Output: name = Hello, my name is John and I am 30 years old

Вы также можете указать ширину и точность форматируемых значений, используя дополнительные параметры в заполнителях. Например:

# using f-strings with width and precision
print(f'Hello, my name is {name:10} and I am {age:.2f} years old.')

# Output: Hello, my name is John       and I am 30.00 years old.

F-строки появились в Python 3.6 и обеспечивают удобный и быстрый способ форматирования строк. Их рекомендуется использовать для форматирования строк в Python.

Заключение

Существуют и другие методы форматирования строк, такие как ljust(), rjust() и center (). Методы ljust(), rjust() и center () — это строковые методы, которые можно использовать для выравнивания строк в пределах заданной ширины.

# Initialize a string
s = 'hello'

# Use the ljust() method to left-align the string within a width of 10 characters
print(s.ljust(10))

# Use the rjust() method to right-align the string within a width of 10 characters
print(s.rjust(10))

# Use the center() method to center the string within a width of 10 characters
print(s.center(10))

Это выведет следующее:

hello    
     hello
  hello

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