今天爱分享给大家带来Python 字符串格式化%和.format,f格式化字符串的区别是什么?【面试题详解】,希望能够帮助到大家。
格式化字符串有两种方法:%和format,具体这两种方法有什么区别?请看以下解析。
上面的代码在运行时会抛出一个如下的TypeError。
TypeError: not all arguments converted during string formatting
像这类格式化的需求就需要写成下面的格式:
# 定义一个坐标值
c = (250, 250)
# 使用%格式化
s1 = "坐标: %s" % (c,)
# 使用 format 就不会存在上面的问题
s2 = "坐标: {}".format(c)
print(s2) # 坐标: (250, 250)
一般情况下,使用 % 已经足够满足程序的需求,但是像这种需要在一个位置添加元素或列表类型的代码,最好选择 format 方法。在 format 方法中,{} 表示占位符,如下所示:
# {}表示占位符
print("{},爱老虎".format("zhangsan")) # zhangsan,爱老虎
print("{},{}爱老虎".format("王雷", "李梅")) # 王雷,李梅爱老虎
# 0表示第一个参数的位置
print("{1},{0}爱老虎".format("李梅", "王雷")) # 王雷,李梅爱老虎
Python 3.6 版本开始出现了此新的格式化字符串,f-string 格式化字符串,性能又优于前面两种方式。示例代码如下:
name = "testerzhang"
print(f'Hello {name}.')
print(f'Hello {name.upper()}.')
d = {'id': 1, 'name': 'testerzhang'}
print(f'User[{d["id"]}]: {d["name"]}')