1. 程式人生 > >Python3.6新特性:f-strings格式化輸出

Python3.6新特性:f-strings格式化輸出

特性 python3.6 問題 pytho 字典 lam pre 並且 msg

按照慣例,吟詩一首,蘇軾《江城子·密州出獵》

老夫聊發少年狂,左牽黃,右擎蒼,錦帽貂裘,千騎卷平岡。
為報傾城隨太守,親射虎,看孫郎。
酒酣胸膽尚開張,鬢微霜,又何妨!持節雲中,何日遣馮唐?
會挽雕弓如滿月,西北望,射天狼。

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格式化輸出