1. 对比Python字符串与整数拼接的三种方式的执行效率
对于一个整形 i=5
和 字符串 "Hello"
,如果要将其拼接成新字符串,可以有如下三种方式:
"Hello" + str(i)
"Hello%d" % i
"Hello{}".format(i)
通常我喜欢用第一种,但后来看别人写的代码,发现大佬基本都喜欢用第二种,于是我测试了这三种的执行效率,如下:
import time
def useStr():
start_time = time.time()
for i in range(50000):
new_str = "Hello" + str(i)
return (time.time()-start_time)
def usePercent():
start_time = time.time()
for i in range(50000):
new_str = "Hello%d" % i
return (time.time()-start_time)
def useFormat():
start_time = time.time()
for i in range(50000):
new_str = "Hello{}".format(i)
return (time.time()-start_time)
分别执行这三个函数,结果如下:
可以看出,usePercent > useStr > useFormat
所以,当遇到字符串与整数、浮点数等拼接的时候,使用第二种方式,如:
"result: %d, %f" % (12, 0.35)
2. 当字符串使用format函数时带花括号/大括号
如果字符串中想插入变量,则可使用format函数,如:
print("姓名:{name}, 学号:{id}".format(name="Kevin", id="123"))
但当字符串中原本就有花括号时,如:
print("if ({score} > 60) { print('及格'); }".format(score=80))
,这样写会报错,使用转译符号是无效的(如\{
),这是需要两个大括号,即:print("if ({score} > 60) {{ print('及格'); }}".format(score=80))