Python学习笔记(小结)

函数与类

什么是类呢?在Python的世界里,像1,2,3,4这些我们归为数字,“你好”、“hello”这些我们归为字符串;而在生活中,我们把鲤鱼、鲫鱼称为鱼,把香蕉葡萄统称为水果。像这样对一类的东西的概括或抽象我们就叫做类。

什么是对象?刚刚说到,类是对一类事物的概括/抽象。那么反过来,这类东西里每一个单独的个体就属于对象。比如相对于水果这个类来说,其中的评估、香蕉就属于对象。

那么类有什么用呢?我们要记住一点:类的作用主要就是作为模板来使用。

假设我们在做一个稍微大一点的项目,其中包含很多个部分,有很多功能是类似的或者说就是一样的,这个时候就像是一个模板,我们可以根据它来量产对象,这样就可以节省很多可能重复性的工作来提高效率。

下面来看看类的结构是什么样的:

从语法上来看:类的定义是一个class语句,class语句内包含了四个要素:

1.关键字class

2.类名

3.英文冒号:

4.代码块(即类里面的代码内容)

其中,规范要求类名的首字母应是大写。与if条件判断语句一样,代码前方要注意缩进。

比如我们可以从两个角度去描述一辆车:

汽车的状态怎样?包括车的颜色(color)、大小(shape)等;

它能做什么?如:向前开(drive)、刹车(stop)等。

 

 而在Python当中,直接定义在类里面的变量就称为类的属性:

在类中被定义的函数就是类的方法,所以要理解清楚类的方法,就引入了第二个知识点:函数。

 函数是组织好的,可以重复使用,用来实现某一功能的代码。

就像Python的内置函数print()、input()这些就是函数。

定义函数的语法是这样的:

def 函数名(参数):

        代码块

        return 参数

def:在英文中是define(定义)的缩写,用于定义函数。

函数名:由我们对其命名,需要遵守一定的命名规则。

参数:函数要接收并对其进行数据处理。(它在括号内的数量是不一定的,可以是任意数量,包括0个)

代码块:函数内的代码内容,用于实现函数功能。当使用函数时,就会执行代码块内的内容。

return语句:从函数内部返回一个结果到外部(可以不写,默认返回None)

其中参数包括位置参数和默认参数。位置参数是按照括号里的位置顺序进行对应参数的传递:

 而默认参数是我们在定义函数时,可以对参数设置默认值,这种参数就被称为默认参数。要注意的是,默认参数必须要在位置参数后面:

比如上面这段代码,“标准”会被作为默认值传递给size,这里的参数size就被称作默认参数。

而函数中的return语句是从函数内部返回一个结果到外部,要注意的是并不是所有的函数都需要return,比如append()函数就没有return,不写的时候函数会返回None。

最后,函数的执行流程分为三步:

1.创建函数名

2.执行其他代码,直到调用函数

3.调用函数以后执行函数内部的代码块

只是定义函数而没有调用的话,函数中的代码是不会被执行的,这一点千万要牢记!

了解了函数的知识,也就相当于了解了类的方法,因为前面说过,在类中被定义的函数就是类的方法,那么它的定义语法就是这样的:

 

这里多了一个self参数,它用来指对象本身。我们记住一句话就好:self在类定义的时候要加载参数的第一个位置,但在调用类方法的时候要忽略它。

那么我们要如何调用类属性和类方法呢?这里我们就需要把类和对象关联起来了,也就是类的实例化。

我们创建的类,是一个比较抽象的东西,只是一个模板。要使用类里面的属性和方法,是需要把类具体化,这个过程就叫做类的实例化。吧一个抽象的类具体化成一个东西,这个东西就是一个对象。有了对象我们就能通过对象去调用属性和方法。

实例化的语句是这样的:

 

 在世纪写代码的时候类名后面的括号千万不能漏掉。

调用类的属性语法如下:

 

 而类的方法调用语法和函数的调用语法类似,只不过需要借助对象才能调用:

 类的方法与函数定义及调用的区别可以查看下图“

 在类的方法里面有一种特殊的方法叫做初始化方法,即__init__()方法,类在实例化时,__init__()方法会自动运行内部的代码。要注意的是:init前后需要加上两条下划线。

在__init__()方法内有设置函数时,实例化时也需要传入参数值:

最后需要注意的一点是,在类的方法内表示类的属性或类的其他方法时,要采用self.属性名或self.方法名的格式来调用。

 模块导入与文件读写

首先我们了解一种文件格式--CSV文件。CSV是comma-separad values(逗号分隔的值)的首字母缩写,其文件以存文本形式存储表格数据。

同时,csv文件可以视为一种简化版的电子表格。因为使用Excel软件打开CSV文件是,文件中的数据会显示为电子表格的样式,主要区别在于CSV文件只是存文本文件,不包含文字排版格式、单元格样式等信息,所以比Excel文件占用的内存更少,读取速度也更快。

然后,由于使用代码操作CSV文件需要先导入CSV模块,我们又引入了模块的概念。

一个写好了代码、功能齐全的Python文件就是一个模块,而具有相关功能模块的集合,就形成了库,其中有标准库和第三方库,第三方库指由第三方发布的库,需要下载安装到本地的Python中,才能够导入使用。

我们本次用到的CSV模块是Python中内置的模块,不需要安装就可以导入使用,导入模块的语法是这样的:import+模块名。(需要留意的是,语法中import语句与模块名之间有个空格)

将模块导入后,我们才能使用模块里的具体功能。

如果想要调用模块中的某一个类,函数或变量,其调用语法如下:

1.调用模块下的类:模块名.类名();

2.调用模块下的函数:模块名.函数名();

3.调用模块下的变量:模块名.变量名。

而调用模块下的函数/类/变量,还可以用另一种语法来写:from 模块名 import 类名/函数名/变量名。 用这种语法导入我们要用的类名/函数名/变量名之后,在调用的时候可以省略掉前面的模块名。

open() 函数用于打开一个文件,并返回一个 file 对象(即文件对象) ,这样,才能在后面调用文件对象的相关方法进行读写。

 参数 file 表示我们要打开的文件的路径,而路径又分为绝对路径和相对路径。

参数 mode 决定了打开文件的模式。最主要的模式有:只读(r),写(w),追加(a)等。

mode 可取的值见如下表格:

 参数 encoding 表示文件的编码方式,课程中使用到的文件编码方式一般为 'utf-8'。为了避免错误,需要把 encoding 设置为 'utf-8',即写为 encoding='utf-8'。 

另一种打开文件的方法,with open() as ... 是对原有 open() 和 close() 的优化。 
使用 with open() as ... 语句后,在 with 下面的代码块结束时,会自动执行 close() 关闭文件。 

具体语法可以参考下图:

 打开文件之后,我们就可以对文件进行读写操作啦,于是我们学习了 csv 模块中的 DictReader类和 DictWriter 类。

DictReader 类可以以字典的形式读取 csv 文件,既然是类,那么自然需要先进行实例化才能调用方法,实例化的语法为:DictReader(f)。其中参数 f 为 csv 文件的对象。 

DictWriter 类支持数据以字典的形式写入 csv 文件,实例化 DictWriter() 后,会得到一个 DictWriter 对象。类 DictWriter() 的实例化语法为:DictWriter(f, fieldnames)。

其中:
1.参数 f 为 csv 文件的对象;
2.参数 fieldnames 的作用是定义文件的表头,其数据可以为列表格式。 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mez_Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值