Print string and integer in python
我一直想知道为什么在Python中开发起来应该很容易且快速,并且您甚至没有指定类型,如果要打印它,就必须将整数转换为字符串? 真烦人。
1
| print"some string"+some_int |
给出TypeError:无法连接'str'和'int'对象
1
| print"some string"+str(some_int) |
没关系。
-
这里有什么问题?
-
如果some_int是整数,则您的代码均无效。 您是第二个意思是str(some_int)吗?
-
OP,请检查您的假设。 您写道:"如果要打印,必须将整数转换为字符串。" 那是不对的。 我打印很多整数,并且我不记得曾经将一个整数转换为字符串。
-
@dandikain:嗯,只是因为您刚刚修复了它。 :-)
-
复制了stackoverflow.com/questions/11559062/
1)因为str+int没有明确,明确的含义。 考虑:
+是将7简化还是将" 5"整数化? 一种方式产生12,另一种方式产生"57"。
2)因为还有其他选择可以更清楚地表达程序员的意图:
1 2 3
| print"5", 7
print"5%d" % 7
print"5{:d}".format(7) |
它们中的每一个都有明确的含义,并且都不对程序员造成沉重的负担。
另外:我永远不会使用"some string"+str(some_int)。 字符串串联是我上面列出的更通用,更易于使用的字符串格式化工具的一种有限情况。
-
x ="5" + 7似乎模棱两可,但str.__add__(7)看起来如此吗? 如果我正在实现str类,那么接受除str之外的其他类型用于连接并在其上调用__str__()似乎并不是没有道理的。 我认为OP有一个正确的观点。