Python2比较字符串和整型

在上周遇到的一个线上问题,最后定位到Python2在比较String和Integer的时候和预期不一致,示例如下:

1
2
3
4
5
Python 2.7.11 (default, Jan 22 2016, 08:28:37)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 6 < '4'
True

还是依靠神器stackoverflow,直接找到答案http://stackoverflow.com/questions/3270680/how-does-python-compare-string-and-int

Python2官方解答:https://docs.python.org/2/library/stdtypes.html#comparisons

英文的解释如下:

CPython implementation detail: Objects of different types except numbers are ordered by their type names; objects of the same types that don’t support proper comparison are ordered by their address.

中文翻译

非数字类型的不同类型的实例进行比较顺序依赖于类型的名字(例如Integer < String);不支持比较的相同类型的实例比较顺序依赖于实例的地址

好在Python3的时候禁止了这种比较,不同类型之间不能进行比较。

Docker学习笔记之二:运行并创建镜像(Mac)

Docker运行镜像

在上一篇Docker学习笔记之一:简介和安装(Mac)文章中里面提到了运行

1
docker run hello-world

实际上这时已经运行了hello-world这个镜像,其他的镜像可以在Docker Hub中寻找,首先需要注册账号,然后搜索镜像名称,比如docker/whalesay,这个是官方网站的一个demo。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ docker run docker/whalesay cowsay boo
_____
< boo >
-----
\
\
\
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/

Redis学习笔记之一:简介和安装(Mac)

Redis简介

Redis是一个开源的内存中的数据结构存储系统,同时也是一个高性能的key-value数据库,和memory cache相比,Redis支持的value数据类型更多,包括字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Crontab中问号?的作用

在工作中遇到了一个小问题,关于crontab中的星号*和问号?之间的区别。因为平时用到星号是最多的,所以对问号突然一时想不起来了,因为这个东西和正则表达式要是和正则表达式混在一起记忆就很难理解。