Python3.6新特性:f-strings格式化输出
Posted suxianglun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3.6新特性:f-strings格式化输出相关的知识,希望对你有一定的参考价值。
按照惯例,吟诗一首,苏轼《江城子·密州出猎》
老夫聊发少年狂,左牵黄,右擎苍,锦帽貂裘,千骑卷平冈。
为报倾城随太守,亲射虎,看孙郎。
酒酣胸胆尚开张,鬓微霜,又何妨!持节云中,何日遣冯唐?
会挽雕弓如满月,西北望,射天狼。
f-strings 是python3.6开始加入标准库的格式化输出新的写法,这个格式化输出比之前的%s 或者 format 效率高并且更加简化,非常的好用,以后再用格式化输出选它绝对没有错。
1、简单使用
name = 'allen'
age = 18
sex = '男'
msg_f = f'我的名字叫:{name},我今年{age}岁,我是{sex}生'
msg_F = F'我的名字叫:{name},我今年{age}岁,我是{sex}生'
print(msg_f)
print(msg_F)
结果:
我的名字叫:allen,我今年18岁,我是男生
我的名字叫:allen,我今年18岁,我是男生
是不是阅读代码的时候很清晰
2、结合表达式使用
#运算、转换
res = f'我的名字叫:{name.upper()},我今年{age + 1}岁,我是{sex}生'
print(res)
# 字典
person = {'name': name, 'age': age}
res = f"i am {person['name']}, my age is {person['age']}"
print(res)
结果:
我的名字叫:ALLEN,我今年19岁,我是男生
i am allen, my age is 18
3.结合函数使用
def fun(a, b):
return a + b
a = 2
b = 3
msg = f'2+3={fun(a, b)}'
print(msg)
结果:
2+3=5
4.多行使用
name = 'allen'
age = 18
sex = '男'
res = f'Hi {name}.' f'You are {age} years old.' f'You are {sex}'
print(res)
结果:
Hi allen.You are 18 years old.You are 男
4.结合lambda使用
! , : { } ;这些标点不能出现在{} 这里面。
比如:print(f‘{;12}‘) 就会报错
所以使用lambda 表达式会出现一些问题。
解决方式:可将lambda嵌套在圆括号里面解决此问题。
x = 5
print(f'{(lambda x: x + 2)(x)}') # 7
以上是关于Python3.6新特性:f-strings格式化输出的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 格式(f-string)字符串中,!r 是啥意思? [复制]