Python 中一个逗号引发的悲剧

遇到一个 Python 字符串的坑,记录一下。看看下面这些代码

>>> a = [
...     'foo'
...     'bar',
...     'tree'
... ]
>>>
>>> b = 'foo' 'bar'
>>>
>>> print a
['foobar', 'tree']
>>> print b
foobar
>>>

注意列表 a 的第1个元素后面漏掉了一个 , 这很容易看走眼吧。而且最最关键的竟然是没有语法错误,而且 PyCharm 也没有提示有错误。

查了一下原来这是一个 Feature

只要把两个字符串放在一起,中间有空白或者没有空白,两个字符串自动连接为一个字符串。

也就是说 'foo' + 'bar' 等价于 'foo' 'bar'

再来看另外一个例子,注意第二行后面的逗号

>>> a = {'foo': 'bar'}
>>> b = a.get('foo'),
>>> c = a.get('foo')
>>> print(b)
('bar',)
>>> print(c)
bar
>>>

本来 b 应该是一个字符串,结果硬是变成了元组。

转载于:https://www.cnblogs.com/restran/p/4945804.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值