python 单引号中怎么引用变量 ?

比如:A = 12 B = ‘test : A’ print B 怎么修改结果输出为 test:12
关注者
7
被浏览
53,611

7 个回答

  • 暴力连接
A = 12
B = 'test: ' + str(A)
print(B)

10000 loops, best of 3: 104 µs per loop

速度没问题,变量多的时候写起来不优雅,需要考虑变量类型

A = 12
B = 'test:'
print(' '.join([B, str(A)]))

10000 loops, best of 3: 105 µs per loop

速度没为题,来个十个八个变量也不怕,缺点是格式单一,适合生成面包屑导航之类有固定分割符的字符串,需要考虑变量类型

A = 12
B = 'test:'
print(B, A)

10000 loops, best of 3: 207 µs per loop

写法简单粗暴,不用考虑变量类型,来十个八个变量也不怕,适合有固定分割符的字符串。速度有点慢。

  • 占位符
A = 12
B = 'test: %d' % A
print(B)

10000 loops, best of 3: 104 µs per loop

速度没问题,古老的怀旧感满满的写法,需要考虑变量类型。有通过"%.2f"的写法保留两位小数等功能

A = 12
B = 'test: {}'.format(A)
print(B)

10000 loops, best of 3: 104 µs per loop

速度没问题,比百分号的功能丰富很多,比如{:.2f}保留两位小数,{:,}显示千分符等,传入多个变量时可以用{index}或者{key}的形式控制输出哪一个变量,不用考虑变量类型,就是format比%要多敲好几个字。

A = 12
B = f'test: {A}'
print(B)

10000 loops, best of 3: 104 µs per loop

速度没问题,format的简写方法,是python3.6中的新特性。可读性好,缺点是就向下不兼容。这个还不能满足你的要求的话可以搜索关键字jinja2啦。

用字符串格式化,前面占坑,后面变量去填坑。

>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'
>>> '{}, {}, {}'.format('a', 'b', 'c')  # 2.7+ only
'a, b, c'