Python基础快速入门实战教程

Python基础快速入门实战教程

8课时 |
36234人已学 |
(28 评论)

加入学习
加入学习
  1. OOP :世界、类、接近人类思维
  2. 类:
[展开全文]
orfan · 2018-05-17 · Python面向对象编程 0

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,也需要合并。
[展开全文]
ai老法师 · 2017-10-15 · Python面向对象编程 0

将多个Excel表格里面的内容合并到一个文件中。

要点:使用第三方模块操作,比如xlrd、xlwt,还需要注意一个Excel中有多个sheet,也需要合并。

例如:

#将多个Excel文件合并成一个
import xlrd
import xlsxwriter
 
#打开一个excel文件
def open_xls(file):
    fh=xlrd.open_workbook(file)
    return fh
 
#获取excel中所有的sheet表
def getsheet(fh):
    return fh.sheets()
 
#获取sheet表的行数
def getnrows(fh,sheet):
    table=fh.sheets()[sheet]
    return table.nrows
 
#读取文件内容并返回行内容
def getFilect(file,shnum):
    fh=open_xls(file)
    table=fh.sheets()[shnum]
    num=table.nrows
    for row in range(num):
        rdata=table.row_values(row)
        datavalue.append(rdata)
    return datavalue
 
#获取sheet表的个数
def getshnum(fh):
    x=0
    sh=getsheet(fh)
    for sheet in sh:
        x+=1
    return x
 
 
if __name__=='__main__':
    #定义要合并的excel文件列表
    allxls=['E:/python/python工具/excel1.xlsx','E:/python/python工具/excel2.xlsx']
    #存储所有读取的结果
    datavalue=[]
    for fl in allxls:
        fh=open_xls(fl)
        x=getshnum(fh)
        for shnum in range(x):
            print("正在读取文件:"+str(fl)+"的第"+str(shnum)+"个sheet表的内容...")
            rvalue=getFilect(fl,shnum)
    #定义最终合并后生成的新文件
    endfile='E:/python/python工具/excel3.xlsx'
    wb1=xlsxwriter.Workbook(endfile)
    #创建一个sheet工作对象
    ws=wb1.add_worksheet()
    for a in range(len(rvalue)):
        for b in range(len(rvalue[a])):
            c=rvalue[a][b]
            ws.write(a,b,c)
    wb1.close()
    print("文件合并完成")

 

[展开全文]
rossnick · 2017-09-15 · Python面向对象编程 1

授课教师

《精通Python网络爬虫》作者
阿里云开发者社区全面升级
一站式体验,助力云上开发!
进入新社区

相关课程

查看更多 >