Python字符串f-string格式化

Python字符串f-string格式化


介绍与参考

f-string与%-formatting语句和str.format()函数相似,在Python3.6可使用f-string进行字符串格式化容


提示:以下是本篇文章正文内容,下面案例可供参考

一、应用

1.简单实用

# 添加新列
def get_nianyueri(x):
    year,month,day = x["ymd"].split("-")
    return f"{year}年{month}月{day}日"
#apply(函数,轴)
df["中文日期"] = df.apply(get_nianyueri, axis=1)
df["中文日期"]
0      201801011      201801022      201801033      201801044      20180105...     
360    20181227361    20181228362    20181229363    20181230364    20181231日
Name: 中文日期, Length: 365, dtype: object

2.函数调用

  • string的大括号 {} 可以填入表达式或调用函数,Python会求出其结果并填入返回的字符串内:
>>> f'A total number of {24 * 8 + 4}'
'A total number of 196'

>>> f'Complex number {(2 + 2j) / (2 - 3j)}'
'Complex number (-0.15384615384615388+0.7692307692307692j)'

>>> name = 'ERIC'
>>> f'My name is {name.lower()}'
'My name is eric'

>>> import math
>>> f'The answer is {math.log(math.pi)}'
'The answer is 1.1447298858494002'

3.注意事项

  • f-string大括号内所用的引号不能和大括号外的引号定界符冲突, ’ 和 " 区分
  • 大括号外的引号还可以使用 \ 转义,但大括号内不能使用 \ 转义
  • f-string大括号外如果需要显示大括号,则应输入连续两个大括号 {{ }}
  • f-string大括号内不能使用 \ 转义,f-string大括号内根本就不允许出现 \,如果确实需要 转义,则应首先将包含 \ 的内容用一个变量表示,再在f-string大括号内填入变量名
>>> f"newline: {ord('\n')}"
  File "<stdin>", line 1
SyntaxError: f-string expression part cannot include a backslash

>>> newline = ord('\n')
>>> f'newline: {newline}'
'newline: 10'
  • f-string大括号内也可填入lambda表达式,但lambda表达式的 : 会被f-string误认为是表达式与格式描述符之间的分隔符,为避免歧义,需要将lambda表达式置于括号 () 内
>>> f'result is {(lambda x: x ** 2 + 1) (2)}'
'result is 5'
>>> f'result is {(lambda x: x ** 2 + 1) (2):<+7.2f}'
'result is +5.00  '

4.多行f-string

略,详见参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值