此代码:
bounding_box = (
-122.43687629699707, 37.743774801147126
-122.3822021484375, 37.80123932755579
)
产生以下值:
(-122.43687629699707, -84.63842734729037, 37.80123932755579)
有三个值,因为我忘记了第一行的尾随逗号。令人惊讶的是,Python接受了这一点并将第二个和第三个数字加在一起!
这是string literal concatenation,但对于数字?为什么这会成为理想的行为?
答案 0 :(得分:10)
发生的事情很简单。在以下作业中
bounding_box = (
-122.43687629699707, 37.743774801147126
-122.3822021484375, 37.80123932755579
)
相当于
bounding_box = (-122.43687629699707, **37.743774801147126-122.3822021484375**, 37.80123932755579)
因此,这两个值正在被减去,因此产生一个3元组。
答案 1 :(得分:3)
没有换行符,为了清晰起见,请删除小数:
bounding_box = (-122, 37 - 122, 37 )
换句话说,本来应该是逗号然后是一元减号被解析为减法运算符。
答案 2 :(得分:0)
你有换行符,但没有新的缩进。它不会抛出错误,因为没有缩进问题,并且在进行减法时甚至不会确认换行符。
如果您尝试将所有文字保留在窗口内,该怎么办?值之间的分隔符是逗号,而不是换行符。这就是为什么这是理想的行为。