Python中文问题举例分析

发布时间:2021-12-01 15:17:44 作者:iii
来源:亿速云 阅读:135

本篇内容介绍了“Python中文问题举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

在这之前,我们先要了解Python中有两种字符串,分别是一般的字符串(每个字符用8 bits表示)和Unicode字符串(每个字符用一个或者多个字节表示)。

它们可以相互转换,有着更为全面的描述,在此我就不再多说什么了。来看下面的代码:

 # -*- coding:gb2312 -*- #必须在***行或者第二行  print "-------------code 1----------------"  a = "中文a我爱你" print a  print a.find("我")  b = a.replace("爱", "喜欢")  print b  print "--------------code 2----------------"  x = "中文a我爱你" y = unicode(x, "gb2312")  print y.encode("gb2312")  print y.find(u"我")  z = y.replace(u"爱", u"喜欢")  print z.encode("gb2312")  print "---------------code 3----------------"  print y

说是遇到非ASCII字符了,并让我们参考pep-0263。PEP-0263(Python Enhancement Proposal)上面说得很清楚了,Python也意识到了国际化问题,并提出了解决方案。根据提案上面的要求,我们有如下代码:

-------------code 1----------------  中文a我爱你  5  中文a我喜欢你  --------------code 2----------------  中文a我爱你  3  中文a我喜欢你  ---------------code 3----------------  Traceback (most recent call last):    File "G:\Downloads\eclipse\workspace\p\src\hello.py", line 16, in <module>     print y  UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

我们可以看到,通过引入Python中文问题声明,我们可以正常地在使用中文了,而且在code 1和2中,控制台也能正确的把中文打印出来。但是,很明显,上面的代码也反映出了不少的问题:
1、code 1 和 2在使用print时采用了不同的方式,1是直接print,而2在print之前先进行编码
2、code 1 和 2中在同样的字符串查找同一个字符“我”,得出的结果不一样(分别是5和3)
3、code 3 中直接打印unicode字符串 y时出现错误(这也是为什么code 2中要先进行编码的原因)

“Python中文问题举例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. Python语法举例分析
  2. Python基础技术举例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:ice版本resize错误调试的示例分析

下一篇:Python系统文件是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》