可读性贼好的字符串格式化_f-string

0. Background

字符串处理我一直是没用到太多,
%和format的用法感觉都不是很顺畅,把文字段落和变量割裂开了。
可读性也不好,而且总是记不住= =
突然发现了 f-string 的用法(python3.6版本后可用)感觉可以忘记一切%和format了

1. 先回顾一下Format和%

1.1 Format功能还挺多,= = 但是我都用不着

"My name is {}.".format("辰雨蒋")
"Hello {0}, my name is {1}".format("辰雨蒋","python")
"Hey guys, my name is {name}".format(name="小可爱")
 -------------output------------- 
My name is 辰雨蒋.
Hello 辰雨蒋, my name is python
Hey guys, my name is 小可爱

对datetime格式的数据进行格式化(这个还挺好)

from datetime import datetime
date = datetime(2018, 5, 19, 21, 00)
"{:%Y-%m-%d}".format(date)
"{:%H:%M}".format(date)

配合字典用

jyc = {"name": "Monica", "age": 25}
"My name is {someone[name]} and my age is {someone[age]}".format(someone=jyc)
 -------------output------------- 
My name is Monica and my age is 25

1.2 %可读性不是太好

"Hello, %s %s. You are %s. You are a %s. You were a member of %s." % (first_name, last_name, age, profession, affiliation)

2. 来对比看看f-string

【可读性超好】 在一定程度上和 .format是有点像的,但是比较简单,

name = "辰雨蒋"
language = "python"
# 如果用.format格式:
"Hello {0}, I'm using {1}".format(name,language)   
# 用f-string  (此处f也可以用大写F)
f“Hello {name}, I'm using {language}” 
# 注意此处单双引号不能一样哦

【{ }直接调用函数、对象方法】

f"my name is {some_funciont(name)}"

【一些需要注意的小Tips】

    1. 引号
      单、双、仨引号都是可以的,但是要注意内外要不同的。
      若内部无法避免要使用外引号一样的,加 “\”
    1. 大括号 { }
f"这样打印的米有{'大括号'}"
f"这样才会有{{'大括号'}}哦"
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容