【问题标题】:Print string and integer in python在python中打印字符串和整数
【发布时间】:2016-01-20 20:28:11
【问题描述】:

我一直想知道,为什么在 Python 中,应该是简单快速的开发,你甚至不指定类型,如果你想打印它,你必须将整数转换为字符串?真的很烦。

print "some string"+some_int

产生 TypeError: cannot concatenate 'str' 和 'int' 对象

print "some string"+str(some_int)

没关系。

【问题讨论】:

  • 这里有什么问题?
  • 如果some_int 是一个整数,那么您的代码都不 将起作用。你是说第二个str(some_int)吗?
  • OP,检查你的假设。你写道,“如果你想打印它,你必须将一个整数转换为字符串。”这是不真实的。我打印了很多整数,但我不记得 ever 将一个整数转换为字符串。
  • @dandikain:呃,只是因为你刚刚修复了它。 :-)

标签: python


【解决方案1】:

1) 因为str+int 没有明确、明确的含义。考虑:

x = "5" + 7

应该+ str-ify 7 还是 int-ify "5"?一种方式产生12,另一种产生"57"

2) 因为还有其他更清楚地表达程序员意图的替代方案:

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 有一个有效的观点。
猜你喜欢
  • 2018-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-12
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
相关资源
最近更新 更多