导图社区 Python基础语法
Python基础语法、我们的实例对象是通过object的__new__魔法方法创建的、重写该方法,改变实例对象在交互模式中,直接写变量名显示的内容。
编辑于2022-11-10 09:57:17时间管理-读书笔记,通过学习和应用这些方法,读者可以更加高效地利用时间,重新掌控时间和工作量,实现更高效的工作和生活。
本书是法兰教授的最新作品之一,主要阐明了设计史的来源、设计史现在的状况以及设计史的未来发展可能等三个基本问题。通过对设计史学科理论与方法的讨论,本书旨在促进读者对什么是设计史以及如何写作一部好的设计史等问题的深入认识与反思。
《计算机组成原理》涵盖了计算机系统的基本组成、数据的表示与运算、存储系统、指令系统、中央处理器(CPU)、输入输出(I/O)系统以及外部设备等关键内容。通过这门课程的学习,学生可以深入了解计算机硬件系统的各个组成部分及其相互之间的连接方式,掌握计算机的基本工作原理。
社区模板帮助中心,点此进入>>
时间管理-读书笔记,通过学习和应用这些方法,读者可以更加高效地利用时间,重新掌控时间和工作量,实现更高效的工作和生活。
本书是法兰教授的最新作品之一,主要阐明了设计史的来源、设计史现在的状况以及设计史的未来发展可能等三个基本问题。通过对设计史学科理论与方法的讨论,本书旨在促进读者对什么是设计史以及如何写作一部好的设计史等问题的深入认识与反思。
《计算机组成原理》涵盖了计算机系统的基本组成、数据的表示与运算、存储系统、指令系统、中央处理器(CPU)、输入输出(I/O)系统以及外部设备等关键内容。通过这门课程的学习,学生可以深入了解计算机硬件系统的各个组成部分及其相互之间的连接方式,掌握计算机的基本工作原理。
Python基础语法
正则
正则的概念
正则是一种通用的(其他语言也具备的)来简洁表达一组字符串的表达式
主要是操作字符串
利用正则表达式可以方便快捷的匹配和筛选字符串
正则表达式本质就是一个字符串,它的符号被赋予特殊的含义,功能,规则
使用正则表达式去编写规则,然后根据规则做判断,规则是正则编写.操作是方法控制的
提示:正则前面最好加上对象原样输出的'r'
元字符
findall
含义:通配符.得到所有符合规则的内容,输出的结果是列表
贪婪匹配
尽量拿多的
贪婪模式和非贪婪模式
贪婪模式
最大匹配 尽可能多拿 会有回溯的过程
默认是贪婪模式
非贪婪模式
最小匹配 会找到最短的匹配 尽可能的少拿 为了减少回溯
非贪婪模式在次数之前加上问好
字符集合
^在集合里面代表不匹配
集合就是or的意思
如果需要使用中文 那么就是U-4E00-/U9FA5
分组匹配
子主题 1
子主题 2
Re模块中的方法 操作
compile
定义规则的方法
可以提前定义规则
生成器与迭代器异常
生成器
yield
1.暂停方法
2.带出返回值
和return类似: 不同的是return是结束方法 yield是暂停方法 不结束
斐波那契数列
斐波那契数列是一种算法
方法就是第三个数等于前两个数相加 符合这样的规律就叫做斐波那契数列
装饰器
不改动源代码的情况下增加一些功能
内置装饰器
内置装饰器就是Python本身已经给你写好了 你直接用就可以了
@property
作用: 可以让你调方法和调属性一样 缺点就是不能够传参数
@Classmethod
作用:定义参数自动传入类 没有参数就自动传入实例化对象
异常
as .excete
as里面放可能会出现报错的代码
excpte里面放如果报错了要执行的代码
细致处理异常
else,finally
else-没有报错的时候执行
finally-以上执行完毕执行,不管有没有报错 都会执行
断言
什么是断言?
断言和IF类似
但是如果结果为False 那么它会进行报错
关键字:assert
补充:bool可以判断数据类型里面有没有数据 所以可以直接 if[]:,会做转型 转布尔类型
调用的时候会执行装饰器函数,把函数本身作为参数传入
如果有参数呢?
如果有参数的话需要给装饰器的方法定义一个参数 才能保证不进行报错
魔法方法、协议
文件
文件的基本操作
打开文件
内置函数open(文件的路径,文件的模式)
得到文件对象
encoding
指定编码格式
errors
忽略
强行打开
模式
r
只读,不可以写
如果找不到文件,会报错
w
只写模式,只可以写不可以读
无论有没有文件,都会创建,然后覆盖
a
追加模式,只可以写,不可以读
找不到文件会自动创建,如果有就不新建
b
叠加,二进制打开
+
叠加,更新
能够让我们的模式可以读也可以写
路径
相对路径
从文件本身出发,寻找目标文件
./
当前目录
../
上级目录
文件名/
进入目录
绝对路径
从磁盘开始出发,寻找目标文件
注意取消转义
\\
r''
文件分类
字符文件
右击用记事本打开,凡是看得懂的都是字符文件
各种文本文档
r
w
a
字节文件
右击用记事本打开,凡是看得不懂的都是字节文件
图片,音频,视频等
rb
只读的方式打开二进制文件
wb
ab
读取文件
文件对象.read()
tell()查看光标位置
utf-8中文是3
seek()设置光标位置
readline()
一次读取一行
包含回车\n
readlines()
读取多行,返回的是列表
写入文件
文件对象.write('要写入的内容')
写入多条数据
writelines
参数是列表
保存
文件对象.flush()
关闭文件
文件对象.close()
文件操作步骤:
获取指定文件对象,打开文件
内容的操作
关闭文件
with
每次打开文件,都会自动关闭文件,不需要手动关闭
文件流(了解)
如果想要存储数据,读,写,但是又不想要持久化到硬盘,那么可以使用文件流
StringIO()
文本流,字符
BytesIO()
字节流
getvalue()
读取内容
目录操作
文件和目录不互通
文件
目录
学习看文档
忘记了,可以查文档
要掌握的是如何调用方法,传参数
函数
不需要全部记住
模块和包
模块
就是python文件
import
关键字
导入整个模块
from .. import .. as ..
部分导入
from
来自
包
存放多个python文件的文件夹叫做包
就是文件夹
__init__.py
目录
存放普通文件的文件夹
面向对象高级
属性访问函数
是内置函数
都是操作实例对象的属性
hasattr(实例对象,属性)
作用:判断该实例对象是否存在该属性
返回值bool
存在返回True
不存在返回False
getattr(实例对象,属性)
作用:获取该实例对象的指定属性值
返回值
属性值
没有会报错
setattr(实例对象,属性,属性值)
作用:设置该实例对象的属性值
增加
修改
有就修改,没有就增加
无返回值
None
delattr(实例对象,属性)
作用:删除该实例对象的属性
无返回值
None
内置方法操作属性
对象.__getattribute__(属性)
作用:获取该实例对象的指定属性值
返回值
属性值
没有会报错
对象.__setattr__(属性,属性值)
作用:设置该实例对象的属性值
增加
修改
有就修改,没有就增加
无返回值
None
对象.__delattr__(属性)
作用:删除该实例对象的属性
无返回值
None
属性调用过程
yige.name
判断(python自动完成)
有属性
对象.__getattribute__(属性)
返回属性值
没有属性
对象.__getattr__(属性)
类有定义该方法
执行定义的方法
类没有定义该方法
报错
获取属性
对象.属性
删除属性
delattr()
判断属性
不做
类里面定义__getattr__
赋值属性
对象.属性 = 值
对象关系方法
是内置函数,判断
issubclass(类,类)
作用:判断第一个参数是不是第二个参数的子类
第二个参数可以是一个元组
如果是其中一个类的子类,那么返回的就是True
反之就是False
isinstance(对象,类)
判断实例是否是后面的类的实例
补充
所有的数据类型,都是一个类
int
str
list
具体的值,都是类的实例
123
int
‘123’
str
魔法方法
两个下划线在两边,中间是单词,有特殊含义的方法我们称为魔法方法,一般都是python已经规定好的
特殊情况会被自动调用
__init__
创建实例的时候自动调用
__del__
被删除的时候调用
__new__()
创建实例,最先执行
特殊功能,含义
我们的实例对象是通过object的__new__魔法方法创建的
__new__是创建实例
输出魔法方法
__str__()
print的时候执行
重修该方法,改变实例对象输出显示的内容
不显示地址
显示有用的属性数据
__repr__()
交互模式,直接输入实例变量名执行
重写该方法,改变实例对象在交互模式中,直接写变量名显示的内容
单例模式
设计模式
为了优化代码
编程思想
应用:如果我们只需要一个类存在一个实例对象
单例模式:类始终只有一个实例存在,不会同时出现多个实例
节约空间
协议
类似于我们实际生活中的合同
你签订了这份协议
按照指定的来,我会给你对应的功能
甲方
提供给你对应的功能
乙方
按规定来使用
协议的格式有一定要求
有些的是需要有return
作用:让我们自己定义类能够使用python提供的功能,一些内置函数
本质
魔法方法
枚举函数
enumerate(列表)
面向对象初级
类
类的定义
为什么要有类
因为我们程序是面向多人的
会有很多信息,数据,功能的冗余,所以需要进一步封装
使用一个关键字class,定义类来进一步封装
定义类的语法规则:
class 类名:
类名:命名规范是首字母大写
类里面的介绍
变量
属性
函数
方法
如何定义类
编程可以理解为一个虚拟世界
类
现实生活中的物
名称提取法
属性
物的描述
方法
物的功能
要封装相关的变量和函数
初始化函数
__init__()
在实例化时会自动调用
析构函数
__del__()
当删除实例的时候,就会调用此方法
del关键字删除对象
变量名 =None
对象
类的实例化
对象调方法会自动把本身传入方法的第一个参数
类继承
作用
减少重复性,可以把相同的方法定义到父类中,子类做继承
优化,升级
继承的手法升级功能,不改变已实现的功能
方便撤销
错误不影响原有系统
可以多继承
重用
编写自己特有的功能
super()
调用父类的功能
计算机基础
.txt
文本文档
.jpg
图片
.py
python文件
文件扩展名就最决定该文件的执行方式
新建python程序
本质就是新建一个文件,修改扩展名为.py,让它以python程序的方式执行
注意
一定要先显示文件拓展名
编写python程序
1.右键选择记事本打开,编写python代码,ctrl+s保存
没有高光,不容易查找错误
2.使用安装python自带的编辑器
推荐
3.mac电脑,点击火箭(启动台)找到IDLE,window点击开始,找到IDLE
点击File-new File
运行python程序
注意,不是直接双击打开
1.在文件所在的文件夹的地址栏当中输入cmd
python 文件名
运行对应的文件
2.如果使用自带的编辑器,可以f5运行
python和pycharm
python是环境
安装python,安装python解释器
如果没有安装可以运行python程序嘛?
不可以
通过python解释器,讲我们按照python的语法编写的内容,编译成电脑能够识别的,然后电脑做出对应的动作
pycharm是开发工具,是编辑器
方便我们编辑代码
编辑模式与交互模式
编辑模式
记事本
IDLE(python自带的编辑器)
交互模式
点击IDLE
运行后
区别
交互模式回车就会运行程序,写一行运行一行
编辑模式可以一直写,ctrl+s保存,f5从上往下执行,编译多行代码
交互模式测试的时候使用
编辑模式,正儿八经写代码写程序的时候使用
计算机发展历史(了解)
推手
数学的发展
战争
算盘
手摇计算机
电
电子管
真空电子管
信号问题
通过栅极扩大信号,分裂电子
半导体材料
单向导电性能
发明二极管
通
1
不通
0
计算机用二进制来表示
二进制(掌握)
十进制
满十进一
1+1=2
二进制
满二进一
1+1=10
八进制
十六进制
0-9abcdef
8+2=a
所有的数据最终都会被转成二进制(掌握)
总结(掌握):
什么计算机
计算的机器
人力变电力
N多个晶体管和逻辑电路组成
做二进制运算
电脑(计算机)
电脑上面的程序,本质都是在做数据的计算
软件
数据和指令的集合
数据
指令
计算机组成(掌握)
硬件系统
就是我们电脑的实物
CPU
GPU
主板
存储器
内存
运行数据快,读取速度快
不能永久保存数据
外存(硬盘)
永久保存数据
运行数据慢,读取速度慢(相对内存)
输入输出设备
鼠标
键盘
软件系统
本质就是各种指令与数据的集合
作用:用来控制我们的硬件系统
软件是建立在硬件系统之上的
分类
操作系统
简化硬件操作的固定程序
帮助我们控制电脑的
应用软件
在操作系统的基础上进步帮助我们控制电脑
娱乐
办公
计算机
电子设备,机器语言010101
翻译官
人
人话
硬盘
文件
内存
打开就运行在内存中
电脑
Python基础和基本数据类型
编程语言的分类
编译型语言
产生一个额外的文件,电脑能够识别的内容
运行是直接运行编译后的额外的文件
解释型语言
不会参数额外的文件
运行时翻译
运行一行翻译一行
变量(语法)
什么是变量
可变的量
它的值可以发生改变
物价
今天
30
明天
50
变量的作用
保存值
可以发生改变
可以保存任何数据
变量的使用
单个定义
变量名 = 值
a = 21
多个定义
值2,...
a,b,c,d = 10,20,30,40
可以通过变量名得到保存的值
注意,空格只是为了美观,规范
命名规范(语法)
命名规范的作用
如何进行规范的命名
规则
你违反了就会有问题,必须
不能以数字开头
不能和关键字重名
规范
你违反了可能会有隐性问题,不会立即暴露出来,可选
一般使用英文字母,下划线和数字组成,可以随意组合,不能够违反规则
见名知意
最好使用英文单词命名
不能和内置函数名重名
会冲突,python不知道到底是变量还是内置函数
不符合规则,会报错
不符合规范,不会报错,但是会有隐性问题
很久以后自己都看不懂自己写代码
对接的工作量会增加
总结:最好是符合规则并且见名知意的规范命名
如果变量名不是黑色,里面换名字
变量和引用(逻辑)
变量保存的是地址值
通过地址值找到对应的值
比较大的数据它的地址是随机生成
内置函数id(值)
获取指定的数据的地址值
总结:变量保存的是地址值,通过地址值找到对应的数据,进行使用
关键字(概念)
什么是关键字
在Python中有特殊含义和功能的单词
不能作为变量名
特殊的含义和功能是谁定义的?
python本身
内置函数(概念)
什么是内置函数
Python自带的已经编写好的定义好的函数
函数
打包代码
因为一个功能不是一两完成的,可能有几十上百行,我们有经常去使用,并且又是通用
于是python就帮我们写好了这个功能
写好了一个输出的功能
起了个名字叫做print
你就可以直接使用
print('hello')
常见数值模板(补充)
注释
被注释的代码不会执行
相当于说明书
作用
代码提示
测试
转型
数据类型(要转型的值)
创建一个新的数据
并不是改变本身
所以需要重新赋值
字符串(语法)
什么是字符串
羊肉串,把羊肉串在一起
字符串就是把字符串在一起
什么是字符
键盘上所有的符号都可以称为字符asdfasdf123123123#$@#$@#$
字符串的作用
字符串的使用
字符串的定义
用引号串起来
单引号
''
双引号
""
三引号,支持换行
'''字符串'''
"""字符串"""
运算
+
加
拼接
*
乘
复制后拼接
字符串的拼接
+拼接
字符串的格式化
%
替身
format格式化
{}
占位符
利用join做拼接
字符串的格式化
概念
就是把内容变成字符串,然后按照我们想要的格式输出
%
三个参数
第一个数值表示不够补全的是0还是空格
默认是空格
第二个数值表示长度
第三个表示数值的格式
数值类型计算(语法)
什么是数值类型的计算
数学计算
数值类型计算的作用
可以通过运算得出结果
数值类型计算的使用
加
+
减
-
乘
*
除
/
整除
//
取余
%
次方
**
注意:小数可以运算,但是不精准,会有精度问题
小心
数据类型(语法)
Number
数值,数字
int
整数
1
float
小数(浮点数)
1.1
bool
布尔型
只有两个值
True
真
1
False
假
0
complex了解
String
字符串
List
列表
Tuple
元组
Dictionary
字典
使用内置函数type查看数据类型
输入输出(语法)
输入
什么是输入
人输入数据到电脑
输入的作用
接收用户输入的数据
搭配变量保存用户输入的数据
输入的使用
输入是我们的内置函数
内置函数名()进行使用
语法
input('提示')
注意:
input接收到的所有的数据类型都是字符串类型
输出
什么是输出
电脑输出数据
电脑显示数据
输出的作用
你可以把你想要展示出来的内容显示在屏幕上
输出的使用
语法
print('输出的内容')
进阶语法
print(要展示的内容,end=‘结尾的内容’)
end='\n'
\n
会去做拼接,把第一个参数拼接上第二个参数
默认print输出换行,我们可以通过修改end参数让它不换行
打印多个参数用逗号隔开,展示的效果会用空格隔开
条件语句和while循环
if
if是什么?
关键字
特殊含义
如果
功能
判断功能
怎么用?
语法规则
if 条件表达式:
当条件表达式的运算结果为True执行缩进里面的代码
if 条件表达式:\n else:
else
else是关键字
含义:否则
功能:判断
if 条件表达式:elif 条件表达式:else:
elif
elif是关键字
否则如果
功能:判断
补充:条件表达式
运算结果是一个bool类型
True
False
三目运算
if语句的一种简写格式
语法规则
为True执行 if 条件表达式 else 为False执行
判断符
等于
==
不等于
!=
大于
>
大于等于
>=
小于
小于等于
注意:判断符运算出来的结果是什么?
bool
True
False
逻辑运算符
与
and
全部为True,才为True
否则是False
或
or
一个为True则为True
非
not
取反False为True,True为否则
作用:连接多个条件
while循环
语法规则
while 条件表达式:
使用
和if类似
如果条件表达式为True执行缩进里面的代码,为False才停止,否者会一直执行
break
结束,终止循环
for循环和列表元组
for循环
迭代循环
计数循环
语法规则
for 变量 in 要迭代的对象:
特点
依次获取可迭代对象的每个元素,赋值给变量
不需要考虑循环次数,循环次数有可迭代对象长度决定
range
内置函数
获取一个范围内的整数
使用
一个参数
表示结尾(不包含)
默认开头是0
两个参数
第一个参数表示开头
包含
第二个参数表示结尾
三个参数
第一个参数表示开头
包含
第二个参数表示结尾
第三个参数表示步长
使用总结:一共可以传递三个参数
开头
可以不传
默认0
包含
结尾
必传
不包含
步长
可以不传
默认是1
含开头不含结尾
continue
是一个关键字
功能
跳过本次循环,直接进入下次循环
列表推导表达式
for的一种方式
作用
列表推导表达式可以快速生成一个列表,并能筛选列表的值
列表
数据类型
list
定义
[]
里面可以存放多个元素
每个元素之间用逗号隔开
可以存储多个元素
可以是数字
可以是字符串
总结可以是任何数据类型
索引
会给每一个元素分配一个索引,从0开始,按照顺序来,有序,添加的顺序
通过索引取值
具有负索引
超出报错
切片
范围取值
开始
包含开头
可以省略
默认从索引为0的位置开始取
结束
不包含结尾
默认取到最后一个
可以省略
步长
可以省略
默认是1
增加删除修改查询
要操作的列表.方法名()
元组
数据类型
tuple
不可变的列表
类似列表
可以索引取值
但是元素不可变
不可以改变的是元素
可以改变变量保存的地址值
定义
()
注意
元组里面的元素只有一个,后面必须要加逗号
否则就不是元组,而是本身的数据类型
字符串和散列类型
数据类型
数值类型
int
float
bool
字符串类型str
列表list
元组tuple
字典dict
集合set
数据类型的分类
分类一
可变类型
list
可以保存多个任意类型的数据
可迭代对象
具备多个元素
可以通过for循环依次获取每个元素
dict
set
总结:基本方法操作的是本身,是没有返回值的
不可变类型
tuple
可以保存多个任意类型的数据
可迭代对象
具备多个元素
可以通过for循环依次获取每个元素
str
保存多个字符
可以进行迭代
可迭代对象
具备多个元素
可以通过for循环依次获取每个元素
增
删
改
查
具备索引,通过索引获取指定字符
数字
常量
总结:返回一个新元素
分类二
序列类型
str
tuple
list
有索引,可以通过索引做操作
散列类型
set
dict
无索引,无序,且唯一,通过key做操作
开发原则
尽量不要有报错,或者提前处理报错
字符串
字符串的转义
因为计算机中有很多不好显示,不好表示的字符
所以我们就用反斜杠+字母来表示一些特殊的字符
就将这个称谓字符串的转义
重点
\n
回车
\t
制表符
\\
取消反斜杠转义
r''
原样输出,取消转义
写文件路径
r'C:\\python\niupi'
字符串的编码
计算机认识的都是二进制数据
如何表示字母符号呢?
翻译本
我们就称为编码
根据翻译本把对应的二进制数据翻译成我们认识的字符,把字符翻译成二进制数据进行存储
编码的历史
方法
encode(encoding='编码规则比如utf-8')
编码
decode('编码规则')
解码
字典
定义
{}
dict()
无序的
添加的顺序
没有索引值
key
是唯一的
集合
定义
{}
无序的
运算
交集
&
相同的部分
并集
|
合并
差集
-
不同的部分
运算符
身份运算符
is
is not
比较的是地址值
成员运算符
in
not in
元素是否属于这个对象,也就是是否是这个对象的成员
函数
规律-总结
最大正索引值为
长度-1
函数
我们可以将在不同的地方要调用的相同的功能的代码进行分装,打包,定义一个函数进行封装
作用
对代码进行分装,让它可以重复调用
使用
定义
只是定义了一个函数,函数里面的代码不会被执行
相当于大家买了一支笔
如果不用这一支笔去写字会有字的出现吗?
不会
调用
执行函数里面的代码
return
关键字
作用
结束方法
带出返回值