安装python和pycharm
python是解释器,将.py文件交给解释器解释后才能给计算机处理;
pycharm是编写py文件的工具。
新建项目
打印print
当输出的内容里恰好有单双引号
换行打印
三引号打印诗歌
变量的赋值
变量名尽量用数字字母下划线,且数字不能开头
为啥会有变量呢?
计算器
关于数据类型
type()
len()用来求字符串长度,不能求整数
P26 面向对象编程
面向对象和面向过程是两种不同的编程思想。
同一个需求,如果采用面向过程,那我会先分解步骤,写出对应不同的函数。如果是面向对象编程,我会把动作分解到对象新建一个类,再去定义对象的属性和动作(函数)。面向对象有三大特性,分别是封装、继承、多态。封装可以让团队写作更简洁方便,继承可以让子类继承父类的全部属性,多态是指子类继承父类后,还可以定义自己的特点。
P72 创建类
1、类的定义
class Class:
#代码1
#代码2
2、构造函数(特殊的方法):用来定义实例对象的属性
构造函数的第一个参数必须且默认是self,用来绑定实例对象的值,比如说
self.name=Lucy,表示对象的name是Lucy。如果不带self
name=Lucy,会被当成简单的变量赋值。
class Class:
def _init_(self,属性2,......):
self.name=lucy
#代码2
创建对象
对象名 = 类名()
cat = Class()
引用对象属性
写死:对象名.属性
print(cat.name)
写活:把属性名当参数传递进构造函数
class Class:
def _init_(self,cat_name,......):
self.name=cat_name
#代码2
cat=Class(jojo)
print(cat.name)
P29 老鼠打洞
子类继承父类
class 子类名 (父类名):
P30 绝对路径和相对路径
绝对路径
在unix操作系统中,根目录就是根节点,有且只有一个,用 / 表示,路径一般从 / 开始,目录之间用 / 分隔,以目标文件结尾
在windows系统中,每个磁盘都有自己的根目录,表示为(注意斜杠方向) C:\ D:
路径一般从 C:\ 开始,目录之间用 / 分隔,以目标文件结尾
相对路径
(不同系统内只有斜杠方向的区别)
当前目录(文件夹)表示为 .
当前目录的父目录表示为 …
当前目录的子目录表示为 ./(子目录的文件名)
如:从home文件夹开始找a.py,路径为: ./data/a.py(由于统一目录下的 ./ 是可以省略的,所以路径可以简化为: data/a.py)
从home文件夹开始找profile,路径为: …/temp/images/profile
在pycharm内部获取绝对路径方法
P31 读文件
1、打开文件
用open(“路径”,“读或写”,“编码方式”),其中路径用上一节课的路径表示方法找到文件所在位置;“读或写”表示要对目标文件进行读(r)或写(w)的操作,“编码方式”一般为utf-8。
2、获取文件对象
对象名=open(“路径”,“读或写”,“编码方式”),方便后续操作
3、读文件read()
print(对象名.read())
注意:连续两次读文件操作会报错,因为第一次读文件时,指针已经走到文件结尾,第二次再读,指针从结尾开始,读不到文件。
当文件太大时,一次性read会非常占内存,所以可以用read(10),表示一次只读十个字节的内容。
其他方法还有:
readline(),一次只读一行
但是我们这么知道文件有多少行,什么时候会读到结尾呢?首先,文件读到结尾会返回空字符串。其次,可以用while进行循环,当读到的内容不为空时,一直循环
**readlines()**一次读完所有内容,并按行存到列表里
4、关闭文件
两种方法
P32 写文件
open(”文件名“,”文件操作“)
写的文件操作是**”w",但是这个会将文件内容清空在写,
如果不想清空,可以用“a”,表示在原有文件后附加新的内容。
也可以使用“r+”**,表示读写操作都支持,并且是附加写。
P33 捕捉异常
P34 assert 测试用例
assert [true]
assert 后面放应该为true的表达式,如果结果不为true,则报错,并且后面的语句不再执行。
可以用unittest解决,unittest是一个专门用来进行测试的库,可以帮我们一次性找出并运行所有测试用例,一次性展示所有测试结果。注意将源代码和测试代码分开
P35 setup
P36 高阶函数和匿名函数
高阶函数:函数名当成参数被定义在另一个函数里
匿名函数:只调用一次的函数