简介 面向对象、解释型的编程语言。python3.x各方面更成熟,将来肯定是主流,python2.x处理速度更快点。python3.x简洁、易学、几乎全能、支持面向对象,越来越多公司用python3.x。 建议学python3.x 能做什么 数据分析与挖掘、黑客逆向编成、机器学习、网络爬虫、开发游戏、自动化运维、开发WEB项目。 python 安装 python3.5.2 64位 稳定 官网 www.python.org(搜狗浏览器访问,download windows ) 管理员身份运行 customise 勾选2、3 1随便 最后两个不勾 设置安装盘 advanced options (选creat、add) 设置环境变量---> 告诉系统python安装在什么地方了 (比较慢、) python语法基础 输出 输出hellow world 输入IDLE---> python print(“要输出的内容”) shell一行一行执行。ctrl+N 多行执行 后缀名.py 注释 #注释法 三引号注释法---英文输入法下两端输入三个单引号或者多引号(前后要对应) 标识符 命名规则:第一个字符为字母或下划线;除了第一个字的其他字符可以是字母、下划线或数字。如_jh3ih/j_3hhf 变量 和标识符命名规则相同。 赋值=从右往左看 数据类型 默认数据类型:数、 字符串(a='abc'/a2='abc'/a3='''abc''')、 列表(list)---存储多个元素[,隔开,从0开始编号]列表内元素可以赋值 、元祖(tuple)---()元祖内不可以重新赋值,取值和列表方式一样、 集合(set)---=set{'字符串'}输出{'','',....}---去重、集合运算 字典(dictionary)---{键:值,键:值.....}---d={'abc':6,'q':'daa'}。取值规则:字典名['对应键名']--d['q']输出daa 运算符 +、-、*、/、%。基本的数学运算符的优先级规律在python上基本使用。实在不清楚优先级规律,为需要先执行的运算加上括号。+号可以进行字符串的连接---j='da',k='abc'+j--> k='abcda' 缩进 同一层次的代码,处于同一个缩进幅度上,下一层次的代码,需要相对于上一层缩进,使用tab缩进。 python控制流 三种控制流概述 顺序结构 条件分支结构 if():/ elif():---else if:()/else: 循环结构 while --while():--> for 便利列表--a=['qF','D','fd','d'] for i in a:--> 进行常规循环--for i in range(0,10)--> 中断结构 break 全部直接退出,整个循环中断 continue 中断一次循环,继续下一次循环 乘法口诀 for i in range(1,10) : for j in range(1,i+1): print(str(i)+'*'+str(j)+'='+str(i*j),end=' ') print() end代表不换行输出、注意python中缩进的含义,相同缩进代表相同层级 作业:逆向输出乘法口诀(9-->1) #逆向输出乘法口诀 for i in range(1,10): for j in range(1,11-i): print(str(10-i)+'*'+str(11-j-i)+'='+str((10-i)*(11-j-i)),end=' ') print() for i in range(9,0,-1): for j in range(i,0,-1): print(str(i)+'*'+str(j)+'='+str(i*j),end=' ') print() 函数 函数的本质是功能的封装--def 函数名(参数) 局部变量与全局变量 作用域从变量开始到程序的最末的变量叫做全局变量,作用域只在局部的变量叫做局部分量。 函数内部定义的变量是局部变量,不能再外部输出或调用。 函数参数的使用 函数定义的格式--def 函数名(参数) def abc(): print('agg') 调用----输入 函数名() 参数:与外界沟通的接口 形参 函数定义的时候使用形参 实参 函数调用的时候用实参 python模块实战 什么是python模块 为了让python程序实现更方便,可以根据需求类别将一些厂检单功能(函数)组合在一起,形成模块。以后要实现这一类功能的时候,直接导入该模块即可,模块里面的函数叫做模块的方法。系统自带的模块在安装目录的lib目录中。 模块内的函数叫做模块的方法。 模块的导入 import模块名 import cgi cgi.closelog() from...import... from cgi import closelog 第三方模块的安装 模块的类别 自带模块 第三方模块(较常用) pip方式 cmd---pip---网络安装 whl下载安装 下载lfd python---sp35 amd64--下载另存d盘爬虫--cmd--d:-cd 文件夹---pip install+下载文件全名(包括后缀) 直接复制 复制别人的安装文件(电脑和python型号相同)html文件 anaconda 自定义模块 在lib目录下新建文件-- python文件操作 文件操作概述 直接使用对文件进行打开、关闭、读取、写入等操作,使用python可以自动对程序进行处理,比如合并多个Excel表格文件的内容。 文件操作实战 文件打开 操作txt文件---新建txt文档---写入内容--如何用python读取其中的内容--打开--open(文件地址,操作形式)--fh=open('D:/sdags/sgas','r')或fh=open('D:\sdags\sgas','r')---data=fh.read()--data--全部内容--fh.readline()---一行一行地读 操作形式:w-写、r-读取、b-二进制、a追加 文件关闭 fh.close()打开了用完之后一定要关闭文件 文件写入(w/a+) data='dhaghhh'--open('文件地址','w')--fh2.write(data)--必须要先关闭写入文件内容才会在文件中保存--fh2.close()--多次写入只需一次文件关闭(如果用的是w-非追加写入的话) w写入模式下每次关闭都会对内容进行更新替换,如果想每次写完不替换原先的内容,可以用a+追加写入模式。 python异常处理 概述 python程序在执行的时候,经常会遇到异常,如果中间异常不处理,经常会导致程序崩溃。比如后面我们写爬虫的时候,如果不进行异常处理,很可能虫爬了一半,直接崩溃了。 目的是写程序的过程中遇到异常可以跳过,不至于程序崩溃,增强程序的生命力。 异常处理实战 在python中创建一个try文件---ctrl+n(new)--ctrl-a--写一个程---制造异常--- 异常处理格式 try: 程序 except Exception as 异常名称: 异常处理部分 注意: try和except要对应,且缩进量保持一致;try和循环的嵌套关系变化可能带来不同的处理结果。 python面向对象编程 概述 面向对象编程即OOP编程,区别于面向过程编程,面向对象编程比较适合开发大项目,会以更接近人类的思维角度去写程序。 类和对象 类:具有某种特征的事物的集合(群体) 对象:群体(类)里面的个体 类是抽象的,对象是具体的---类的实例化 创造一个类: class 类名: 类里面的内容 ... class cl1: pass ... 实例化一个类 a=cl1() ... a即类(cl1)内对象 构造函数 类在实例化时自动首先触发的函数:init(self,参数)--双下划綫,在类中的方法中必须加上self参数。 class cl2 def__init__(self): print('hellow,welcome') 构造函数作用是初始化 给类加上参数---给构造方法加上参数 class cl3 def __init__(self,name,job): print('my name is '+name+'my job is'+job) 输入c=cl3('ag','aqw')--输出my name is ag my job is aqw 属性与方法 属性: 静态的特征。如头发、手臂等 方法: 动态的特征。如唱歌、写字等 类中属性的定义和调用:self.属性名 class cl4: def __init__(self,name,job): self.myname=name self.myjob=job----定义类的属性 输入c=cl4('ag','aqw')--输入myname--输出ag--输入myjob--输出aqw--直接调用类的属性 方法:类里面的函数def 方法名(self,参数) class cl5: def myfound(self): print('aga') 实例化时不需要添加参数,调用的时候需要添加 class cl6: def myfound1(self,name): print('hellow'+' '+name) 调用类里面的方法: c=cl6()------实例化 c.myfound('liuyong')---调用函数myfound()并加参数 输出hellow liuyong class cl7: def __init__(self,name): self.myname=name def myfound1(self): print('hellow'+' '+myname) 调用类里面的方法: c=cl7('liuyong')------实例化即添加参数 c.myfound()---调用函数myfound()并加参数 继承与重载 继承: 把某一个或多个类(基类)的特征拿过来(单继承、多继承) 重载: 把子类(派生类)里面对继承过来的特征重新定义 父类: 基类 子类: 派生类 案例讲解 某一个家庭有父亲、母亲、儿子、女儿,父亲可以说话,母亲可以写字,大儿子继承了父亲写字的能力,女儿同时继承了父母亲、并且有能力听东西,小儿子继承了父亲,但是优化(减弱)了父亲说话的能力。 父亲类(基类): class father(): def speak(self): print('I can speak') 单继承类:class 子类(父类) class son1(father): pass 执行 s=son1() s.speak() ---I can speak 母亲类: class mother() def write(self): print('I can write') 多继承: class daughter(father,mother): def listen(self): print('I can listen') 执行 d=daughter() d.speak() ---I can speak d.write() ---I can write d.listen() ---I can listen----多继承不影响新功能 重写(重载): class son2(father): def speak(self): print('I can speak 2') 执行 s=son2() s.speak() ---I can speak2---重名覆盖 作业: 将多个Excel表格里面的内容合并到一个文件中。 要点: 使用第三方模块操作,比如xlrd、xlwt; 注意使用循环; 一个Excel中有多个sheet,也需要合并。 |
|
来自: silence_33 > 《Python》