天才教育网合作机构 > 培训机构 >

天才领路者

欢迎您!
朋友圈

400-850-8622

全国统一学习专线 9:00-21:00

位置:培训资讯 > 0基础怎么自学python

0基础怎么自学python

日期:2019-08-18 11:10:03     浏览:196    来源:天才领路者
核心提示:python的变量与java的不一样,java的变量是固定类型的,而python的变量也是对象引用。以下是小编为你整理的0基础怎么自学python 首先是理解对象引用,对象引用就是映射关系 比如,你在超市的储物柜1号放了个包裹,那么你得到一

python的变量与java的不一样,java的变量是固定类型的,而python的变量也是对象引用。以下是小编为你整理的0基础怎么自学python  

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

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

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

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

0基础怎么自学python

 

那么,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),'n',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],'t',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],'t',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))

云基础设施

这年头,不支持云平台,不支持海量数据,不支持动态伸缩,根本不敢说自己是做大数据的,顶多也就敢跟人说是做商业智能(BI)。  

云平台分为私有云和公有云。私有云平台如日中天的 OpenStack,就是 Python 写的。曾经的追赶者 CloudStack,在刚推出时大肆强调自己是 Java 写的,比 Python 有优势。结果,搬石砸脚,2015 年初,CloudStack 的发起人 Citrix 宣布加入 OpenStack 基金会,CloudStack 眼看着就要寿终正寝。  

如果嫌麻烦不想自己搭建私有云,用公有云,不论是 AWS,GCE,Azure,还是阿里云,青云,在都提供了 Python SDK,其中 GCE 只提供 Python 和 JavaScript 的 SDK,而青云只提供 Python SDK。可见各家云平台对 Python 的重视。  

提到基础设施搭建,不得不提 Hadoop,在今天,Hadoop 因为其 MapReduce 数据处理速度不够快,已经不再作为大数据处理的*,但是 HDFS 和 Yarn——Hadoop 的两个组件——倒是越来越受欢迎。Hadoop 的开发语言是 Java,没有官方提供 Python 支持,不过有很多第三方库封装了 Hadoop 的 API 接口(pydoop,hadoopy 等等)。  

Hadoop MapReduce 的替代者,是号称快上 100 倍的 Spark,其开发语言是 Scala,但是提供了 Scala,Java,Python 的开发接口,想要讨好那么多用 Python 开发的数据科学家,不支持 Python,真是说不过去。HDFS 的替代品,比如 GlusterFS,Ceph 等,都是直接提供 Python 支持。Yarn 的替代者,Mesos 是 C++ 实现,除 C++ 外,提供了 Java 和 Python 的支持包。

如果本页不是您要找的课程,您也可以百度查找一下: