遇到一个 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 应该是一个字符串,结果硬是变成了元组。

Python 中一个逗号引发的悲剧的更多相关文章

  1. SQL实战——04. 查找所有已经分配部门的员工的last_name和first_name以及dept_no (一个逗号引发的血案)

    查找所有已经分配部门的员工的last_name和first_name以及dept_noCREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_ ...

  2. python中一个简单的webserver

     python中一个简单的webserver 2013-02-24 15:37:49 分类: Python/Ruby 支持多线程的webserver   1 2 3 4 5 6 7 8 9 10 11 ...

  3. PHP 中一个 False 引发的问题,差点让公司损失一百万

    PHP 中一个 False 引发的问题,差点让公司损失一百万 一.场景描述 上周我一个在金融公司的同学,他在线上写一个 Bug,差点造成公司损失百万.幸好他及时发现了这个问题并修复了.这是一个由 PH ...

  4. python类中属性逗号引发的类型改变

    不注意点了个逗号引发了类型改变 [shangbl@newsvn ~]$ cat test.py class AB1: a="a" class AB12: a="a&quo ...

  5. Python中的逗号有什么作用?

    最近研究python  遇到个逗号的问题 一直没弄明白 今天总算搞清楚了 1.逗号在参数传递中的使用: 这种情况不多说  没有什么不解的地方 就是形参或者实参传递的时候参数之间的逗号 例如def  a ...

  6. python 中使用 global 引发了莫名其妙的问题

    哪里出问题了 python 中,使用 global 会将全局变量设为本函数可用.同时,在函数内部访问变量会先本地再全局. 在嵌套函数中,使用 global 会产生不合常理的行为. 上代码: In [9 ...

  7. python中一个py文件如何调用其他py文件中的类和函数

    HelloWorld  文件名称  Hello是类 from HelloWorld import Hello >>> h = Hello() >>> h.hello ...

  8. python中一个汉字点3个字节? utf-8

    今天发现了一个汉字占了3个字节,一开始以为是两个呢,字符串切片时总出现乱码,后来才发现一个中文占3个字节.这才解决了乱码问题 原来  1. utf-8 编码中,一个汉字占三个字节.英文字母是一个占用一 ...

  9. linux 内核中一个全局变量引发的性能问题

    为了调试一个功能,在一个内核模块中,增加了一个全局变量,用来统计自有skb池的申请情况. 因为是临时增加,所以没有考虑性能,一开始只是一个fail的统计,数量不多,也不太考虑是否有计数丢失的情况,毕竟 ...

随机推荐

  1. API设计风格(RRC、REST、GraphQL、服务端驱动)

    API设计风格(RRC.REST.GraphQL.服务端驱动) Web API设计其实是一个挺重要的设计话题,许多公司都会有公司层面的Web API设计规范,几乎所有的项目在详细设计阶段都会进行API ...

  2. MySQL--限制用户使用资源

    在MySQL 5.7及后续版本中,可以按照账号来限制每个账号实际具有的资源限制. 语法: GRANT WITH option, 如: GRANT SELECT ON test.* TO user1@l ...

  3. streamsets 3.5 的一些新功能

    streamsets 3.5 有了一些新的特性以及增强,总之是越来越方便了,详细的可以 查看官方说明,以下简单例举一些比较有意义的. origins 新的pulsar 消费origin jdbc 多表 ...

  4. smarty 学习 ——smarty 开发环境配置

    smarty 对于开发的便利性不用多说了,直接进行开发环境的配置. 1.下载smarty 开发包 直接在官网进行下载即可 2.引用开发核心库 将libs文件中的东西拷贝到工程. smarty.clas ...

  5. Linux 安装Jdk、mysql、apache、php、tomcat、nginx

    Jdk 安装分三步:第一步,上传跟 linux 位数相同的 jdk tar 包,解压:第二步:解压 tar 包,配置环境变量,且 source 一下 /etc/profile:第三步:检查版本 第一步 ...

  6. FastAdmin 教程草稿大纲

    FastAdmin 教程草稿大纲 计划 FastAdmin 教程大纲 FastAdmin 环境搭建 phpStudy 2018 安装 一键 CRUD 教程 环境变量配置 环境安装 命令行安装 列出所需 ...

  7. FastAdmin 开发第一天:了解 FastAdmin 框架

    了解 FastAdmin 框架 后端组件 ThinkPHP 5 EasyWeChat qr-code 前端组件 AdminLTE bootstrap bootstrap-table jquery la ...

  8. java并发编程 Executor,Executors,ExecutorService,CompletionService,Future,C

    使用CompletionService获取多线程返回值 CompletionService和ExecutorCompletionService详解 Java并发编程系列之十五:Executor框架

  9. tomcat 启动超级慢

    今天在新环境里部署tomcat, 刚开始启动很快,关闭之后再启动,却发现启动日志打印到 00:25:14.144 [localhost-startStop-1] INFO  o.s.web.conte ...

  10. [UE4]C++创建对象的三种方式

    #include <iostream> using namespace std; class A { private: int n; public: A(int m):n(m) { } ~ ...