【问题标题】:Why is there a '+' before and after the str()为什么 str() 前后都有一个“+”
【发布时间】:2016-04-25 20:16:03
【问题描述】:

为什么“str()”和“where”前后都有一个'+'

输出 = "["+str(lat)+","+str(lng)+", '"+where+"']"

我知道这是一个有点愚蠢的问题,但请帮忙!

干杯

【问题讨论】:

  • 你基本上是由字符 ["plus" 无论 lat 变量有什么组成一个字符串,变成一个字符串 "plus" 一个逗号字符加上任何 lng 字符等等。它只是将字符和字符串组合到形成一个最终的字符串。
  • 编译器应该如何知道如何连接它们?
  • 嗯,为什么3 + 4 + 5中的4前后都有一个+
  • 顺便说一句,假设latlon 是浮点数并且where 是字符串,那么写output = "[%f,%f,'%s']" % (lat, lon, where) 可能会更简洁。
  • 为什么所有的反对票?

标签: python json string concatenation


【解决方案1】:

Python 仅在字符串文字之间自动连接。字符串表达式(如str(something))需要显式连接,python 使用 + 操作符

【讨论】:

  • 谢谢 3Doubloons :) Cheersx
【解决方案2】:

我猜你会感到困惑,因为乍一看,这行代码看起来像是在构建一个包含三个项目的列表,在语法上通过逗号分隔项目并用方括号括起来来表示。类似的代码看起来像

output = [str(lat), str(lng), where]

您实际上拥有的是一行代码,它构建了一个包含以下内容的字符串(通过连接):

  • 一个开括号,"["
  • 纬度,作为字符串str(lat)
  • 逗号,","
  • 经度,作为字符串str(lng)
  • 逗号和撇号,",'"
  • 位置,大概已经是一个字符串,where
  • 另一个撇号和右大括号"']"

所有这些都是字符串,+ 运算符将它们连接在一起。

【讨论】:

  • 谢谢 SchighSchagh :) 虽然我知道串联是如何工作的,但我对 str(lat) 之前和 where 之后的“+”有点失望..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-08
  • 2020-08-25
  • 2017-06-23
  • 1970-01-01
  • 2012-01-31
相关资源
最近更新 更多