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
应该是一个字符串,结果硬是变成了元组。
Python 中一个逗号引发的悲剧的更多相关文章
- SQL实战——04. 查找所有已经分配部门的员工的last_name和first_name以及dept_no (一个逗号引发的血案)
查找所有已经分配部门的员工的last_name和first_name以及dept_noCREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_ ...
- python中一个简单的webserver
python中一个简单的webserver 2013-02-24 15:37:49 分类: Python/Ruby 支持多线程的webserver 1 2 3 4 5 6 7 8 9 10 11 ...
- PHP 中一个 False 引发的问题,差点让公司损失一百万
PHP 中一个 False 引发的问题,差点让公司损失一百万 一.场景描述 上周我一个在金融公司的同学,他在线上写一个 Bug,差点造成公司损失百万.幸好他及时发现了这个问题并修复了.这是一个由 PH ...
- python类中属性逗号引发的类型改变
不注意点了个逗号引发了类型改变 [shangbl@newsvn ~]$ cat test.py class AB1: a="a" class AB12: a="a&quo ...
- Python中的逗号有什么作用?
最近研究python 遇到个逗号的问题 一直没弄明白 今天总算搞清楚了 1.逗号在参数传递中的使用: 这种情况不多说 没有什么不解的地方 就是形参或者实参传递的时候参数之间的逗号 例如def a ...
- python 中使用 global 引发了莫名其妙的问题
哪里出问题了 python 中,使用 global 会将全局变量设为本函数可用.同时,在函数内部访问变量会先本地再全局. 在嵌套函数中,使用 global 会产生不合常理的行为. 上代码: In [9 ...
- python中一个py文件如何调用其他py文件中的类和函数
HelloWorld 文件名称 Hello是类 from HelloWorld import Hello >>> h = Hello() >>> h.hello ...
- python中一个汉字点3个字节? utf-8
今天发现了一个汉字占了3个字节,一开始以为是两个呢,字符串切片时总出现乱码,后来才发现一个中文占3个字节.这才解决了乱码问题 原来 1. utf-8 编码中,一个汉字占三个字节.英文字母是一个占用一 ...
- linux 内核中一个全局变量引发的性能问题
为了调试一个功能,在一个内核模块中,增加了一个全局变量,用来统计自有skb池的申请情况. 因为是临时增加,所以没有考虑性能,一开始只是一个fail的统计,数量不多,也不太考虑是否有计数丢失的情况,毕竟 ...
随机推荐
- API设计风格(RRC、REST、GraphQL、服务端驱动)
API设计风格(RRC.REST.GraphQL.服务端驱动) Web API设计其实是一个挺重要的设计话题,许多公司都会有公司层面的Web API设计规范,几乎所有的项目在详细设计阶段都会进行API ...
- MySQL--限制用户使用资源
在MySQL 5.7及后续版本中,可以按照账号来限制每个账号实际具有的资源限制. 语法: GRANT WITH option, 如: GRANT SELECT ON test.* TO user1@l ...
- streamsets 3.5 的一些新功能
streamsets 3.5 有了一些新的特性以及增强,总之是越来越方便了,详细的可以 查看官方说明,以下简单例举一些比较有意义的. origins 新的pulsar 消费origin jdbc 多表 ...
- smarty 学习 ——smarty 开发环境配置
smarty 对于开发的便利性不用多说了,直接进行开发环境的配置. 1.下载smarty 开发包 直接在官网进行下载即可 2.引用开发核心库 将libs文件中的东西拷贝到工程. smarty.clas ...
- Linux 安装Jdk、mysql、apache、php、tomcat、nginx
Jdk 安装分三步:第一步,上传跟 linux 位数相同的 jdk tar 包,解压:第二步:解压 tar 包,配置环境变量,且 source 一下 /etc/profile:第三步:检查版本 第一步 ...
- FastAdmin 教程草稿大纲
FastAdmin 教程草稿大纲 计划 FastAdmin 教程大纲 FastAdmin 环境搭建 phpStudy 2018 安装 一键 CRUD 教程 环境变量配置 环境安装 命令行安装 列出所需 ...
- FastAdmin 开发第一天:了解 FastAdmin 框架
了解 FastAdmin 框架 后端组件 ThinkPHP 5 EasyWeChat qr-code 前端组件 AdminLTE bootstrap bootstrap-table jquery la ...
- java并发编程 Executor,Executors,ExecutorService,CompletionService,Future,C
使用CompletionService获取多线程返回值 CompletionService和ExecutorCompletionService详解 Java并发编程系列之十五:Executor框架
- tomcat 启动超级慢
今天在新环境里部署tomcat, 刚开始启动很快,关闭之后再启动,却发现启动日志打印到 00:25:14.144 [localhost-startStop-1] INFO o.s.web.conte ...
- [UE4]C++创建对象的三种方式
#include <iostream> using namespace std; class A { private: int n; public: A(int m):n(m) { } ~ ...