python print中文乱码问题 win10 Python2

Python018

python print中文乱码问题 win10 Python2,第1张

因为windows默认的编码方式是GBK,python文件保存时使用了utf-8,在读取时,python使用GBK的编码表去解utf-8编码的字节码,因为GBK与UTF-8编码不兼容,自然出现了乱码问题

解决方法:

1.直接使用 u'是' 形式,指明以unicode编码,解码方式会以顶部 #coding定义的编码方式,如果不写,以操作系统当前编码方法,建议写上#coding,因为要让操作系统编码和源文件编码经常会不一样。推荐使用这种方式

2.输出时指定解码方法  print '是'.decode("utf8") ,必须和保存的编码一致,忽略#coding的定义

3.将#coding 和保存编码改为和操作系统一样的编码,就可以直接print '是' 正常输出,也不推荐,因为需要事先知道操作系统编码,复制到其他电脑上,操作系统编码不一样就会出错

#coding=gbk

print u'是' #方法1

print '是'.decode("gbk") #方法2

print '是' #方法3

注意:

#coding指明的编码必须和保存的编码一样,不然1,3方法都会产生错误,原因也是保存编码和读取编码不一致。一般IDE能够自动根据#coding保存文件

python unicode编码:

下面的代码创建了一个Unicode字符串,用UTF-8编码器将它编码,然后写入到一个文件中去,接着把数据从文件中读回来,解码成Unicode字符串对象,最后,打印出Unicode字符串,用以确认程序正确地运行。

在Linux中编写,在VIM中输入如下代码,保存为uniFile.py

# /home/xiaopeng/python/code/uniFile.py

'''

An example of reading and writing Unicode strings:Writes

a Unicode string to a file in utf-8 and reads it back in

'''

CODEC = 'utf-8' 编码方式

FILE = 'unicode.txt' 要存的文件名

hello_out = u"Hello world\n" 创建了一个Unicode格式的字符串

bytes_out = hello_out.encode(CODEC) 用UTF-8编码

f = open(FILE,'w')

f.write(bytes_out) 写入指定文件中

f.close()

f = open(FILE,'r')

bytes_in = f.read() 读取

f.close()

hello_in = bytes_in.decode(CODEC) 解码

print hello_in 打印

在终端中输入:python uniFile.py

结果打印出 Hello world

然后在python目录下会发现多了一个名为unicode.txt的文件,用cat命令查看一下,发现里面的内容和打印的结果一样.

把Unicode应用到实际中注意一下四点:

1 程序中出现字符串时一定要加一个前缀u

2 不要用str()函数,用Unicode()代替

3 不要用过时的string模块。如果传给它非ASCII码,它会把一切搞砸。

4 不到必须时不要在你的程序里编解码Unicode字符,只在你要写入文件或者数据库或者网络时,才调用encode()函数和decode()函数。

Python入门更快,但是java的运用更加广泛,所以二者各有各的优缺点,要学哪个还是要根据自己的实际需求情况来进行判断和选择。

首先来了解一下java与python各自的特点:

Java:高度面向对象的高级编程语言

设计初衷是“写一次代码,在哪里都可以用”,可以完成任何规模的任务,所以它也是很多公司在做商业级项目的时候的普遍选择。

Python:拥有简洁语法的高级编程语言

设计初衷是“让代码读起来更轻松”,并且让程序员们比起用其他语言,可以写更少的代码,事半功倍。

再来正视一下大家普遍对python的三个误区:

误区一:python简单易学

“语法简单,易读易维护”这句对python优点的总结一点儿也没错,很多人就会认为python比其他语言都好学。其实仅仅是入门更快而已,实际应用过程中,没有人会觉得项目难点在用什么语言上,而是解决问题的思路上。

误区二:python后来居上

实际上Python比Java还要早出身4年,而在国内一直到2010年后,大数据、人工智能、云计算等领域兴起,企业才加大对Python人才的招聘力度,Python术业专攻随领域而热门,并不是因为本身就十全十美。

误区三:python工资更高

python语言跟着人工智能、大数据、云计算等领域迅速崛起,一时间风头无二,似乎是未来编程语言的风向标。我们通过招聘软件可以轻松了解到,python开发工程师月薪15K-25K,java开发工程师15K-30K,相差不大,语言只是一个工具,本质上还是看你的个人资历。

最后是给初入行业的新人一些学习建议:

如果你只是编程爱好者,或者把编程语言作为一个工作中的应用工具,Python是个不错的选择。如果你想在程序员的道路上稳步发展,建议先学习Java,再学python,C++,JavaScript,PHP等其他语言,会事半功倍。

一名优秀的程序员,绝不会只靠一门语言走到黑,通吃它们就完了!兼容并蓄,触类旁通,这才是一个成熟IT从业者该有的心态!

想要系统学习,你可以考察对比一下开设有相关专业的热门学校。好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。

祝学有所成!望采纳!