一. python基本语法
1.语句和语法
1.1 注释
代码注释分单行和多行注释, 单行注释用#,多行注释可以用三对双引号""" """
代码注释原则:
1.注释可以用中文或英文。
2.不用全部加注释,一般在自己不好理解的地方和让别人看懂的地方加注释,提高阅读代码效率。
1.2 继续
在python中一般使用换行来分隔代码,来保证代码的可读性,但是有时候一行代码过长会导致可读性下降,这里利用(\)反斜杠进行分解。
例:
#代表一行代码过长 if a == 1 and b == 2 and c == 3 and d == 4: print f #使用(\)分解 if a == 1 and \ b == 2 \ c == 3 \ d == 4: print f
1.3 缩进
在python中缩进也算是一种语法,python和其他语言不一样,要严格遵守缩进的规则,如果不采用合理的代码缩进,会导致代码块的逻辑错误,甚至将抛出IndentationError异常。
使用缩进的规则:
- 每个逻辑的缩进尽量使用4个空格。
- 不要使用制表符(Tab键),因为python是跨平台语言,不同系统的Tab键代表的空格是不同的。
例:
# -*- coding: UTF-8 -*- #正常代码 if True: print("Hello zhangsan") #print前面为4个空格 else: print("Hello lisi") #print前面为4个空格 #输出 Hello zhangsan #代码块逻辑错误 # -*- coding: UTF-8 -*- if True: print("Hello zhangsan") #print前面为4个空格 else: print("Hello lisi") #print前面为4个空格 print("end") print("="*20) if True: print("Hello wangwu") else: print("Hello zhaoliu") print("end") #输出 Hello zhangsan! end #end这里不应该输出 ==================== Hello wangwu! #缩进不合理 # -*- coding: UTF-8 -*- if True: print("Hello girl!") else: print("Hello boy!") print("end") #输出 File "<stdin>", line 5 print("end") ^ IndentationError: unindent does not match any outer indentation level #表示索引错误
2.变量
2.1 什么是变量
变量是存储在内存中的值。
2.2 为什么要有变量
程序执行的本质就是一系列状态的变化,变量二字的核心一个是变,一个是量,'变'正好对应程序的变化,'量'即计量,反映的是某种状态。
2.3 变量的原理
例:
比如一款游戏中的人物初始等级:level=1,玩了一会儿后升级了:level=2;理解为经常变化的量,level就是变化的,1就是一个常量。
2.4 变量的声明
name = "All is well"
name这里为变量,"All is well"为变量值
2.4 变量的引用
#!/usr/bin/env python name='All is well' #变量的声明 name #通过变量名,引用变量的值 print(name) #引用并且打印变量名name对应的值,即'All is well'
2.6 变量的命名规范
- 大小写字母,数字以及下划线的组合
- 变量名的首个字符不能是数字
- 以下关键字不能使用:
>>> import keyword >>> print keyword.kwlist ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'] >>>
- 最好不要和python内置的东西重复。***
比如内部的函数,sum,不能用sum = 123,这样会导致内置函数不可用。
- 尽量让变量名更有意义,看了就能懂大概意思。
两种类型:
下划线:this_is_a_var
驼峰体:ThisIsAVar
3.标识符
3.1 什么是标识符
- 允许作为名字的有效字符串集合(注,变量是标识符的一种)
3.2 标识符合法性
- 名字必须有实际意义,可读性好
- 首字母必须是字母或下划线(_)
- 剩下的字符可以是字母和数字或者下划线
- 大小写敏感
- 不能使用内建
- 不能使用关键字
例:以下关键字不能使用
>>> import keyword >>> print keyword.kwlist ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'] >>>
3.3 标识符风格
- 两种风格
下划线(this_is_a_var)
驼峰体(ThisIsAVar)
3.4 专用下划线标识符
- _xxx:不能用from module import *导入
- __xxx__:系统定义名字
- __xxx:类中私有变量
4.基本风格
-
起始行(只有在类Unix环境下才使用,指定解释器的路径,否则执行类似于./test.py 会报错。)
-
指定字符编码(在代码中有特殊编码时,用来指定字符编码,python2中有中文需指定,python3中默认是utf-8编码,无需指定。)
-
模块文档(介绍本模块功能,可以通过module.__doc__访问。)
-
模块导入(导入代码需要的模块,一般用import 来导入,导入模块的某个功能from os import system)
-
变量定义(全局变量的定义,模块中所有的函数都可以直接使用,对于全局变量,能不用就不用)
-
类定义(定义类,并定义类的文档(非必须),可以通过class.__doc__访问。)
-
函数定义(定义函数,并定义函数的文档(非必须),可以通过function.__doc__访问。)
-
主程序(主要负责程序的调用)
风格示例:
1 #!/usr/bin/env python 2 #--*--coding:utf-8--*-- 3 "this is a test module" 4 5 import sys 6 import os 7 from os import system 8 9 debug = True 10 class FooClass(object): 11 "Foo class" 12 pass 13 def test(): 14 "test function" 15 if debug: 16 print("run test()") 17 18 if __name__ == '__main__': 19 test()