学习目标:掌握Python基本语法、熟悉debug以及常用的python库。
Python 是一种面向对象的脚本语言,不需要编译。python有一个明确定义的语法,一个广泛的标准库。python可以嵌入到C/C++程序中。
python 环境搭建:Linux下源码安装的方式(1,./configure 2,make 3,make install)此外,
环境的变量的配置
,在path中添加python所在安装目录。注意python的四个环境变量。
可使用shell也可以使用集成开发环境进行开发。
Python编程:
1、
交互式编程,打开方法为在命令行输入
python命令
即可启动交互式编程。
2、
脚本式编程,将python命令写入后缀名为
.py
的文件中,然后使用解释器执行该脚本文件。
- python test.py 或 chmod +x test.py ./test.py
- 注意这两种方式,脚本文件的编写不同,前者直接在文件中编辑python命令语句,后者需在文件开头声明 #!/usr/bin/python
3、python标识符,以字母、数字、下划线组成,但不能以数字开头,以下划线开头的标识符有特殊含义,单下划线开头表示不能直接访问的,需通过类提供的接口进行访问,双下滑线开头代表类的私有成员。
4、
python使用
缩进
来写模块。缩进必须一致,否则会报错。换行代表语句的结束,一条语句多行显示需要在每行结束使用
斜杠“\”。
5、
python单行注释使用#,多行注释使用三引号''' 或“““。
6、
python等待输入:raw_input("please input\n")
- python等待输出:sys.stdout.write('hello') 或使用print输出,print默认换行,不换行就在末尾加,
- arg[0]代表程序所在路径,argv[1]为命令行输入参数。
7、
p
ython变量
存储在内存空间,变量赋值后才可以使用。
- python的标准数据类型包括:Numbers(数字) String(字符串) List(列表) Tuple(元祖) Dictionary(字典)
- 字符串下标从0开始,截取字符串可以使用[头下标,尾下标],不包含尾下标,加号+是字符串连接,*是字符串重复。
列表List,
使用方法与字符串类似,下标从左至右从0开始,或从右至左从-1开始。列表元素包括数字、字符、字符串、甚至列表嵌套。
程序为:
输出为:
元组用()标识,元素之间用‘ , ’隔开,与列表类似,但元组不能二次赋值,相当于只读列表。
字典Dictionary,
与列表的不同在于,列表是有序的元素组合,字典是无序的元素组合。字典中的元素是用键来存取的,
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
字典的测试用例如下:
程序为:
输出为:
8、if 条件判断、while循环、for循环基本语法,注意break和continue的使用。
- python中的pass语句为空语句,只是占位符,保持程序的完整性。
9、
自定义函数的使用
参数传递
:
- 注意:必备参数,关键字参数,缺省参数(使用默认值),不定长参数。
- 变量的作用域:全局变量和局部变量,通过添加global 标识,将函数内局部变量更改为全局变量。
- 方法二:
10、python 模块、包
- python中模块指一个以.py结尾的python文件,包含了python的对象定义和语句,使用import引入。
- python包:包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。__int__.py用于标识当前文件夹是一个包。
- #!/usr/bin/python# -*- coding: UTF-8 -*-
- if __name__ == '__main__':
- print 'package_runoob 初始化'
- sys.argv 是一个 list,包含所有的命令行参数.
- sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的文件对象.
- sys.stdin.readline() 从标准输入读一行 sys.stdout.write("a") 屏幕输出a
- sys.modules 是一个dictionary,表示系统中所有可用的module
- sys.path 是一个list,指明所有查找module,package的路径.
- os.environ 一个dictionary 包含环境变量的映射关系
- os.environ["HOME"] 可以得到环境变量HOME的值
- os.chdir(dir) 改变当前目录 os.chdir('d:\\outlook') 注意windows下用到转义
- os.getegid() 得到有效组id os.getgid() 得到组id
- os.getuid() 得到用户id os.geteuid() 得到有效用户id
- os.setegid os.setegid() os.seteuid() os.setuid()
- os.system(cmd) 利用系统调用,运行cmd命令
1
1
、
python 下的debug--python中
异常的处理
- try....except...else异常处理结构
- except <名字>:<语句> #如果在try部份引发了'name'异常
- except <名字>,<数据>:<语句> #如果引发了'name'异常,获得附加的数据
- except后面也可以不跟任何异常类型或多个异常类型。
- try....finally语句无论是否发生异常,都将执行最后都代码。
- 使用raise触发异常:raise [Exception [, args [, traceback]]]
- 通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。
- 自定义一个基类为RuntimeError的异常类:
- 其中e为Networkerror类的一个实例,输出结果如下:
12、
python文件的IO
- raw_input(" ") 从屏幕中输入一行,并会去掉结尾的换行符。
- input(" ") 与raw_input类似,可以接收一个表达式的输入,并将结果输出到屏幕。
13、
python的面向对象编程
14、
类的继承:
输出结果为:
类的私有属性:两个下划线开头,声明该类的私有方法,不能在类的外部调用。
单下划线、双下划线、头尾双下划线说明:
- _foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *
- __foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。
- __foo__:定义的是特列方法,类似__init__()之类的。