2017.07.21 Python网络爬虫之Python代码格式
1.Python在格式方面与其他大众语言相差不大,但也有它独特之处尤其是代码缩进;在其他编程语言中,代码缩进大多是为了美观,程序,函数的开始结束都由花括号来控制
而python中却不一样,程序,代码块的开始结束都是由缩进来控制的。
2.Python的缩颈一般都是4个空格,先严格按照这种缩进方法来测试代码:
----|----|def __init__(self):
----|----|----|----|self.timeout=3
----|----|----|----|self.url=''
........................
程序中----|代表4个空格,可以用tab键替代4个空格,在自己的编辑器上将Tab键设置为4个空格就好‘’
3.Python的缩进规则:同一代码块纵向对齐,同级别函数(不存在调用关系)纵向对齐,每次对齐都是4个空格的倍数
4.Python命名规则:
(1)匈牙利命名法:把变量名按照属性+类型+对象描述的顺序组合起来,以使程序员定义变量时对变量的类型和其他属性有直观的了解
(2)驼峰命名法:当变量名或函数名是由一个或多个单词连在一起,而构成的唯一识别字时,第一个单词以小写字母开始,第二个单词的首字母大写或每一个单词的首字母都采用大写字母,例如:myFirstName,myLastName
变量的命名一般用小驼峰法,第一个单词全部小写,后面的单词首字母大写
类名的命名一般用大驼峰法,第一个单词的首字母也大写
(3)推荐的命名规则:
1.模块名和包名采用小写字母并且以下划线分隔单词的形式;
如:regex_syntax,py_compile,_winreg
2.类名或异常名采用每个单词首字母大写的方式;
如:BaseServer,ForkingMixIn,KeyboardInterrupt
3.全局或者类常量,全部使用大写字母,并且以下划线分隔单词;
如:MAX_LOAD
4.其余变量命名包括方法名,函数名,普通变量名则是采用全部小写字母,并且以下划线分隔单词的形式命名。
如:my_thread
5.以上的内容如果是内部的,则使用下划线开头命名。
如:__init__,__new__
- 所谓”内部(Internal)”表示仅模块内可用, 或者, 在类内是保护或私有的.
- 用单下划线(_)开头表示模块变量或函数是protected的(使用import * from时不会包含).
- 用双下划线(__)开头的实例变量或方法表示类内私有.
- 将相关的类和顶级函数放在同一个模块里. 不像Java, 没必要限制一个类一个模块.
- 对类名使用大写字母开头的单词(如CapWords, 即Pascal风格), 但是模块名应该用小写加下划线的方式(如lower_with_under.py). 尽管已经有很多现存的模块使用类似于CapWords.py这样的命名, 但现在已经不鼓励这样做, 因为如果模块名碰巧和类名一致, 这会让人困扰.
5.python代码注释:
(1)Python特殊注释:所有的python都有这两句话
#! /usr/bin/python env 这一行的目的是指明Python编译器的位置
#-*- coding:utf-8 -*- 这一行指明该程序使用的字符编码
(2)Python单行注释:单行注释很简单,不管在代码的任何位置,只要#之后的都是注释,但仅限于本行之内,不得换行
(3)Python多行注释:Python中多行注释采用三个单引号'''或者三个双引号"""
如果多行注释紧跟着定义类或者定义函数之后则自动变成了该类或者函数的doc string,就是模块,类,函数的功能注释
显示doc string的方法:
6.Python的调试:python自带的调试工具
(1)先编写一个程序测试:testWinDebugFactorial.py
# !usr/bin/env python
# -*- coding:GBK -*-
def fac(n):
if n==1 or n==0:
return 1
else:
return n*fac(n-1)
def main():
print("这是一个求阶乘的程序\n")
n=raw_input("请输入一个正整数")
try:
n=int(n)
except ValueError:
print("输入错误,要求输入一个正整数,退出重来吧。")
print("%d != %d" %(n,fac(n)))
if __name__=='__main__':
main()
(2)开始调试testWinDebugFactorial.py:
(3)添加断点,所谓断点就是调试程序时需要停顿的位置。一般为函数的入口,参数变化的行添加:
这里只在fac函数入口处添加一个断点,单击fac函数入口行:
(4)开始运行调试程序:
(5)单击Debug Control窗口中的Go按钮,开始运行程序,然后单击Debug Control窗口的Step按钮,逐步运行程序
如果需要跳出循环或者函数,则单击Debug Control窗口的Out按钮
Debug Control窗口中的stack检查框显示的是程序当前运行位置
Locals检查框显示的是当前变量的值: