Python2.6引入了str.format()
方法,其语法与现有的%
运算符略有不同.哪一种更好,适用于什么情况?
Python3.6现在通过语法f"my string"
引入了字符串文字(也称为"f"字符串)的另一种字符串格式化格式.此格式选项是否比其他选项更好?
-
下面使用的每种方法都有相同的结果,那么有什么区别呢?
#!/usr/bin/python sub1 = "python string!" sub2 = "an arg" sub_a = "i am a %s" % sub1 sub_b = "i am a {0}".format(sub1) sub_c = f"i am a {sub1}" arg_a = "with %(kwarg)s!" % {'kwarg':sub2} arg_b = "with {kwarg}!".format(kwarg=sub2) arg_c = f"with {sub2}!" print(sub_a) # "i am a python string!" print(sub_b) # "i am a python string!" print(sub_c) # "i am a python string!" print(arg_a) # "with an arg!" print(arg_b) # "with an arg!" print(arg_c) # "with an arg!"
-
此外,Python中何时会出现字符串格式?例如,如果我的日志(log)记录级别设置为高,我是否仍会因为执行以下
%
个操作而受到攻击?如果是这样,有没有办法避免这种情况?log.debug("some debug info: %s" % some_info)