* Upgraded node image to latest stable, v8.12 in docker compose * f-strings example with capital letter F * Example of using f-strings with an object * Revert "f-strings example with capital letter F" This reverts commit8f498480ce
. * Revert "Upgraded node image to latest stable, v8.12 in docker compose" This reverts commite55dd116d2
. * feat: fixed header formatting
136 lines
2.5 KiB
Markdown
136 lines
2.5 KiB
Markdown
---
|
|
title: Python f-strings
|
|
---
|
|
# f-strings in Python
|
|
In Python version 3.6, a new method of formatting strings was implemented. The new method is called Literal string interpolation (though commonly referred to as an f-string, due to f prefix at the beginning of the string).
|
|
|
|
The use of f-string allows the programmer to dynamically insert a variable into a string in a clean and concise manner. In addition to inserting variables into a string this feature also provides the ability for a programmer to evaluate expressions, join the contents of collection, and even invoke functions within the f-string.
|
|
|
|
To perform these dynamic behaviours within an f-string we wrap them inside curly brackets within the string, and prepend a lower case f to the beginning of the string (before the opening quote).
|
|
|
|
## Examples
|
|
### Dynamically inserting a variable into a string at runtime:
|
|
|
|
#### Input
|
|
|
|
```python
|
|
name = 'Jon Snow'
|
|
greeting = f'Hello! {name}.'
|
|
print(greeting)
|
|
```
|
|
|
|
#### Output
|
|
|
|
```
|
|
Hello! Jon Snow.
|
|
```
|
|
|
|
### Multiple variables, of different types, can be inserted in the same string:
|
|
|
|
### Input
|
|
|
|
```python
|
|
item_id = 'P12305'
|
|
price = 425.50
|
|
print(f'Item {item_id} costs {price} USD.')
|
|
```
|
|
|
|
#### Output
|
|
|
|
```
|
|
Item P12305 costs 425.50 USD.
|
|
```
|
|
|
|
### Evaluate an expression in a string:
|
|
|
|
#### Input
|
|
|
|
```python
|
|
val1 = 2
|
|
val2 = 3
|
|
expr = f'The sum of {val1} + {val2} is {val1 + val2}'
|
|
print(expr)
|
|
```
|
|
|
|
#### Output
|
|
```
|
|
The sum of 2 + 3 is 5
|
|
```
|
|
|
|
### Calling a function and inserting output within a string:
|
|
|
|
#### Input
|
|
```python
|
|
def sum(*args):
|
|
result = 0
|
|
for arg in args:
|
|
result += arg
|
|
return result
|
|
|
|
func = f'The sum of 3 + 5 is {sum(3, 5)}'
|
|
print(func)
|
|
```
|
|
|
|
#### Output
|
|
```
|
|
The sum of 3 + 5 is 8
|
|
```
|
|
|
|
### Joining the contents of a collection within a string:
|
|
|
|
#### Input
|
|
|
|
```python
|
|
fruits = ['Apple', 'Banana', 'Pear']
|
|
|
|
list_str = f'List of fruits: {", ".join(fruits)}'
|
|
print(list_str)
|
|
```
|
|
|
|
#### Output
|
|
```
|
|
List of fruits: Apple, Banana, Pear
|
|
```
|
|
|
|
### Convert an integer to 8-bit binary
|
|
|
|
#### Input
|
|
|
|
```python
|
|
num = 42
|
|
|
|
print(f'The binary of {num} is {num:08b}')
|
|
```
|
|
|
|
#### Output
|
|
```
|
|
The binary of 42 is 00101010
|
|
```
|
|
|
|
### Using Object with f-strings
|
|
|
|
#### Input
|
|
|
|
```python
|
|
class Book:
|
|
def __init__(self, title, author):
|
|
self.title = title
|
|
self.author = author
|
|
|
|
def __str__(self):
|
|
return f"{self.title} by {self.author}"
|
|
|
|
|
|
book = Book("A Clash of Kings", "George R. R. Martin")
|
|
|
|
print(f"{book}")
|
|
```
|
|
|
|
##### Output
|
|
```
|
|
A Clash of Kings by George R. R. Martin
|
|
```
|
|
|
|
### Sources
|
|
https://www.python.org/dev/peps/pep-0498/
|