下文方法
def exit(self, exc_type, exc_val, exc_tb):
print(“进入下文方法”)
self.file.close()
if name == ‘main’:
使用with管理文件
with File(“1.txt”, “r”) as file:
file_data = file.read()
print(file_data)
3.小结
1.生成器的介绍
2.创建生成器的方式
def mygenerater(n):
for i in range(n):
print(‘开始生成…’)
yield i
print(‘完成一次…’)
if name == ‘main’:
g = mygenerater(2)
获取生成器中下一个值
result = next(g)
print(result)
while True:
try:
result = next(g)
print(result)
except StopIteration as e:
break
# for遍历生成器, for 循环内部自动处理了停止迭代异常,使用起来更加方便
for i in g:
print(i)
3.生成器的使用场景
def fibonacci(num):
a = 0
b = 1
记录生成fibonacci数字的下标
current_index = 0
while current_index < num:
result = a
a, b = b, a + b
current_index += 1
代码执行到yield会暂停,然后把结果返回出去,下次启动生成器会在暂停的位置继续往下执行
yield result
fib = fibonacci(5)
遍历生成的数据
for value in fib:
print(value)
4.小结
1.浅拷贝
import copy # 使用浅拷贝需要导入copy模块
不可变类型有: 数字、字符串、元组
a1 = 123123
b1 = copy.copy(a1) # 使用copy模块里的copy()函数就是浅拷贝了
查看内存地址
print(id(a1))
print(id(b1))
print(“-” * 10)
a2 = “abc”
b2 = copy.copy(a2)
查看内存地址
print(id(a2))
print(id(b2))
print(“-” * 10)
a3 = (1, 2, [“hello”, “world”])
b3 = copy.copy(a3)
查看内存地址
print(id(a3))
print(id(b3))
import copy # 使用浅拷贝需要导入copy模块
可变类型有: 列表、字典、集合
a1 = [1, 2]
b1 = copy.copy(a1) # 使用copy模块里的copy()函数就是浅拷贝了
查看内存地址
print(id(a1))
print(id(b1))
print(“-” * 10)
a2 = {“name”: “张三”, “age”: 20}
b2 = copy.copy(a2)
查看内存地址
print(id(a2))
print(id(b2))
print(“-” * 10)
a3 = {1, 2, “王五”}
b3 = copy.copy(a3)
查看内存地址
print(id(a3))
print(id(b3))
print(“-” * 10)
a4 = [1, 2, [4, 5]]
注意:浅拷贝只会拷贝父对象,不会对子对象进行拷贝
b4 = copy.copy(a4) # 使用copy模块里的copy()函数就是浅拷贝了
查看内存地址
print(id(a4))
print(id(b4))
print(“-” * 10)
查看内存地址
print(id(a4[2]))
print(id(b4[2]))
修改数据
a4[2][0] = 6
子对象的数据会受影响
print(a4)
print(b4)
2.深拷贝
import copy # 使用深拷贝需要导入copy模块
不可变类型有: 数字、字符串、元组
a1 = 1
b1 = copy.deepcopy(a1) # 使用copy模块里的deepcopy()函数就是深拷贝了
查看内存地址
print(id(a1))
print(id(b1))
print(“-” * 10)
a2 = “张三”
b2 = copy.deepcopy(a2)
查看内存地址
print(id(a2))
print(id(b2))
print(“-” * 10)
a3 = (1, 2)
b3 = copy.deepcopy(a3)
查看内存地址
print(id(a3))
print(id(b3))
print(“-” * 10)
注意: 元组里面要是有可变类型对象,发现对象有可变类型就会该对象到最后一个可变类型的每一层对象进行拷贝
a4 = (1, [“李四”])
b4 = copy.deepcopy(a4)
查看内存地址
print(id(a4))
print(id(b4))
元组里面的可变类型子对象也会进行拷贝
print(id(a4[1]))
print(id(b4[1]))
可变类型的深拷贝示例代码:
import copy # 使用深拷贝需要导入copy模块
可变类型有: 列表、字典、集合
a1 = [1, 2]
b1 = copy.deepcopy(a1) # 使用copy模块里的deepcopy()函数就是深拷贝了
查看内存地址
print(id(a1))
print(id(b1))
print(“-” * 10)
a2 = {“name”: “张三”}
b2 = copy.deepcopy(a2)
查看内存地址
print(id(a2))
print(id(b2))
print(“-” * 10)
a3 = {1, 2}
b3 = copy.deepcopy(a3)
查看内存地址
print(id(a3))
print(id(b3))
print(“-” * 10)
a4 = [1, 2, [“李四”, “王五”]]
b4 = copy.deepcopy(a4) # 使用copy模块里的deepcopy()函数就是深拷贝了
查看内存地址
print(id(a4))
print(id(b4))
查看内存地址
print(id(a4[2]))
print(id(b4[2]))
a4[2][0] = “王五”
因为列表的内存地址不同,所以数据不会收到影响
print(a4)
print(b4)
3.浅拷贝和深拷贝的区别
4.总结
1.正则表达式的介绍
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
做了那么多年开发,自学了很多门编程语言,我很明白学习资源对于学一门新语言的重要性,这些年也收藏了不少的Python干货,对我来说这些东西确实已经用不到了,但对于准备自学Python的人来说,或许它就是一个宝藏,可以给你省去很多的时间和精力。
别在网上瞎学了,我最近也做了一些资源的更新,只要你是我的粉丝,这期福利你都可拿走。
我先来介绍一下这些东西怎么用,文末抱走。
(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
(4)200多本电子书
这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。
基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。
(5)Python知识点汇总
知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。
(6)其他资料
还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。
这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。
这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。
基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。
(5)Python知识点汇总
知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。
(6)其他资料
还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。
这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。