[Python]同是新手的我,分享一些经验

2015/06/18 11:33
阅读数 27

本来想分享一些知识,但是发现,写着写着,感觉分享一些经验,或许会少让大家走一些弯路,索性就把标题一改。

我不是教给大家些什么,我没有资格,我也是摸着石头过河,我只是本着分享的精神,在这里分享自己的东西。

我是python新手,前段时间刚看完基本语法,跑去看flask官方文档。发现还是有些地方不明白。不知道g 这个东西原理是什么,往里面怎么放东西之类的,不是很清楚。

对于官方文档里面将的本地环境也不理解。但是也是有些收获,不能说完全掌握,但是写个简单的跳转页面,交互的页面也能完成。这里说的东西多了,其实我就是想说:

我走在学习python的道路上,我不是怕难的知识,我是怕没有方向。总而言之一句话,学就是进步,学的多了,也就有方向了。

遇到问题的时候,我就对自己说:你看不懂的地方,那是因为,你之前有的地方没有看懂。那就去查,去学。想学高级武功成为高手,没有之前的积累,就能随随便便的学成,那高手也就不值钱了。

我东学学,西学学发现。发现了一本适合我们刚入门的新手学习的书:

《编写高质量代码——改善python程序的91个建议》

举个类子来说,你学会了出拳,学会了踢腿,但什么时候用那个?没有前辈的指导,亲身的体验,你是不会完全掌握的。而这本书,罗列出来的91个建议,就是前辈的经验之谈。换个说法,这个是攻略。看过《代码大全》的人大概也明白我的意思了。

推荐阅读的顺序(悄悄的告诉你们我才看了三分之一......)

第一章不要先看,因为这是总纲领,靠生记,记不住的,读过有印象即可

第二章,第三章,一个字一个字的读,例子运行一边,每天不要读的太多。多多回味!

我的方法是,把每一建议都写一些笔记,这本书真的是太好了,我总结的都没有书上的好,就算抄我也一个字一个字打出来,我的笔记都放在github上了,下面有地址。

这里我要声明,我几乎没有自己写过什么东西,写的都是一些例子,没有什么自己的东西。

去我的github上看看就知道了。。。https://github.com/521xueweihan/

我的思路是这样的:我做了十几年的学生,如果说擅长什么就是读书,一般套路就是先掌握理论知识再真刀实枪的干,这样不会被虐的太惨。

这只是我的个人之言,仅供参考!!!仅供参考。

本来我的这篇文章打算就贴出来下面这些内容,结果好几天没写文章,憋的话太多,就写的跑偏了。

下面就是我读《编写高质量代码——改善python程序的91个建议》的一篇笔记

(我一般是先看,之后在写笔记,我看到第三章,笔记记到第二章,这么相当与读两边书。)

#coding:utf-8
################
# 17.考虑兼容性,尽可能使用Unicode
###############
"""
前言:Python内建的字符串有两种类型:str和Unicode,因为最早的ASCII编码使用一个字节
只能表示128个字符,但是对于很多语言128个字符数远远不够,这个时候出现了多种编码格式
从而导致不同平台,不同语言之间的文本无法进行很好地转换。
    要解决这个问题,必须为不同的文字分配统一的编码,Unicode,也被称为‘万国码’。
"""
#####
# 场景1:读取文件显示乱码

filehandle = open("test.txt", 'r')  # 读取测试中文文件‘test.txt’
print filehandle.read()
filehandle.close()  #关闭资源

# 因为:文本的编码为UTF-8,但是windows系统中他被映射为GBK编码,所以在运行之后,
# 两种编码并不兼容。
# Unicode 为不同语言设置了唯一的二进制表表示形式(方便于相互转化)
#####

# 解决办法:使用decode()和encode()方法,分别是解码和编码

filehandle = open("test.txt", 'r')  # 读取测试中文文件‘test.txt’
# 这里decode()方法将其他编码对应的字符串解码成Unicode,
# encode()方法将Unicode编码转换为另一种编码,Unicode作为中间编码
print (filehandle.read().decode("UTF-8")).encode("gbk")
filehandle.close()  #关闭资源


#####
# 场景2:输出中文字符,抛出异常SyntaxError

print '中文测试'

# 因为:Python中默认的编码是ASCII编码,包含中文的字符串。当调用print输出时
# 采用隐式地进行从ASCII到系统默认编码的转换,中文字符并不是ASCII字符,此时
# 源文件又未指定其他编码方式,这时便会抛出SyntaxError异常
#####
# 解决办法:在源文件中进行编码声明,
# 如:#coding=utf-8

print '中文测试'


#####
# 场景3:普通字符串和Unicode进行字符串连接时抛出UnicodeDecodeError异常

print '中文测试' + u'Chinese Test' #抛出异常

# 因为:当两种类型的字符串连接的时候,Python将左边的中文字符串转换为
# Unicode再与右边的Unicode字符串连接,这时将‘中文测试’字符串转换为Unicode
# 使用系统默认的ASCII编码对字符串进行解码,但是其中‘中’字对应的值为214,
# 当编码值在0~127的时候Unicode和ASCII是兼容的,但是大于128的时候,ASCII编码
# 不能正确处理这种情况,则抛出异常
#####
# 解决办法:把中文字符解码成gbk编码
print '中文测试'.decode('gbk') + u'Chinese Test' 


# 笔记
# 对于中文字符,为了做到不同系统之间的兼容,建议使用Unicode方式表示。
# Python2.6之后可以通过import unicode_literals自动将定义的普通字符
# 识别为Unicode字符串,这样字符串的行为将和Python3中保持一致。

# 形式如下:

#from __future__ import unicode_literals
s = '中文测试'
print s


不论学的什么,只要坚持每天都学,肯定会学成。不论写多少行代码,每天都写,肯定会有长进。(像我每天只写例子,我还是坚持写)

本文分享 CNBlog - 削微寒的程序员之路。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部