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


Python использует форматирование строк в стиле C для создания новых отформатированных строк. Оператор «%» используется для форматирования набора переменных, заключенных в «кортеж» (список фиксированного размера), вместе со строкой форматирования, которая содержит обычный текст вместе с «спецификаторами аргументов», специальными символами, такими как «% s» и "% d".

Допустим, у вас есть переменная с именем «name» с вашим именем пользователя в ней, и вы хотите распечатать (вывести приветствие для этого пользователя).

# This prints out "Hello, John!" name = "John" print("Hello, %s!" % name)
1
2
3
# Это напечатает "Привет, Джон!"
name = "Джон"
print ( "Привет,% s!" % name )
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

Чтобы использовать два или более спецификатора аргумента, используйте кортеж (круглые скобки):

# This prints out "John is 23 years old." name = "John" age = 23 print("%s is %d years old." % (name, age))
1
2
3
4
# Это распечатывает «Джону 23 года».
name = "Джон"
возраст = 23
print ( "% s% d лет." % ( имя , возраст ))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

Любой объект, не являющийся строкой, также может быть отформатирован с помощью оператора% s. Строка, возвращаемая методом repr этого объекта, форматируется как строка. Например:

# This prints out: A list: [1, 2, 3] mylist = [1,2,3] print("A list: %s" % mylist)
1
2
3
# Это распечатает: Список: [1, 2, 3]
mylist = [ 1 , 2 , 3 ]
print ( "Список:% s" % mylist )
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

Вот несколько основных спецификаторов аргументов, которые вам следует знать:

%s - String (or any object with a string representation, like numbers)

%d - Integers

%f - Floating point numbers

%.<number of digits>f - Floating point numbers with a fixed amount of digits to the right of the dot.

%x/%X - Integers in hex representation (lowercase/uppercase)

Упражнение

Вам нужно будет написать строку формата, которая распечатает данные, используя следующий синтаксис: Hello John Doe. Your current balance is $53.44.