关于Python的两个实用冷技巧

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

目前创新互联已为千余家的企业提供了网站建设、域名、虚拟主机、网站托管、服务器托管、企业网站设计、前郭网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

 
 
 
  1. #include 
  2. int main(int argc, char** argv)
  3. {
  4.         char* w = "hello"
  5.                 " "
  6.                 "world."
  7.                 ;
  8.         printf("%s", w);
  9.         return 0;
  10. }

输出:

 
 
 
  1. hello world.

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

 
 
 
  1. >>> t = ('hello'
  2. ... ' '
  3. ... 'world')
  4. >>> t
  5. '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 两大版本,引入了一砣丑陋的代码:

 
 
 
  1. if sys.version < '3':
  2.         exec("chinese = unicode('赖勇浩', 'utf-8')")
  3. else:
  4.         exec("chinese = '赖勇浩'")

这是因为在 Python2.x 中

 
 
 
  1. chinese = '赖勇浩'

的编码不是 unicode 的,而在 Python3.x 中取消了字符串字面量的前缀 u,所以

 
 
 
  1. chinese = u'赖勇浩'

又直接语法错误,当时只好写下了 exec 的代码根据不同的版本来进行编译。后来才知道 Python2.6 中引入了 unicode_literals,可以很方便地写 2.x/3.x 兼容的代码:

 
 
 
  1. >>> x = '中国'
  2. >>> x
  3. '\xe4\xb8\xad\xe5\x9b\xbd'
  4. >>> from __future__ import unicode_literals
  5. >>> y = '中国' 
  6. >>> y
  7. u'\u4e2d\u56fd'

这样,我那砣丑代码也可以美化掉啦!

原文:http://blog.csdn.net/lanphaday/article/details/6793567

当前文章:关于Python的两个实用冷技巧
当前网址:http://www.shufengxianlan.com/qtweb/news6/269256.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联