易截截图软件、单文件、免安装、纯绿色、仅160KB

Python、Unicode和中文[转]


关键字: python
Python、Unicode和中文[转] 
python的中文问题一直是困扰新手的头疼问题,这篇文章将给你详细地讲解一下这方面的知识。当然,几乎可以确定的是,在将来的版本中,python会彻底解决此问题,不用我们这么麻烦了。 
先来看看python的版本: 
>>> import sys 
>>> sys.version 
'2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)]' 
(一) 
用记事本创建一个文件ChineseTest.py,默认ANSI: 
s = "中文" 
print s 
测试一下瞧瞧: 
E:\Project\Python\Test>python ChineseTest.py 
  File "ChineseTest.py", line 1 
SyntaxError: Non-ASCII character '\xd6' in file ChineseTest.py on line 1, but no encoding declared; see http://www.pytho 
n.org/peps/pep-0263.html for details 
偷偷地把文件编码改成UTF-8: 
E:\Project\Python\Test>python ChineseTest.py 
  File "ChineseTest.py", line 1 
SyntaxError: Non-ASCII character '\xe4' in file ChineseTest.py on line 1, but no encoding declared; see http://www.pytho 
n.org/peps/pep-0263.html for details 
无济于事。。。 
既然它提供了网址,那就看看吧。简单地浏览一下,终于知道如果文件里有非ASCII字符,需要在第一行或第二行指定编码声明。把ChineseTest.py文件的编码重新改为ANSI,并加上编码声明: 
# coding=gbk 
s = "中文" 
print s 
再试一下: 
E:\Project\Python\Test>python ChineseTest.py 
中文 
正常咯:) 
(二) 
看一看它的长度: 
# coding=gbk 
s = "中文" 
print len(s) 
结果:4。 
s这里是str类型,所以计算的时候一个中文相当于两个英文字符,因此长度为4。 
我们这样写: 
# coding=gbk 
s = "中文" 
s1 = u"中文" 
s2 = unicode(s, "gbk") #省略参数将用python默认的ASCII来解码 
s3 = s.decode("gbk") #把str转换成unicode是decode,unicode函数作用与之相同 
print len(s1) 
print len(s2) 
print len(s3) 
结果: 


相关文档:

基本数据结构的python实现 堆栈

前言:
最近又想学习python,又想去温习一下算法,于是就想出了这个两不误的方法,^_^
堆栈:
使用python的列表结构,详情可以查看help(list)
#Filename: stack.py
shoplist=['apple','mango','carrot','banana']
shoplist.append('rice')
popitem=shoplist[-1]
del shoplist[-1]
print 'the popitem is',popitem
......

基本数据结构的python实现 队列

队列:
与堆栈类似,通过python的列表类型来实现,参考 help(list)
shoplist=['apple','mango','carrot','banana']
print 'I have',len(shoplist),'items to purchase'
print 'these items are:'
for item in shoplist:
print item,
shoplist.append('rice')
print 'my shopping list is now', shoplist
shoplist. ......

Python语言概览

python
语言概览
 
python
脚本可以处理外部传进来的参数 即sys.argv[] 
,argv[]
的使用与linux
下相同
python
本身是解释语言,可以对输入的式子求值。python
支持的对象如整数都是立即数,此外他支持复数,及对四则运算解释。
ptyhon
支持字符串,放在单/
双引号内,字符串是数组,可以通过[i: ......

深入Python摘要

英文版Dive in python可以在下面找到中文翻译http://linuxtoy.org/docs/dip/toc/index.html
模块的__name__,当模块被import时,其为模块的名字,当模块作为main执行的时候,其为__main__
词典的key是大小写敏感的。
List也支持重载+操作,用于将两个list连接起来,并返回一个List,因此它没有extended执行高效。list也+ ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号