Python 为什么会有一个'+';str()前后

Python 为什么会有一个'+';str()前后,python,json,string,concatenation,Python,Json,String,Concatenation,为什么在“str()”和“where”之前和之后都有“+” output=“[”+str(lat)+“,“+str(lng)+”,“+where+”]”输出“ 我知道这是一个有点傻的问题,但请帮忙 Python只会在字符串文本之间自动连接。字符串表达式(如str(something))需要显式连接,python使用+运算符实现了这一点,我猜您会感到困惑,因为乍一看,代码行似乎正在构建一个包含三项的列表,在语法上,用逗号分隔项目,用方括号括起来。类似这样的代码 output = [str(lat)

为什么在“str()”和“where”之前和之后都有“+”

output=“[”+str(lat)+“,“+str(lng)+”,“+where+”]”输出“

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


Python只会在字符串文本之间自动连接。字符串表达式(如
str(something)
)需要显式连接,python使用+运算符实现了这一点,我猜您会感到困惑,因为乍一看,代码行似乎正在构建一个包含三项的列表,在语法上,用逗号分隔项目,用方括号括起来。类似这样的代码

output = [str(lat), str(lng), where]
您实际拥有的是一行代码,它构建了一个字符串(通过串联),其中包含:

  • 一个大括号,
    “[”
  • 纬度,作为字符串
    str(lat)
  • 逗号,
    ,“
  • 经度,作为字符串
    str(lng)
  • 逗号和撇号,
    ,“
  • 可能已经是字符串的位置,
    where
  • 另一个撇号和右大括号
    “]”

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

基本上是通过字符[“plus”将lat变量所包含的内容转换为字符串“plus”来形成字符串逗号字符加上lng字符所具有的任何字符等。它只是将字符和字符串组合成一个最终的字符串。否则编译器应该如何知道将它们关联起来?那么,为什么在
3+4+5
4
前后都有一个
+
呢?顺便说一句,编写
输出=“[%f,%f',%s']”可能会更简洁一些(lat,lon,where)
假设
lat
lon
是浮点,而
where
是字符串。为什么所有的反对票都被否决了?谢谢SchighSchagh:)虽然我知道串接是如何工作的,但我还是被str(lat)前面的“+”和where后面的“+”甩了一甩。谢谢你3个傻瓜:)干杯