Skip to content

6 f strings tips


title: 6个Python f-strings的技巧和诀窍 type: story language: python tags: [字符串] cover: sea-view excerpt: Python的f-strings比传统的字符串格式化提供了更易读、更简洁和更不容易出错的方式。它们包含了许多有用的功能,在日常使用中一定会派上用场。让我们来看看其中的一些。

字符串插值

迄今为止,最常用的f-string功能是字符串插值。你只需要将值或变量放在花括号({})中,就可以了。

str_val = '苹果'
num_val = 42

print(f'{num_val} {str_val}') # 42 苹果

变量名

除了获取变量的值,你还可以在值旁边获取它的名称。这在调试时特别有用,可以通过在花括号内的变量名后面添加等号(=)来轻松实现。

请注意,花括号内的空格会被考虑在内,因此在等号周围添加空格可以使结果更易读。

str_val = '苹果'
num_val = 42

```py
num_val = 42

print(f'{num_val:0>5}') # 00042

Float formatting

You can also format floating-point numbers using f-strings. The syntax is similar to the one used with the format() method. You can specify the number of decimal places, the minimum width, and the alignment.

float_val = 3.14159

print(f'{float_val:.2f}') # 3.14

Date formatting

f-strings also support date formatting using the same syntax as the strftime() method. You can specify the format codes inside the curly braces.

import datetime

date_val = datetime.datetime.now()

print(f'{date_val:%Y-%m-%d}') # 2022-01-01

Conditional expressions

You can use conditional expressions inside f-strings to conditionally include values. The syntax is similar to the ternary operator.

num_val = 42

print(f'{num_val} is {"even" if num_val % 2 == 0 else "odd"}') # 42 is even

Attribute access

You can also access attributes of objects inside f-strings using the dot notation.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

person = Person('Alice', 25)

print(f'{person.name} is {person.age} years old') # Alice is 25 years old

Function calls

You can call functions inside f-strings by placing the function call inside the curly braces.

def double(num):
    return num * 2

num_val = 42

print(f'{num_val} doubled is {double(num_val)}') # 42 doubled is 84

此外,f-strings也可以用于格式化 - 因此名称中有f。要为值添加格式,可以添加一个冒号(:),后面跟着一个格式说明符。如果您还想打印变量的名称,也可以与之前的等号结合使用。

数字是一个很好的候选对象。例如,如果您想将数值截断为小数点后两位,可以使用.2f格式说明符。

price_val = 6.12658

print(f'{price_val:.2f}') # 6.13

日期格式化

最后,日期也可以使用格式说明符以与数字相同的方式进行格式化。通常,%Y表示完整的年份,%m表示月份,%d表示月份中的日期。

from datetime import datetime;

date_val = datetime.utcnow()

print(f'{date_val=:%Y-%m-%d}') # date_val=2021-07-09