Python 字符串格式化%和.format,f格式化字符串的区别是什么?【面试题详解】

今天爱分享给大家带来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"]}')

人已赞赏
Python

Python 什么是列表生成式?【面试题详解】

2020-11-13 13:42:45

Python

Python 单引号、双引号和三引号的区别有哪些?【面试题详解】

2020-11-13 13:52:58

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
'); })();