两个 Python 的冷技巧

本文介绍了Python中处理字符串的方法,包括如何优雅地处理超长字符串及实现Python 2.x和3.x版本间的代码兼容技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记得刚开始工作的时候,老大给我们上 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.youkuaiyun.com/lanphaday/article/details/6601123),现在没有压力啦。


在写 absolute32(见:http://blog.youkuaiyun.com/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'这样,我那砣丑代码也可以美化掉啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值