1、 Python中文编码问题
Python中文编码问题!
今天闲来无事,试着使用Python语言开发一个商品信
息管理系统,刚声明了一个变量,就报了一堆错误,
真是郁闷啊!代码如下:
_proName='联想笔记本' print
_proName
运行代码出错,错误为:SyntaxError: Non-ASCII
character 'xc1' in file 11.py on line 1, but
no encoding declared;
see
details 【解决办法】字符串在Python内部的表示是
Unicode编码。在做编码转换时,通常需要以Unicode
作为中间编码,即先将其他编码的字符串解码
(decode)成Unicode,再从Unicode编码(encode)成另
一种编码。
decode()函数的作用就是将其他编码的字符串转换成
Unicode编码,例如str1.decode ('gb2312'),表示将
gb2312编码的字符串str1转换成Unicode编码。
encode()函数的作用是将Unicode编码转换成其他编码
的字符串,例如str2.encode('gb2312'),表示将
Unicode编码的字符串str2转换成gb2312编码。转换时
,一定要先搞明白字符串是什么编码,然后使用
decode()函数将字符串编码改为Unicode编码,然后再
使用encode()函数将编码改为其他编码格式。如果是
在UTF8的文件中,该字符串就是UTF8编码;如果在
gb2312编码的文件中,则其编码为gb2312。
2、Python中单引号、双引号和三引号的区别:先说1双引号与3个双引号的区别,双引号所表示的字
符串通常要写成一行
如:
s1 = "hello,world"
如果要写成多行,那么就要使用 (“连行符”)吧,
如
s2 = "hello,
world"
s2与s1是一样的。如果你用3个双引号的话,就可以直
接写了,如下:
s3 = """hello,
world,
hahaha.""",那么s3实际上就
是"hello,nworld,nhahaha.", 注意“n”,所以,
如果你的字符串里n很多,你又不想在字符串中用n
的话,那么就可以使用3个双
引号。而且使用3个双引号还可以在字符串中增加注释
,如下:
s3 = """hello, #hoho, this is hello, 在3个双引
号的字符串内可以有注释哦
world, #hoho, this is world
hahaha."""
这就是3个双引号和1个双引号表示字符串的区别了,3
个双引号与1个单引号的区别也
是和这个一样的,实际上python支持单引号是有原因
的,下面我来比较1个单引号和
1个双引号的区别。
当我用单引号来表示一个字符串时,如果要表示
Let's go 这个字符串,必须这样:
s4 = 'Let's go',注意没有,字符串中有一个',而
字符串又是用'来表示,所以
这个时候就要使用转义符 (,转义符应该知道吧
), 如果你的字符串中有一大堆
的转义符,看起来肯定不舒服,python也很好的解决
了这个问题,如下:
s5 = "Let's go"
这时,我们看,python知道你是用 " 来表示字符串,
所以python就把字符串中的那
个单引号 ' , 当成普通的字符处理了,是不是很简单
。
对于双引号,也是一样的,下面举个例子
s6 = 'I realy like "python"!'
这就是单引号和双引号都可以表示字符串的原因了