- Форматирование в Python с помощью f-строк
- Вступление
- Что такое форматирование строк?
- Синтаксис
- Отображение переменных
- Выражения
- Специальные символы
- Кавычки
- Скобки
- Словари
- Строковые переменные Python
- Строки и функция print в Python
- 1. Функция print() в Python .
- 2. Табуляция и разрыв строк в Python.
- 3. Изменение регистра символов в строках в Python.
- 4. F-строки. Форматирование строк в Python.
- 5. Удаление пропусков в Python.
- 6. Комментарии в Python.
Форматирование в Python с помощью f-строк
В этом руководстве вы узнаете и увидите на примерах, какие преимущества для форматирования дает использование f-строк в Python.
Вступление
Что такое форматирование строк?
Форматирование строк — это оформление строк с помощью методов форматирования, предложенных конкретным языком программирования. В Python таких несколько, но речь пойдет только об одном: f-строках.
f-строки исполняются при исполнении самой программы. Это работает быстрее других методов.
У f-строк более простой синтаксис в сравнении с другими техниками форматирования Python. Эта особенность будет рассмотрена на примерах.
Синтаксис
Каждая инструкция f-строки состоит из двух частей: символа f (или F ) и строки, которую нужно форматировать. Строка должна быть в одинарных, двойных или тройных кавычках.
# мы также можем использовать F, '', ''''', """""" f"string"
На месте string нужно написать предложение, которое требуется отформатировать.
Отображение переменных
Раньше для форматирования использовался метод str.format() . Новый подход делает все вдвое быстрее.
Переменные в фигурных <> скобках отображаются в выводе как обычно в print . Стоит посмотреть на примере.
# объявление переменных name = "Pythonru" type_of_site = "Блог" # заключите переменную в <>, чтобы отобразить ее значение в выводе print(f" это .")
Все значения переменных отобразились в выводе. С этим все понятно. Вместо f можно написать F .
# объявление переменных name = "Pythonru" type_of_site = "Блог" # заключите переменную в <>, чтобы отобразить ее значение в выводе print(F" это ?")
Выражения
Что, если можно было бы выполнять арифметические выражения или вызовы функций в строке? Это удобно. И f-строки позволяют делать это.
Просто вставьте выражение в <> для исполнения. Оно выполнится при запуске программы. Экономит время и код.
Вот примеры отдельных выражений.
# объявление переменных print(f"") # вывод: 4
Также в <> можно вызвать функцию. Определим функцию greet() и вызовем ее в f-строке.
def greet(name): return "Привет, " + name
# вызов функции с использованием f-строки name = "Олег" print(f"")
Также можно вызвать определенные заранее методы.
# метод title, делает первую букву каждого слова заглавной string = "pythonru это блог." print(f"")
Что еще умеет f-строка? Отображать объект? Да. Работает это так же, как и при выводе переменных.
class Sample: def __init__(self, name, age): self.name = name self.age = age # этот метод будет вызываться при выводе объекта def __str__(self): return f'Имя: . Возвраст: .'
user= Sample("Игорь", 19) # это вызовет метод __str__() print(f"")
Специальные символы
Что делать, если нужно отобразить специальные символы, такие как <> , \’ , \» ? Они ведь используются в Python для определенных целей. Можно ли использовать экранирование внутри f-строки? Вот ответы на все вопросы.
Кавычки
Можно использовать любые кавычки (одинарные, двойные или тройные) в f-строке. Для их вывода потребуется использовать экранирование. Выражение f-строки не позволяет использовать обратную косую черту. Ее нужно размещать вне <> .
name = "Pythonru" # отображение одинарных кавычек print(f"Привет, \'\'") print() # отображение двойных кавычек print(f"Привет, \"\"")
Привет, 'Pythonru' Привет, "Pythonru"
Другие кавычки в f-строках.
f'' # 'Привет, Pythonru' f"" # 'Привет, Pythonru' f"""Привет, Pythonru""" # 'Привет, Pythonru' f'''Привет, Pythonru''' # 'Привет, Pythonru'
<> также можно включать в тройные кавычки.
В f-строках нельзя использовать обратную косую черту в <> . Если попробовать, то будет ошибка.
Скобки
Двойные скобки нужны, чтобы вывести одни фигурные скобки в f-строке.
Если нужно вывести две пары скобок, то в выражении потребуется указать по четыре.
Словари
Нужно быть осторожным, работая с ключами словаря в f-строке. Необходимо использовать другие кавычки по отношению к ключам. Они не должны быть теми же, которыми окружена f-строка.
person = "name": "Игорь", "age": 19> print(f", лет.")
person = "name": "Игорь", "age": 19> print(f'name']>, age']> лет.')
File "", line 2 print(f', лет.') ^ SyntaxError: invalid syntax
Строковые переменные Python
Строковый тип данных записывается в кавычках — двойных или одинарных. Возможно комбинирование кавычек, если, например, в строке есть знак апострофа. Тогда есть смысл внешние кавычки делать двойными, чтобы апостроф внутри не воспринимался как символ завершения строки.
В примере ниже показано комбинирование кавычек для строковых переменных, а также в строке 4 — пример экранирования символа двойных кавычек, если все необходимо, чтобы в строке внутри были двойные кавычки при условии, что внешние кавычки тоже двойные.
Но, символ экранирования в некоторых случаях тоже может быть составляющим элементом строки, например, если строка это URL или это часть управляющей команды. В этом случае надо отключить этот экранирующий символ, чтобы строка вывелась как есть. Для это используют управляющий символ r, как в примере ниже — убираем действие комбинации \n, выполняющей перевод вывода на новую строку. Попробуйте в примере убрать r перед строкой и вы поймете как это работает.
В следующем примере показано, что имя строковой переменной может таки совпадать с ее значением, а также приведен пример сложения (конкатенации) двух строк.
Последний пример показывает, что можно строковую переменную определить и c помощью тройных кавычек, если очень надо и нельзя никак по другому выделить строковую переменную.
Строки и функция print в Python
Строка представляет собой простую последовательность символов. С ней можно работать разными способами. Любая последовательность символов, заключенная в кавычки, в Python считается строкой. Кавычки могут быть одинарные и двойные.
«Строка Python.»
‘Строка Python.’
Это позволяет использовать внутренние кавычки в строках. «Язык программирования ‘Python’ «. Рассмотрим операции со строками.
Содержание страницы: |
---|
1. Функция print() |
2. Табуляция и разрыв строк |
3. Изменение регистра символов в строках |
4. F-строки. Форматирование строк |
5. Удаление пропусков |
6. Комментарии |
1. Функция print() в Python .
Встроенная функция print() выводит свой аргумент в строке текста.
>>> print( ‘Hello world!’ )
Hello world!
>>> print( «Hello world!» )
Hello world
>>> print( «Hello», ‘world!’ )
Hello world
В каждом случае аргументом является строка Hello world! Кроме того, print() не выводит кавычки, в которые заключена строка. Строка может быть заключена как в одинарные так и в двойные кавычки. В третьем случае, функция print() , получила список аргументов «Hello» и ‘world’, разделенных запятыми. Каждый аргумент выводится, отделяясь от следующего пробелом. В итоге во всех трех случаях получается один и тот же результат.
2. Табуляция и разрыв строк в Python.
В программировании термином пропуск ( whitespace ) называются такие непечатаемые символы, как пробелы, табуляции и символы конца строки. Пропуски структурируют текст, чтобы пользователю было удобнее читать его.
В таблице приведены наиболее часто встречаемые комбинации символов.
Для добавления в текст табуляции используется комбинация символов \t . Разрыв строки добавляется с помощью комбинации символов \n .
>>> print(«Python»)
Python
>>> print(» \t Python»)
Python
>>> print(«Языки программирования: \n Python \n Java \n C»)
Языки программирования:
Python
Java
C
Табуляция и разрыв строк могут сочетаться в тексте. В следующем примере происходит вывод одного сообщения с разбиением на строки с отступами.
>>> print(«Языки программирования: \n\t Python \n\t Java \n\t C»)
Языки программирования:
Python
Java
C
3. Изменение регистра символов в строках в Python.
Одной из частых операций, выполняемых со строками — это изменение регистра символов. Например, у нас есть переменная name, в которой сохранена строка «Hello world!». Для преобразования символов к верхнему или нижнему регистру существует несколько методов.
>>> name = «Hello world!»
>>> print(name. title() )
Hello World!
>>> print(name. upper() )
HELLO WORLD!
>>> print(name. lower() )
hello world!
В первом случае за именем переменной в команде print() следует вызов метода title() . Метод — это действие, которое Python выполняет с данными. Точка после name приказывает Python применить метод title() к переменной name. За именем метода всегда следует пара круглых скобок () . Методам для выполнения их работы часто требуется дополнительные данные, и они указываются в скобках. В данный момент дополнительная информация не нужна, поэтому в скобках ничего нет. Метод title() преобразует первый символ каждого слова к верхнему регистру, остальные символы выводятся, как и были. Во втором случае используется метод upper() , в котором все символы преобразовываются к верхнему регистру. В третьем случае в методе lower() идет преобразование всех символов к нижнему регистру.
Метод lower() очень часто используется для хранения данных. Редко при вводе данных все пользователи вводят данные с точным соблюдением регистра. После ввода все данные преобразуются к нижнему регистру и уже затем выводится информация с использованием регистра, наиболее подходящего.
4. F-строки. Форматирование строк в Python.
Часто требуется использовать значения переменных внутри строки. Предположим, что у вас имя и фамилия хранятся в разных переменных и вы хотите их объединить для вывода полного имени.
Для того чтобы вставить значение переменных в строку, нужно поставить букву f непосредственно перед открывающейся кавычкой. Заключить имя или имена переменных в фигурные скобки <> .
Python заменить каждую переменную на ее значение при выводе строки.
>>> name = «Александр»
>>> surname = «Пушкин»
>>> full_name = f» »
>>> print(full_name)
Александр Пушкин
Буква f происходит от слова format, потому что Python форматирует строку, заменяя имена переменных в фигурных скобках на их значения. В итоге выводится строка имя и фамилия.
Если в переменной имя и фамилия записана с маленькой буквы, то на помощь придет метод title() . Так же с помощью f строк можно строить сообщения, которые затем сохраняются в переменной.
>>> name = «александр»
>>> surname = «пушкин»
>>> full_name = f» »
>>> print( f» Русский поэт ! » )
Русский поэт Александр Пушкин!
>>> message = f» Мой любимый поэт »
>>> print(message)
Мой любимый поэт Александр Пушкин
Важно: F-строки впервые появились в Python3.6. Если вы используете более раннею версию, используйте метод format. Что бы использовать метод format(), перечислите переменные в круглых скобках после format.
full_name = «<> <>«.format(name, surname)
5. Удаление пропусков в Python.
Для пользователя две строки ‘Python’ и ‘ Python ‘ внешне сильно не отличаются, но для программы это совершенно разные строки. Python видит дополнительные пропуски и считает их важными. Обращайте внимание на лишние пропуски, потому что часто в программах приходится сравнивать строки, чтобы проверить совпадения. Один из примеров — это проверка имен пользователей при регистрации или авторизации на сайте. Python позволяет удалять лишние пропуски, введенные пользователем.
метод | описание |
---|---|
rstrip() | удаляет пропуск у правого края |
lstrip() | удаляет пропуск у правого края |
strip() | удаляет пропуски с обоих концов |
Python может искать лишние пропуски у правого и левого края строки, так же может удалить с обоих концов строки.
>>> language. rstrip ()
‘ python’
>>> language. lstrip ()
‘python ‘
>>> language. strip ()
‘python’
>>> language
‘ python ‘
Важно: Python не удаляет навсегда эти пропуски в переменной. Чтобы исключить пропуск из строки, следует ее перезаписать.
>>> language = ‘ python ‘
>>> language
‘ python ‘
>>> language = language. strip ()
>>> language
‘python’
Сначала пропуски удаляются методом strip() и потом записываются в исходную переменную.
6. Комментарии в Python.
В Python признаком комментария является символ «решетка» ( # ). Интерпретатор Python игнорирует все символы, следующие в коде после # до конца строки.
>>> print(‘Hello Python’)
Hello Python
>>> # print(‘Hello Python’)
Основная задача комментария — объяснить, как работает ваш код и что он делает. В процессе работы над проектом вы понимаете, как работают все компоненты, но если вы вернетесь к этому проекту спустя месяц или годы, то придется заново разбираться. Так же при совместной разработке с другими программистами без комментариев вам не обойтись. Рекомендуется сразу писать комментарии в процессе разработки. Удалить комментарии намного проще, чем возвращаться и добавлять комментарии в программу.