首页>新闻详情

学python 怎么创建数据库

来源:长沙达内培训机构 时间:2024/4/2 9:08:29

  首先是理解对象引用,对象引用就是映射关系

  比如,你在超市的储物柜1号放了个包裹,那么你得到一张票据,上面写着A

  那么,这个A就是引用了这个格子

  标识符-等号-对象,比如,A = 123

  那么,A是标识符,123是对象

  注意:标识符的大小写是区分的,ABC与Abc与abc,是不同的标识符

  如果之前接触过java,这个理解起来会有点不一样,python的变量就是对象引用,与java的变量存储在栈内存是不一样

  比如A=1,B=A,那么结果是A和B都指向1

  假如这时候,A=2,那么A会指向2,B不会跟着改变,则还是指向1

  所以说,A指向另外一个引用的时候,是直接指向另外一个引用所引用的对象的

  换成代码,则是下面这样,首先A指向1号,然后B指向A,再把A的指向2号

  这样的情况下,B不会跟着改变

  还有重要的一点,就是对象不会随着没有被引用而马上消失,假设A和B都是指向1,然后A和B又指向2,那么1没有被引用了,但是还是会存在的

  用代码演示就是

  A=1,打印A的内存地址

  A=2,打印A的内存地址

  A=1,打印A的内存地址

  A=2,打印A的内存地址

  如果对象没有被清除,那么4次打印内存地址,13次地址数值是相同的,24次也一样

  底部的内存地址,即使对象再次被引用的时候,还是原来的地址。

  如何搭建环境

  学习爬虫首先学习Python,建议通过中国大学mooc和《笨方法学Python》来实现入门,那本书的内容可以有所取舍。通过这两个途径再上网上针对性地查找相关内容完全可以入门,重点在于理解“面向对象”。

  爬虫入门首先要明白一些网络技术,了解TCP/IP参考模型,并且对应用层的HTTP协议的方法和工作原理有一定的认识。爬虫爬取网页内容,大多数网页服务由HTTP协议实现。

  正式学习爬虫库urllib和正则表达式,urllib灵活性很高,并且和你所学的网络原理、HTTP原理非常贴合,利于新手学习,正则表达式看看内容,再看几个实例就应该会用了,不推荐看乱七八糟的教程和MOOC(效果非常差,讲的跨度太大),推荐书籍《精通Python网络爬虫 核心技术、框架与项目实战 》(韦玮)。同样是选择性的阅读。

  学习完成之后,多加实践,推荐实战项目:1、爬取漫画网上的一部漫画的所有图片,并用PowerPoint做成PDF 2、爬取电影下载网站上的所有电影下载链接并整理到Excel。能独立完成这两个实战项目,恭喜你已经成功入门!

  构造一个三维数组

  import numpy as npa = np.random.rand(3,3,5)

  np.floor是一个ufunc函数,它是一个一元函数——取整函数,可以做用于a里面的每一个数字,且保持数组结构不变,仍旧是三维的3*3*5的数组:

  类似的一元ufunc函数还有很多,比如所有的初等数学函数:

  print(np.sin(b),' ',np.cos(b))

  np.add是一个多元的ufunc函数:

  b = np.add.reduce(a)

  这里,reduce的作用,是把add函数作用于数组a的层每一个子数组,计算这些元素的和。

  具体的作用结果是:

  c = []for j in range(3): d = [] for i in range(5): #print(a[:,j,i],' ',sum(a[:,j,i])) d.append(sum(a[:,j,i])) c.append(d)print(np.array(c))

  b = np.add.reduce(a,axis = 1)

  这里指定了add作用于a的第二层子数组,具体如下:

  c = []for j in range(3): d = [] for i in range(5): #print(a[j,:,i],' ',sum(a[j,:,i])) d.append(sum(a[j,:,i])) c.append(d)print(np.array(c))

  b = np.add.reduce(a,axis = 2)

  将add函数作用于a的第三层子数组:

  print(sum(a[0,0]))

  给出一个一维数组:

  import numpy as npa = np.floor(np.random.rand(6)*10)

  从左往右累计a里面的元素之和:

  b = np.add.accumulate(a)

  具体的类似于:

  c = 0d = []for i in range(6): c = c+a[i] d.append(c) print(np.array(d))

  urllib.request

  urllib.request 模块期初是用来打开和获取 URL 的。让我们看看你可以用函数 urlopen 可以做的事:

  >>> import urllib.request >>> url = urllib.request.urlopen('https://www.google.com/') >>> url.geturl() 'https://www.google.com/' >>> url.info() >>> header = url.info() >>> header.as_string() ('Date: Fri, 24 Jun 2016 18:21:19 GMT/n' 'Expires: -1/n' 'Cache-Control: private, max-age=0/n' 'Content-Type: text/html; charset=ISO-8859-1/n' 'P3P: CP="This is not a P3P policy! See ' 'https://www.google.com/support/accounts/answer/151657?hl=en for more info."/n' 'Server: gws/n' 'X-XSS-Protection: 1; mode=block/n' 'X-Frame-Options: SAMEORIGIN/n' 'Set-Cookie: ' 'NID=80=tYjmy0JY6flsSVj7DPSSZNOuqdvqKfKHDcHsPIGu3xFv41LvH_Jg6LrUsDgkPrtM2hmZ3j9V76pS4K_cBg7pdwueMQfr0DFzw33SwpGex5qzLkXUvUVPfe9g699Qz4cx9ipcbU3HKwrRYA; ' 'expires=Sat, 24-Dec-2016 18:21:19 GMT; path=/; domain=.google.com; HttpOnly/n' 'Alternate-Protocol: 443:quic/n' 'Alt-Svc: quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"/n' 'Accept-Ranges: none/n' 'Vary: Accept-Encoding/n' 'Connection: close/n' '/n') >>> url.getcode() 200

  在这里我们包含了需要的模块,然后告诉它打开 Google 的 URL。现在我们就有了一个可以交互的 HTTPResponse 对象。我们要做的件事是调用方法 geturl ,它会返回根据 URL 获取的资源。这可以让我们发现 URL 是否进行了重定向。 接下来调用 info ,它会返回网页的元数据,比如请求头信息。因此,我们可以将结果赋给我们的 headers 变量,然后调用它的方法 as_string 。就可以打印出我们从 Google 收到的头信息。你也可以通过 getcode 得到网页的 HTTP 响应码,当前情况下就是 200,意思是正常工作。

  如果你想看看网页的 HTML 代码,你可以调用变量 url 的方法 read。我不准备再现这个过程,因为输出结果太长了。

上一页下一页

推荐课程更多>

免费申请体验课

长沙达内培训机构

版权所有:名校网

  • 在线咨询
  • 电话咨询
  • 免费试听