• 2015-04-23

    Python 二进制, 十进制, 十六进制之间转换

    Views: 12686 | No Comments
    bin()
    hex()
    ord()
    chr()
    0x12
    0b1001
    
    Posted by ideawu at 2015-04-23 15:43:28
  • 2012-07-24

    Cpy是如何打败Python的

    Views: 43945 | 48 Comments

    Python 语言的初学者, 特别是"惊奇者"(也就是那种第一眼就被毫无意义的某些特性吸引, 之后持续说服自己的人)认为 Python 不需要 C 语言的 for 语句, 因为他们能用优雅的 Python for 来代替类 C 的 for.

    Cpy 的循环方式:

    for(i=s; i<num; i+=step){
    }
    

    Python 的循环方式:

    for i in range(num)[s:e:step]:
    

    最近, 我写了一个循环 100000000 遍的代码, 不幸的是(也正是所预计的), Python 把机器内存吃光了, 并让我的 Windows 报虚拟内存不足的错误. 可怜的 Python 只能被操作系统无情地 kill 掉而不给任何机会.

    而 Cpy 的循环却毫无压力, 只占用了很小的内存.

    Posted by ideawu at 2012-07-24 12:17:20 Tags:
  • 2012-07-21

    众所期待 – 真正的类C通用型脚本编程语言出世了!

    Views: 36564 | 34 Comments

    虽然是借鉴了C语言的语法, 使用了Python语言的模型和运行环境, 但它是一个真正的*中国人自己完全自主发明创造的拥有自主知识产权的*(^_^)通用型脚本动态脚本编程语言, 而且是一个21世纪的编程语言, 在2012年这个世界末日之年正式诞生!

    它能做什么?

    它是通用型编程语言, 是一种动态语言, 是一种脚本语言, 可以用来做日常的文本处理, 也可以用来开发网络服务器和客户端, 可以用来做企业级开发... 总之, 只要Python能做的, 它就能做. 它和Python唯一的不同就是: 它是类C语法的! 这就避免了Python那种悬空的摇摇欲坠的混乱的代码风格的缺点, 有助于大型项目代码的开发.

    而且, 它能复用所有的Python内置模块和所有你写出来的Python代码, 你只需要简单的import它们即可.

    先来一个简洁的的例子吊一下你的胃口:
    Continue reading »

    Posted by ideawu at 2012-07-21 12:57:12 Tags:
  • 2012-07-15

    用C语法来写Python代码

    Views: 27176 | 11 Comments

    我认为 Python 不错, 因为作为脚本语言和动态语言, 它真的无可替代. 能作为通用用途的脚本语言本来就少 - PHP 主要用作 web 开发, gc 不成熟; Perl 算冷门, Ruby 等的语法就更加不堪入目了; Java/C# 需要编译且静态类型; JavaScript 主要在浏览器宿主中. 另外, Python 非常流行, 库很全.

    但是, 我决不认为 Python 的语法很优雅. 用缩进来表示区块的方法, 只对于少量代码才是优雅的, 当代码区块超过10行或者代码文件超过100行时, 缩进常常让你眼睛模糊, 这时就一点也不优雅了. 而且, 缺少了花括号, Python 的匿名函数和 lambda 表达式就是一项残废的鸡肋功能, 我怀疑是否真有人使用来虐待自己.

    前面也讲过, Python 非原始类型的函数默认参数其实相当于函数的静态变量, 这个语法负作用对初学者和仅仅把 Python 当工具的开发者是一个坑.

    另外, Python 里类函数的声明中的"self"也是毫无意义, 何不隐含"this", 并且强制要求使用类成员时必须带"this."呢? 而且, 调用父类方法的方式也是让人无可奈何.

    如果有这样的一种脚本语言(动态语言), 它继承了C的语法, 吸取了 Java 和 JavaScript 对 C 的改进部分, 同时使用 Python 引擎, 那将会是一种非常舒服的语言.

    可以使用一个编译器, 把这样语法的的代码编译成 Python 代码, 然后用 Python 执行器来执行, 这样很快就能实现. 我会这么干的. 项目地址: https://code.google.com/p/cpy-scripting-language/

    Posted by ideawu at 2012-07-15 14:29:22
  • 2012-07-10

    Python函数默认参数导致的BUG

    Views: 20901 | 7 Comments

    最近在一个多线程网络服务器程序中, 发现数据经常错乱, 而且, 错乱的数据是结构化的, 并不是字符串错乱. 最后, 才发现是发送函数使用了默认参数, 而且参数的类型不是原始类型, 而是一个列表.

    可以这样重现:

    def oh_my_god(a=[]):
    	a.append(1)
    	print a
    
    oh_my_god()
    oh_my_god()
    oh_my_god()
    

    输出:

    [1]
    [1, 1]
    [1, 1, 1]
    

    这一切的原因是由于Python的函数定义也是一个对象, 每一次函数调用都是调用同一个对象, 而函数参数则是这个对象的一些属性! 调用函数时, 先获取函数对象的属性, 判断是否有默认值.

    那就这样说吧: 本质上, Python不支持函数默认参数为非原始类型! 因为非原始类型的默认参数被当作C语言的函数内静态变量. 也怪我没注意看手册里的"important warning"...

    Posted by ideawu at 2012-07-10 16:59:36
  • 2012-06-27

    Python时间格式化时间戳毫秒

    Views: 59490 | No Comments

    格式化当前时间:

    import datetime
    datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    

    精确到毫秒:

    datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
    

    当前时间戳:

    import time
    time.time()
    
    Posted by ideawu at 2012-06-27 16:42:57
|<<<123>>>| 1/3 Pages, 13 Results.