Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢?
自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问题。不信你往下看。
%的劣势:
# 定义一个坐标值 c = (250, 250) # 使用%来格式化 s1 = "敌人坐标:%s" % c
上面的代码很明显会抛出一个如下的TypeError:
TypeError: not all arguments converted during string formatting
像这类格式化的需求我们需要写成下面丑陋的格式才行:
# 定义一个坐标值 c = (250, 250) # 使用%丑陋的格式化... s1 = "敌人坐标:%s" % (c,)
而使用format就不会存在上面的问题:
# 定义一个坐标值 c = (250, 250) # 使用format格式化 s2 = "敌人坐标:{}".format(c)
很显然,上面这一个理由就已经足够让你在以后的项目中使用format了。
在Python3.6中加入了f-strings:
In[2]: name = "Q1mi" In[3]: age = 18 In[4]: f"My name is {name}.I‘m {age}" Out[4]: "My name is Q1mi.I‘m 18"