zoukankan      html  css  js  c++  java
  • 两个 Python 的冷技巧

    记得刚开始工作的时候,老大给我们上 C++ 基础课,告诉我们字符串字面量可以换行(如下代码),感觉真是如梦如幻。

    #include <stdio.h>
    
    int main(int argc, char** argv)
    {
            char* w = "hello"
                    " "
                    "world."
                    ;
            printf("%s", w);
            return 0;
    }
    
    输出:

    hello world.
    后来在写了很久的 Python 以后,才知道 Python 其实也可以的:

    >>> t = ('hello'
    ... ' '
    ... 'world')
    >>> t
    'hello world'
    这个特性很有用,能够把超长的代码优雅地分为几行。记得以前在拼 SQL 语言、写日志条目的时候总为代码行长度超过 78 感到纠结(见我们的编程规范:http://blog.csdn.net/lanphaday/article/details/6601123),现在没有压力啦。


    在写 absolute32(见:http://blog.csdn.net/lanphaday/article/details/6762023)的测试代码的时候,为了让测试代码兼容 Python2.x/3.x 两大版本,引入了一砣丑陋的代码:

    if sys.version < '3':
            exec("chinese = unicode('赖勇浩', 'utf-8')")
    else:
            exec("chinese = '赖勇浩'")
    这是因为在 Python2.x 中
    chinese = '赖勇浩'
    的编码不是 unicode 的,而在 Python3.x 中取消了字符串字面量的前缀 u,所以
    chinese = u'赖勇浩'
    又直接语法错误,当时只好写下了 exec 的代码根据不同的版本来进行编译。后来才知道 Python2.6 中引入了 unicode_literals,可以很方便地写 2.x/3.x 兼容的代码:

    >>> x = '中国'
    >>> x
    '\xe4\xb8\xad\xe5\x9b\xbd'
    >>> from __future__ import unicode_literals
    >>> y = '中国' 
    >>> y
    u'\u4e2d\u56fd'
    这样,我那砣丑代码也可以美化掉啦!

  • 相关阅读:
    python中numpy的用法
    基于逻辑回归识别坐标是否在第一象限
    python变量,函数
    DOM的核心总结
    节点操作
    自定义属性操作
    排他思想及部分案例
    事件基础及操作元素
    获取元素
    DOM 介绍
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154329.html
Copyright © 2011-2022 走看看