Python 为什么会有一个'+';str()前后
为什么在“str()”和“where”之前和之后都有“+” output=“[”+str(lat)+“,“+str(lng)+”,“+where+”]”输出“ 我知道这是一个有点傻的问题,但请帮忙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)
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个傻瓜:)干杯