Python 使用字符串格式化程序进行转换
我正在使用Python 2.7.6。我今天偶然发现了这个 我的意思是通过格式化程序将整数转换为字符串。像这样:Python 使用字符串格式化程序进行转换,python,string,python-2.7,string-formatting,Python,String,Python 2.7,String Formatting,我正在使用Python 2.7.6。我今天偶然发现了这个 我的意思是通过格式化程序将整数转换为字符串。像这样: a = 50 b = "%d" % (a) 然而,我却这样做了 a = 50 b = "%s" % (a) 它也运行良好。我不明白这是怎么发生的。这里发生了双重转换吗 确切地说,%s如何接受一个整数而仍然不抛出任何错误?%s%%(a)调用a的\u str\u方法 您不需要使用“%d”%(a)将整数转换为字符串,只需执行str(a) 但是,使用“%d”%(a)将确保a可转换为整数,例
a = 50
b = "%d" % (a)
然而,我却这样做了
a = 50
b = "%s" % (a)
它也运行良好。我不明白这是怎么发生的。这里发生了双重转换吗
确切地说,%s
如何接受一个整数而仍然不抛出任何错误?%s%%(a)
调用a
的\u str\u
方法
您不需要使用“%d”%(a)
将整数转换为字符串,只需执行str(a)
但是,使用“%d”%(a)
将确保a可转换为整数,例如“%d”%“hello world”
将不起作用。%s”%(a)
调用的str\uuuuuuuuuuuu
方法
您不需要使用“%d”%(a)
将整数转换为字符串,只需执行str(a)
但是,使用“%d”%(a)
将确保a可转换为整数,例如“%d”%“hello world”
将不起作用。%s”%(a)
调用的str\uuuuuuuuuuuu
方法
您不需要使用“%d”%(a)
将整数转换为字符串,只需执行str(a)
但是,使用“%d”%(a)
将确保a可转换为整数,例如“%d”%“hello world”
将不起作用。%s”%(a)
调用的str\uuuuuuuuuuuu
方法
您不需要使用“%d”%(a)
将整数转换为字符串,只需执行str(a)
但是,使用“%d”%(a)
将确保a可转换为整数,例如“%d”%“hello world”
将不起作用。来自:
转换类型为:
…
's'|字符串(使用str()转换任何Python对象)
所以基本上它调用str(a)
,正如horns所说。来自:
转换类型为:
…
's'|字符串(使用str()转换任何Python对象)
所以基本上它调用str(a)
,正如horns所说。来自:
转换类型为:
…
's'|字符串(使用str()转换任何Python对象)
所以基本上它调用str(a)
,正如horns所说。来自:
转换类型为:…
's'|字符串(使用str()转换任何Python对象)
所以基本上它调用
str(a)
,正如horns所说。因为整数有一个定义良好的\uuuu str\uuuu
方法。这是否意味着我不需要在打印语句中使用%d
?不,您应该只使用%d
。首先,对于正在阅读您的代码的人来说,这是很清楚的,如果有可能传入其他类型的对象而不是整数(%s
将适用于任何对象),也会引发错误。其次,例如填充0:'%020d'%2
和'%020s'%2
将返回不同的输出。这是%d
的一个很好的用例。谢谢…因为整数有一个定义良好的\uuu str\uuu
方法。这是否意味着我不需要对打印语句使用%d
?不,您应该只使用%d
。首先,对于正在阅读您的代码的人来说,这是很清楚的,如果有可能传入其他类型的对象而不是整数(%s
将适用于任何对象),也会引发错误。其次,例如填充0:'%020d'%2
和'%020s'%2
将返回不同的输出。这是%d
的一个很好的用例。谢谢…因为整数有一个定义良好的\uuu str\uuu
方法。这是否意味着我不需要对打印语句使用%d
?不,您应该只使用%d
。首先,对于正在阅读您的代码的人来说,这是很清楚的,如果有可能传入其他类型的对象而不是整数(%s
将适用于任何对象),也会引发错误。其次,例如填充0:'%020d'%2
和'%020s'%2
将返回不同的输出。这是%d
的一个很好的用例。谢谢…因为整数有一个定义良好的\uuu str\uuu
方法。这是否意味着我不需要对打印语句使用%d
?不,您应该只使用%d
。首先,对于正在阅读您的代码的人来说,这是很清楚的,如果有可能传入其他类型的对象而不是整数(%s
将适用于任何对象),也会引发错误。其次,例如填充0:'%020d'%2
和'%020s'%2
将返回不同的输出。这是%d
的一个很好的用例。谢谢…我用它来打印报表。否则,我将使用str(a)
,不会遇到这种情况:-)它是否像%d%%(a)
更像str(int(a))
?%d%%(a)
的逻辑是。简短回答:如果a
是非长非整数类型,它会在呈现最终字符串之前尝试转换为整数。非数字类型在未尝试转换的情况下被拒绝。我将其用于打印语句。否则,我将使用str(a)
,不会遇到这种情况:-)它是否像%d%%(a)
更像str(int(a))
?%d%%(a)
的逻辑是。简短回答:如果a
是非长非整数类型,它会在呈现最终字符串之前尝试转换为整数。非数字类型在未尝试转换的情况下被拒绝。我将其用于打印语句。否则,我将使用str(a)
,不会遇到这种情况:-)它是否像%d%%(a)
更像str(int(a))
?%d%%(a)
的逻辑是。简短回答:如果