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】
- 引号
单、双、仨引号都是可以的,但是要注意内外要不同的。
若内部无法避免要使用外引号一样的,加 “\”
- 引号
- 大括号 { }
f"这样打印的米有{'大括号'}"
f"这样才会有{{'大括号'}}哦"
网友评论