Уроки модуля (4/4)
Печать и f-стринги
Чтобы сообщить что-то пользователю (или посмотреть, что происходит внутри
нашу программу) мы используем встроенную функцию print(...). Сочинять
текст из нескольких значений, современный и предпочтительный синтаксис — это
f-струна.
print(...)
print("Ciao, mondo!") # Ciao, mondo!
print("a", "b", "c") # a b c (separati da spazio)
print(2 + 2) # 4
print("riga 1", "riga 2") # riga 1 riga 2print может принимать столько аргументов, сколько вы хотите: он объединяет их пробелом (путем
default) и добавляет в конце новую строку. Вы можете изменить оба с помощью
Параметры sep и end:
print("a", "b", "c", sep="-") # a-b-c
print("senza newline", end="") # niente \n dopof-строка: современная интерполяция
f-строка — это строка с префиксом f: внутри фигурных скобок {...}.
вы можете вставить любое выражение Python, которое будет оценено и вставлено в
результат:
nome = "Ada"
anni = 30
print(f"Mi chiamo {nome} e ho {anni} anni.")
# Mi chiamo Ada e ho 30 anni.Внутри фигурных скобок можно помещать вызовы, операции, обращения к объектам — это Код Python во всех отношениях:
prezzo = 12.5
quantita = 3
print(f"Totale: {prezzo * quantita:.2f} €")
# Totale: 37.50 €:.2f после двоеточия представляет собой спецификацию формата: в данном случае «два десятичных числа».
цифры, фиксированная точка». Наиболее полезные характеристики формата:
:.Nf— N десятичных цифр (f"{pi:.4f}"→3.1416).:N/:>N/:<N/:^N— ширина N, выравнивание по правому/левому/центру.:_или:,— разделитель тысяч (f"{1000000:,}"→1,000,000).
Альтернативные синтаксисы (для справки)
До f-строк (представленных в Python 3.6) использовались две формы, которые вы все равно встретитесь в старом коде:
# stile .format() — verboso ma esplicito
"{} ha {} anni".format("Ada", 30)
# stile %-formatting — molto vecchio
"%s ha %d anni" % ("Ada", 30)Для нового кода всегда используйте f-строки: короче, читабельнее, быстрее.
Расширенное форматирование с помощью f-строк
F-строки поддерживают расширенные спецификации форматирования непосредственно внутри фигурных скобок. Например, чтобы отформатировать десятичное число ровно с двумя десятичными знаками, вы можете написать:
price = 19.99
print(f"Price: {price:.2f} $")Спецификатор :.2f указывает, что мы хотим представить число с плавающей точкой ровно с двумя знаками после запятой.
Попробуйте сами
Учитывая `name = 'Ada'` и `age = 30`, постройте строку "Ada ha 30 anni" с помощью f-строки и присвойте ее `line`. Оцените «линию».
Показать подсказку
Синтаксис: f"что-то {переменная} что-то еще"
Решение доступно после 3 попыток
Обзор упражнения
Напечатайте с помощью print() строку «pi greco Vale 3.14», начиная с «pi = 3.14159», используя f-строку со спецификацией формата 2 десятичных знака.
Показать подсказку
Спецификация формата идет после двоеточия внутри фигурных скобок: {pi:.2f}.
Решение доступно после 3 попыток
Дополнительная задача
Given a variable `price` set to `19.99`, use an f-string to construct the string `'Price: 19.99 €'` and store it in `receipt_line`. Finally, evaluate the variable.
Показать подсказку
Используйте f"Цена: {цена} €" и присвойте результат строке получения.
Решение доступно после 3 попыток