手机版 | 登陆 | 注册 | 留言 | 设首页 | 加收藏
当前位置: 网站首页 > python教程 > 文章 当前位置: python教程 > 文章

2021黑马python大数据吾爱破解黑马python5.0资料解压密码

时间:2022-05-15    点击: 次    来源:网络    作者:佚名 - 小 + 大

2021黑马python大数据吾爱破解黑马python5.0资料解压密码


下载地址

https://share.weiyun.com/dHvWwF1o


资料目录
黑马程序员python入门教程19天(美女讲师版)
包含:视频课程-python从0开始学编程(day1-day19)
      课件+代码资料-python从0开始学编程(day1-day19)
黑马python基础班代码和课件资料
黑马python就业班代码和课件资料
黑马python基础班视频课程
包含:1-1 Linux基础(119个视频)
      1-2 python基础(234个视频)
      1-3 面向对象(91个视频)
      1-4 项目飞机大战(42个视频)
黑马python就业班视频课程
包含:01 网络编程
      02 多任务
      03 web服务器v3.1
      04 Python高级语法v3.1
      05 MySQL数据库v3.1
      06 mini-web框架v3.1
      07 HTML和CSS
      08 首页布局案例和移动布局
      09 JavaScriptv
      10 jQuery和js库
      11 Django框架
      12 git版本管理
      13 redis数据库
      14 天天生鲜Django项目
      15 flask框架
      16 微信公众号
      17 爱家租房项目
      18 通用爬虫模块使用
      19 MongoDB数据库
      20 爬虫scrapy框架及案例
      21 数据分析
      22 机器学习
      23 深度学习
      24 数据结构和算法
      25 Python网络爬虫
      26 机器学习入门篇
      27 机器学习入门篇2
      28 机器学习提升篇
      29 数据挖掘篇
      30 深度学习必备原理与实战
      31 深度学习必备原理与实战2
      32 深度学习必备原理与实战3
      33 深度学习必备原理与实战4
      34 深度学习项目实战
      35 深度学习项目实战2
      36 深度学习项目实战3
      
举例

 __iter__()
类型是list、tuple、file、dict的对象有__iter__()方法,标志着它们能够迭代。这些类型都是Python中固有的,我们能不能自己写一个对象,让它能够迭代呢?
当然可以。
#!/usr/bin/env python
# coding=utf-8
class MyRange(object):
def __init__(self, n):
self.i = 0
self.n = n
def __iter__(self):
return self
def next(self):
if self.i < self.n:
i = self.i
self.i += 1
return i
else:
raise StopIteration()
if __name__ == "__main__":
x = MyRange(7)
print "x.next()==>", x.next()
print "x.next()==>", x.next()
print "------for loop--------"
for i in x:
print i
将代码保存并运行,结果是:
$ python 21401.py
x.next()==> 0
x.next()==> 1
------for loop--------
2
3
4
5
6
以上代码的含义,是自己仿写了拥有range()的对象,这个对象是可迭代的,分析如下。
(1)__iter__()是类中的核心,它返回了迭代器本身,实现了__iter__()方法的对象,即意味着其可迭代。
(2)含有next()的对象就是迭代器,并且在这个方法中,在没有元素的时候要发起StopIteration()异常。
对以上类的调用换一种方式:
if __name__ == "__main__":
x = MyRange(7)
print list(x)
print "x.next()==>", x.next()
运行后会出现如下结果:
$ python 21401.py
[0, 1, 2, 3, 4, 5, 6]
x.next()==>
Traceback (most recent call last):
File "21401.py", line 26, in <module>
print "x.next()==>", x.next()
File "21401.py", line 21, in next
raise StopIteration()
StopIteration
说明什么呢?print list(x)将对象返回值都装进了列表中并打印出来,这个正常运行了。最终,指针移动到了迭代对象的最后一个,next()方法没有检测,也不知道是不是要停止了,它还要继续下去,当继续下一个的时候,才发现没有元素了,于是返回了StopIteration()。
为什么要用这种可迭代的对象呢?就像上面的例子一样,列表不是挺好的吗?
列表的确非常好,在很多时候效率很高,并且能够解决很多普遍的问题。但是,不要忘记,在某些时候,列表可能会给你带来灾难。因为在你使用列表的时候,需要将列表内容一次性都读入到内存中,这样就增加了内存的负担。如果列表太大,就有内存溢出的危险了,这时候就需要迭代对象。比如斐波那契数列:
#!/usr/bin/env python
# coding=utf-8
__metaclass__ = type
class Fibs:
def __init__(self, max):
self.max = max
self.a = 0
self.b = 1
def __iter__(self):
return self
def next(self):
fib = self.a
if fib > self.max:
raise StopIteration
self.a, self.b = self.b, self.a + self.b
return fib
if __name__ == "__main__":
fibs = Fibs(5)
print list(fibs)
运行结果是:
$ python 21402.py
[0, 1, 1, 2, 3, 5]
给读者一个思考问题:要在斐波那契数列中找出大于1000的最小的数,能不能在上述代码的基础上改造得出呢?

上一篇:黑马python就业班贪婪和非贪婪视频2020黑马python5.0百度云

下一篇:没有了

推荐阅读
声明 | 联系我们 | 关于我们
备案ICP编号  |   QQ:2151239526  |  地址:北京市东城区  |  电话:16605168200  |