Python编程基础:f-字符串格式

本文探讨使用Python f-字符串格式,也称为“格式化字符串文字”。f-string是格式化字符串的一种很好且简单的方法,适用于Python v3.6+。如果你仍然使用.format()方法,必须了解f-字符串。
使用字符串格式的优势之一是能够“插入”并格式化字符串数据中的变量。
Python字符串format()方法 VS. F-字符串
字符串格式的旧方法是使用.format()方法。如下所示,可以将变量插入到字符串类型数据中:
花括号用作变量的占位符。
这些花括号内的名称(例如“a”、“b”)可以是任何内容,它们不一定是a和b,将它们更改为x和y也会起作用。它们的作用类似于关键字参数,因此可以选择将变量插入字符串的位置。

点击查看代码
num='10'
var='apples'
s='I have {a} {b}'.format(a=num,b=var)
print(s)
I have 10 apples

随着Python v3.6的发布,f-字符串变得可用。这种新方法比旧的format()方法更强大、更直观。为了使用f字符串,需要:
1.使用f开始字符串数据,后跟实际字符串。
2.与旧的.format()方法类似,使用花括号{}作为变量的占位符。
3.可以直接在花括号中插入变量。

点击查看代码
s=f'I have {num} {var}'
print(s)
I have 10 apples

数字格式
可以使用f-字符串来操作不同的数字格式,例如控制小数位数、百分比、千位分隔符等。
有时,我们可能需要格式化一个数字,比如保留两位小数:

点击查看代码
pi=3.1415926
s=f'the value of pi is {pi:.2f}'
print(s)

the value of pi is 3.14

也可以将数字格式化为百分比,而不需要先将小数乘以100。

点击查看代码
a=0.1234567
s=f'the percentage is {a:.3%}'
print(s)

the percentage is 12.346% 此外,还可以为数字格式数据包含千位分隔符。注意,不局限于逗号符号--除了额数符号之外,任何东西都可以使用。
点击查看代码
this_num=69420
print(f'this number is {this_num:,}')
print(f'this number is {this_num:_}')

this number is 69,420
this number is 69,420

可以同时使用千位分隔符和小数点。

print(f"this number is {this_num:,.4f}")

要用科学计数法格式化数字,只需要再字符串格式中添加:e(或:E)。要控制小数位,只需要在e或E前面加一个点和一个数字。

点击查看代码
num=1234567890
print(f'{num:e}')
print(f'{num:E}')
print(f'{num:.2e}')

1.234568e+09
1.234568E+09
1.23e+09

格式化datetime对象的字符串表示也很容易。

点击查看代码
import datetime as dt
today=dt.datetime.today()
print(today)
2024-06-18 16:40:51.463672

print(f'today is {today:%Y/%m/%d}')
today is 2024/06/18
将Python f-字符串与原始字符串(r字符串)组合
还可以组合f-字符串和r-字符串。这项计数对于引用计算机上的文件非常有用。
例如,可以将文件路径分解为不同的部分,并使用变量表示路径:

点击查看代码
parent_dir=rf'D:/完美Excel/Python'
subfolder='MyFiles'
file_path='file01.xlsx'
print(rf'{parent_dir}/{subfolder}/{file_path}')
D:/完美Excel/Python/MyFiles/file01.xlsx

文本对齐
可以通过在字符串数据的两侧插入空格来对齐文本
1.要在字符串左侧插入空格,使用:>n
2.要在字符串右侧插入空格,使用:<n
3.右侧插入的另一种可能方式是:n
4.对于中间对齐,使用:^n
空格的数量将取决于选择的n值和字符串的长度。如果n小于字符串的长度,则此格式将无效。

点击查看代码
txt='python'
print(f'{txt:>10}')
print(f'{txt:<10}')
print(f'{txt:10}')
print(f'{txt:^10}')
结果:
点击查看代码
    python
python    
python    
  python  
使用f-字符串调试python代码 如果打印用于调试的代码,f-字符串也可以通过减少我们需要键入的代码来帮助你
点击查看代码
x=100
print(f'{x=}')

x=100

在python f-字符串里使用条件
还可以在f-字符串插入简单的if/else条件。考虑下面的示例:

点击查看代码
pass_mark=50
mark_1=60
mark_2=49
print(f"student 1{' pass' if mark_1>pass_mark else ' fail'}")
print(f"student 2{' pass' if mark_2>pass_mark else ' fail'}")
结果
点击查看代码
student 1 pass
student 2 fail

在f字符串里使用引号
如前一个示例所示,可以在f-字符串中使用引号。唯一的规则是匹配相同类型的开始和结束引号,
即单个开始引号需要有一个匹配的结束引号。与双引号相同,这也意味着我们不能在同一个f-字符串中使用引号两次。
print(f"same quotes won't work:{["item"]}")
结果
SyntaxError: f-string: unmatched '['

计算 &函数/方法
如果将函数放入f-字符串中,则会对其进行求值,这意味着可以使用f-字符串直接显示函数结果。
将其与之前的调试技术相结合

点击查看代码
def add_two(x):
    return x+2
print(f'{add_two(1)=}')

add_two(1)=3

多行f字符串
如果字符串太长,可以使用三个引号""""""而不是单引号将其分成多行。

点击查看代码
txt='this works'
print(f"""this is a long sentence 
           with multiple lines.We
           are using three quotes
        and {txt}""")
结果:
点击查看代码
this is a long sentence
           with multiple lines.We
           are using three quotes
        and this works
posted @ 2024-06-18 17:33  阳光天气  阅读(1175)  评论(0编辑  收藏  举报